跳转至

8.adc、sbb、cmp、je、ja、jb指令

1.adc

adc为带进位的加法

mov ax,ffff
mov bx,1
add ax,bx
adc cx,1

image

可以发现cx多加了1,是因为前面add ax,bx发生了进位

2.sbb

sbb为带借位的减法

mov ax,1
mov bx,2
sub ax,bx
sbb cx,1

image

可以发现cx多减了1,是因为前面的sub运算发生了借位

3.cmp、je(jz)、ja、jb

cmp用于比较,本质是减法但不保存结果

  • 可以配合带条件的跳转使用

  • je (jump if equal) / jz (jump if zero)

    • 如果相等(相减等于零)则跳转,ZF=1
    • ja (jump if above)

    • 如果大于则跳转,CF=0 and ZF=0

    • jb (jump if below)

    • 如果小于则跳转,CF=1