任何人都可以解释为什么这段代码给我错误的o / p
data segment
num1 db 35h
num2 db 39h
result db 00h
data ends
code segment
assume cs: code, ds: data
start:
mov ax,data
mov ds ,ax
mov ax,0000h
mov al,num1
sub al,num2
aas
mov result,al
int 03h
code ends
end start
end
输出:
-g
AX=FF06 BX=0000 CX=0024 DX=0000 SP=0000 BP=0000 SI=0000 DI=0000
DS=146C ES=145C SS=146C CS=146D IP=0013 NV UP EI PL NZ AC PO CY
146D:0013 CC INT 3
-d ds:0l10
146C:0000 35 39 06 00 00 00 00 00-00 00 00 00 00 00 00 00 59..............
-
我期待AX成为FF04。
我刚开始学习它,所以尽可能使用简单的解释。
答案 0 :(得分:3)
您正在使用解压缩指令aas
,该指令在解压缩的BCD 06 中提供 -4 结果,但您正在执行打包 BCD,需要打包变体das
才能获得正确答案 96 。