Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我一直在浏览 NASM 教程,我注意到在所有对 DIV 指令的引用中,在讨论 32 位除法时,会说以下内容:
DIV ECX ; EDX:EAX / ECX
EDX:EAX 是什么意思?为什么两个寄存器除以一个寄存器?
提前致谢
这是一个跨区寄存器或寄存器对,在这种情况下用于 64 位数学运算(因此您可以使用 64 位商,添加 IIRC 是为了允许任意点算术)。 EDX包含高位 DWORD 和符号,EAX低位 DWORD。
EDX
EAX
相同的逻辑用于返回 64 位结果。另外,应该注意的是,这与 NASM 无关,它是 x86 架构的一部分(它也定义了 32 位对,就像DX:AX使用 16 位指令时一样)。
DX:AX