x86-64是Intel x86架构的64位扩展
通过将EFLAGS.VM设置为1,问题从32位保护模式切换到v8086模式
我处于以当前权限级别(CPL = 0)运行的32位保护模式。我试图通过将EFLAGS.VM(位17)标志设置为1(和IOPL为0)并对我的16位实际执行FAR JMP来进入v8086模式...
像Kaby Lake这样的现代CPU如何处理小分支? (在下面的代码中是跳转到标签LBB1_67)。据我所知,分支不会有害,因为跳跃不如16字节......
使用sub / cmp / setbe反向工程asm回到C?我的尝试是编译分支
这是我应该翻译的汇编代码:f1:subl $ 97,%edi xorl%eax,%eax cmpb $ 25,%dil setbe%al ret heres我写的c代码我觉得是等价的。 int f1(int y){...
什么是gcc linux x86-64 C ++中的有效指针?
我正在一个名为linux x86-64的模糊系统上使用gcc编程C ++。我希望可能有一些人使用过这个相同的特定系统(也可能......)
我从系统编程开始,但我遇到了令人讨厌的情况。我不知道如何使用nasm和g ++编译器在asm文件中运行cpp过程。这是我在asm中的代码名为kernel ....
我需要以最有效(最快)的方式使用128位大小的无符号变量。 OS:Linux / Debian 9编译器:GCC 8 CPU:Intel i7-5775C虽然解决方案更多......
我在Windows中使用NASM(64位)代码在四核Windows x86-64机器上运行四个同时线程(每个线程分配给一个单独的核心)。线程是在循环中创建的。线程后......
在代码的关键部分考虑条件函数调用时,我发现gcc和clang都会在调用中分支。例如,对于以下(通常是微不足道的)代码:...
在现代x86-64上计算64位整数的整数Log10的最快方法是什么?
标题;我发现了很多32位示例,但没有完整的64位示例。以这篇文章为指导,我提出了Log10的以下实现,但我不完全确定翻译是否...
为什么typeA == typeB比type == typeof(Type B)慢?
我最近一直在优化/基准测试一些代码,并遇到了这个方法:public void SomeMethod(Type messageType){if(messageType == typeof(BroadcastMessage)){// ...} ...
由Xcode构建的C stdio程序在Ubuntu上生成“无法执行二进制文件:Exec格式错误”
我上次用Xcode构建了这个控制台I / O程序,从那时起就没有使用过Xcode,今天我通过重新构建程序来摸索。它适用于我2014年中期的Macbook Pro。但是当我......
所以我有以下内容。 0000024E9689000A | 68 FF 7F 00 00 |推7FFF | 0000024E9689000F | 68 45 B2 8C DF |推FFFFFFFFDF8CB245 | ......
我正在尝试使用宏(如本教程所示)来打印字符串。宏PRINT创建局部标签来定义字符串内容(str)和长度(strlen),然后将它们作为...传递
我正在尝试为C程序构建一个NASM库。我想舍入作为参数给出的浮点数。 C函数原型看起来像这样:double nearbyint(double x);一世 ...
为什么AT&T jmp * bar汇编到带有SIB字节的机器代码?指令中没有使用寄存器
我在x86机器上有这个绝对的间接跳转指令:ff 24 25 30 10 60 00它是从jmp * bar生成的,但我在解码它的第二个和第三个字节时遇到了麻烦。第二......
当我在我的机器上运行代码时,程序会出现分段错误。 #包括 #包括 static inline __m256i load_vector(__ m256i const * addr){__ m256i ...
所以我需要使用x86_64程序集再次删除目录中的文件。这是我的代码,我知道这很糟糕。我的问题是每个系统调用都是单独工作的(我可以单独删除...
使用AVX但不是AVX2,在许多64位位掩码上分别计数每个位位置
我正在研究C中的一个项目,我需要经历数千万个掩码(类型为ulong(64位))并根据一个简单的规则更新64个短整数(uint16)的数组(称为目标): / ...
我有一个用NASM编写的简单dprintf程序,它打印一个包含6个以上参数的长格式。我正在传递参数,因为调用约定需要(RDI,RSI,RDX,RCX,R8,R9)。作为......
编码x86_64指令mov rcx,rdx(使用https://defuse.ca/online-x86-assembler.htm)输出48 89 D1。使用此参考检查操作码显示该字节序列如何编码...