1
执行以下行后,EAX中的值是什么?增加寄存器超过其限制。汇编语言添加
mov eax, 1002FFFFh
inc ax
答案是1002000h
。
我的问题是,为什么答案不是1003 0000h
或1002 0000h
考虑到我们最初是从32位开始,答案是32-4位。
执行以下行后,EAX中的值是什么?增加寄存器超过其限制。汇编语言添加
mov eax, 1002FFFFh
inc ax
答案是1002000h
。
我的问题是,为什么答案不是1003 0000h
或1002 0000h
考虑到我们最初是从32位开始,答案是32-4位。
你增加AX,这是16位,溢出为0X0000
所以答案是0x10020000(不0x1002000如你所说,可能是一个错字)
具有0x10030000作为导致你不得不改为增加EAX
在哪里可以找到关于此语法的更多信息:'0x0000',这是某种十六进制独占语法吗?在这种情况下OF标志是否熄灭? – SeesSound
哦对不起,这是十六进制的C风格:-)'0x10030000'意思是你用'10030000h'为 – Tommylee2k
@SajSeesSound:NASM和GNU汇编程序支持'0xDEADBEEF'风格常量如C,以及MASM风格的'0DEADBEEFh'。只有Windows的汇编程序通常只支持恼人的'... h'风格。 –