65得票4回答
x86、x32和x64架构之间的区别是什么?

请解释 x86,x32和x64之间的区别?当涉及到x86和x32时有些令人困惑,因为大多数情况下32位程序在x86上运行...

15得票3回答
在汇编语言中,LONG跳转和FAR跳转有何不同(如果有的话)?

我正在查看一些汇编练习代码,任务基本上是用另一个跳转点替换一个跳转点。 原始 jmp 是 SHORT jmp,而我需要到达的终点无法使用此指令。 现在我有三个选项,要么删除“SHORT”,要么插入“LONG”,要么插入“FAR”。 如果有任何说明它们之间差异的文档,我还没有找到。有人能帮忙吗?

17得票2回答
为什么在32位系统上__sync_add_and_fetch可以用于64位变量?

考虑以下精简代码: /* Compile: gcc -pthread -m32 -ansi x.c */ #include <stdio.h> #include <inttypes.h> #include <pthread.h> static volat...

8得票1回答
使用微软编译器生成CMOV指令

为了在运行Windows 7专业版的英特尔Core 2上提取一些cmov指令,我编写了以下代码。它所做的只是从控制台输入一个字符串,应用一些移位操作生成一个随机种子,然后将该种子传递给srand,用于生成一小组伪随机数。然后评估这些伪随机数是否满足谓词函数(更多任意位移),并输出'*'或'_'...

9得票4回答
释放x87 FPU堆栈(ia32)

在我的大学里,我们刚刚接触到IA32 x87 FPU。但是我们没有被告知如何清除不再需要的FPU堆栈元素。 想象一下,我们正在执行一个简单的计算,比如(5.6 * 2.4) + (3.9 * 10.3)。 .data value1: .float 5.6 v...

9得票1回答
如何将NaN插入xmm寄存器?

对于我正在编写的函数,如果输入没有意义,我希望返回NaN。 最简单的方法是如何将NaN插入xmm寄存器?

10得票2回答
汇编语言中 "ds:" 的含义是什么?

我只是汇编语言的初学者,可能会有一些傻瓜问题。这两行代码有什么区别? 3e 8b 06 mov eax,DWORD PTR ds:[esi] 8b 06 mov eax,DWORD PTR [esi] 在我看来,这个程序可以做同样的事情,我也试过这个程序: int main() ...

13得票2回答
如何在汇编文件中包含带有C声明的头文件而不出错?

我有一个汇编文件(asm.S),需要在C头文件(c_decls.h)中定义一个常量#define。该头文件除了我想要的#define之外,还包含C函数声明。不幸的是,当尝试编译汇编文件时,gcc会出错。例如: c_decls.h#ifndef __c_decls_h__ #define __...

10得票2回答
为什么使用gcc,-mfpmath=387和优化级别为-O2或-O3编译的这个简单程序会产生NaN值?

我有一个短小的程序,执行数值计算,并在某些特定条件下获得不正确的NaN结果。我看不出这个NaN结果是如何产生的。请注意,我没有使用编译器选项来允许算术运算的重新排序,例如-ffath-math。 问题:我正在寻找关于NaN结果如何产生的解释。从数学上讲,在计算中没有任何东西会导致除以零或类似...

8得票2回答
系统如何选择正确的页表?

让我们专注于单处理器计算机系统。在创建进程时,据我所知,会设置页面表,将虚拟地址映射到物理内存地址空间中。每个进程都有自己的页面表,存储在内核地址空间中。但是,由于不仅有一个进程正在运行且经常发生上下文切换,MMU如何为进程选择正确的页面表呢? 感谢您的阅读! 最好的祝福, Simon