为什么JB没有进行精确的CMP

时间:2018-06-25 07:50:05

标签: assembly emu8086

在emu8086中,我已经编写了这段代码

include 'emu8086.inc'

org 100h

MOV AX,-1  
CMP AX,0
JB case1 

case2:
    printn 'This line should not be displayed'

case1:
    print 'I want this line'

ret

应该仅打印案例1,但在这种情况下,输出将显示两种情况。我在做什么错了?

1 个答案:

答案 0 :(得分:2)

JB(如果小于,则跳转)用于无符号整数,类似于JNAE(如果不大于或等于,则跳转)。

因此,如果要与带符号的整数进行比较(在您的情况下为-1),则必须使用JL(如果小于则跳转)或JNGE(如果不大于或等于则跳转)