最近我有一个8086汇编作业完成,我尝试使用CMP指令,但无法正确使用。这里有代码:
MOV AL, 88h
CMP AL, 24h
JL exit
label:
mov al,4h
exit:
RET
当我调试它时,在jl之后它跳转到exit:
但以下代码工作正常
MOV AL, 88
CMP AL, 24
JL exit
label:
mov al,4h
exit:
RET
为什么会这样?
答案 0 :(得分:4)
JL使用签名条件。从签名的角度来看,88h是负数。如果你希望24小时被视为少于88小时,你有几个选择 - 最明显的是使用无符号条件,这意味着使用jb
而不是jl
。