7得票2回答
CPU是否必须有累加器?

在你嘲笑我之前:我想问算术运算是在ALU单元还是累加器中完成的。我读了一本书,它说累加器是用于进行算术运算的寄存器。 这个累加器如下所述: 没有像累加器这样的寄存器,每次计算(加法、乘法、移位等)的结果都需要写入主存储器,可能只是为了在下一次操作中立即读取使用。 这是否意味着没有累加器仍...

32得票2回答
在X86汇编中使用SAR命令及其一个参数

我在分析一个反汇编程序时,发现了以下命令:sar %eax 这是做什么用的?我知道带两个参数的 sar 会执行右移,但我不知道带一个参数代表什么意思。 这个程序是为 Intel x86 处理器编译的。

8得票3回答
多物理CPU机器上的CPU指令

我有两个问题: 1. 一台机器可以有两个或多个不同型号的CPU吗? 2. 如果我调用CPUID指令,不同的CPU执行时结果会有什么不同呢?(如果问题1的答案是对的,这是显而易见的)。如果确实有区别,如何通过CPUID指令获取所有CPU的信息。

18得票2回答
汇编代码是否适用于未定义行为?

假设您知道您的软件只能在补码机器上运行,其中符号溢出行为得到了很好的定义。 在C和C ++中,符号溢出仍然是未定义行为,编译器可以自由地用“ret”替换您的整个程序,引发核战争,格式化您的驱动器或使恶魔从您的鼻子里飞出。 如果您在内联汇编中存在符号溢出,那么您的程序是否仍会调用未定义行为? ...

24得票2回答
ARM中是否有与rdtsc等效的指令?

为了我的项目,我必须使用内嵌汇编指令,例如rdtsc来计算一些C/C++指令的执行时间。 以下代码似乎在Intel处理器上可以工作,但在ARM处理器上不行:{unsigned a, d;asm volatile("rdtsc" : "=a" (a), "=d" (d)); t0 = ((uns...

36得票5回答
一些x86汇编参考/教程?

我正在尝试查找关于x86汇编语言的参考资料。希望有教程/示例来帮助我的理解。 -谢谢

7得票3回答
Gas:过多的内存引用

在编译以下指令时: movl 4(%ebp), 8(%ebp) 我得到了:内存引用过多。 这是什么问题呢?

8得票3回答
x86汇编中的"push ebp"是什么意思?

我反汇编了一个 .exe 文件,得到了这个作为它的第一行。 push ebp 这是什么意思? 为什么要使用 ebp? 它是否与 pop 命令有关?尽管我在反汇编中没有看到它!

23得票4回答
浮点数取模运算

我正在尝试实现三角函数的范围缩减操作。但我认为,直接对输入数据执行模pi/2操作可能更好。我想知道是否有算法适用于32位 IEEE 754浮点数,并且效率高。 由于我必须在汇编中实现这个操作,所以fmod、除法、乘法等都不能只使用一个指令。我的处理器使用16位字,我已经实现了32位浮点加法、...