我一直在寻找NASM教程,我注意到在所有对DIV指令的引用中,在讨论32位除法时,请说出以下内容:
DIV ECX ; EDX:EAX / ECX
EDX:EAX是什么意思?为什么两个寄存器被一个寄存器分开?
提前致谢
答案 0 :(得分:4)
这是一个跨区寄存器或寄存器对,在这种情况下用于64位数学运算(所以你可以使用64位商,IIRC这是为了允许任意点算术)。
EDX
包含高DWORD和符号,EAX
低DWORD。
相同的逻辑用于返回64位结果。此外,应该注意的是,这与NASM无关,它是x86架构的一部分(在使用16位指令时也定义了32位对,如DX:AX
)。