我有以下用 MASM 为 i386 处理器编写的简单程序:
TITLE BLA
.MODEL SMALL
.386
.STACK
.DATA
.CODE
MAIN PROC FAR
.STARTUP
MOV EBX,0FFFFFFFFH; (1)
MOV EAX,0EEEEEEEEH; (2)
.EXIT
MAIN ENDP
END
我对 EBX 寄存器的行为感到困惑。在 (1) 指令之后,EBX 设置为 1-s:
执行 (2) 指令不仅将值加载到 EAX 中,而且将 EBX 的上半部分归零:
为什么它实际上会发生?