Tho*_*hor -1 x86 assembly masm
我目前正在学习x86汇编语言.
我有以下代码
.386
.MODEL FLAT, STDCALL
.STACK 4096
ExitProcess PROTO, dwExitCode: DWORD
.CODE
main PROC
MOV AX, 7FF0h
ADD AL, 10h
invoke ExitProcess, 0
main ENDP
END main
Run Code Online (Sandbox Code Playgroud)
之前,我感动10h到AL,AX包含值0x7FF0
移动后10h进入AL,我期待的AX是价值0x8000,而是在价值AX为0x7F00.
怎么会加入0x10到0xF0在最右边的字节(最低显著字节)并没有延续1到第二个最右边的字节?换句话说,怎么就加入0x10到0x7FF0没有造成0x8000?
我的猜测是,因为当我加入0x10,我加入0x10到AL(AL在另外的时间包含0xF0),因此加入0x10到0xF0导致0x100,但结转1不保留.
我的假设是否正确?
代码将0x10添加到AL,而不是AX,导致AL = 0xF0 + 0x10 = 0x00.更改代码以将0x10添加到AX(而不是AL).你也可以使用| 添加AL,010H | ADC AH,000H | .