【发布时间】:2016-06-14 12:18:11
【问题描述】:
执行以下行后,EAX 中的值是多少?
mov eax, 1002FFFFh
inc ax
答案是1002000h。
我的问题是,为什么答案不是1003 0000h 或1002 0000h 考虑到我们最初是从 32 位开始的,而答案不知何故是 32-4 位。
【问题讨论】:
标签: assembly binary x86 increment cpu-registers
执行以下行后,EAX 中的值是多少?
mov eax, 1002FFFFh
inc ax
答案是1002000h。
我的问题是,为什么答案不是1003 0000h 或1002 0000h 考虑到我们最初是从 32 位开始的,而答案不知何故是 32-4 位。
【问题讨论】:
标签: assembly binary x86 increment cpu-registers
您正在增加 16 位的 AX,并溢出到 0x0000
所以答案是 0x10020000(不是你所说的 0x1002000,可能是错字)
要获得 0x10030000 作为结果,您必须改为增加 EAX
【讨论】:
0x10030000 表示您使用 10030000h 的意思
0xDEADBEEF 风格的常量,如 C,以及 MASM 风格的 0DEADBEEFh。仅限 Windows 的汇编程序通常只支持烦人的 ...h 样式。