增加寄存器超过其限制.汇编语言添加

See*_*und 1 binary x86 assembly increment cpu-registers

执行以下行后,EAX中的值是多少?

mov    eax, 1002FFFFh
inc    ax
Run Code Online (Sandbox Code Playgroud)

答案是1002000h.

我的问题是,为什么答案没有1003 0000h,或者1002 0000h考虑到我们最初从32位开始,答案是32-4位.

Tom*_*e2k 5

你正在增加AX,这是16位,并溢出到0x0000
所以答案是0x10020000(不是你所说的0x1002000,可能是一个错字)

为了得到0x10030000,你必须增加EAX