知识总结6:指令总结(三)
1 adc指令:带进位加法指令 2 指令格式:adc 操作对象1,操作对象2 3 功能:操作对象1 = 操作对象1 + 操作对象2 + CF 4 例如:adx ax,bx实现的功能是:(ax) = (ax) + (bx) + CF 5 6 sbb指令:带借位减法指令 7 指令格式:sbb 操作对象1,操作对象2 8 功能:操作对象1 = 操作对象1 - 操作对象2 - CF 9 例如:sbb ax,bx实现的功能是:(ax) = (ax) - (bx) - CF 10 11 cmp指令:比较指令,功能类似减法指令,不过不保存结果,临时结果存在CPU暂存器处 12 指令格式:cmp 操作对象1,操作对象2 13 功能:计算操作对象1-操作对象2的结果,但不保存结果,影响标志寄存器flag 14 例如:cmp ax,ax实现的功能就是:ZF=1 PF=1 SF=0 CF=0 OF=0 15 16 条件转移指令:经常跟在cmp后,进行转移,也可以跟在其他指令后,本质是对寄存器的相关检测来进行转移 17 常见条件转移指令如下: 18 指令 含义 相关标志位 19 je 等于则转移 ZF=1 20 jne 不等于则转移 ZF=0 21 jb 低于则转移 CF=1 22 jnb 不低于则转移 CF=0 23 ja 高于则转移 CF=0且ZF=0 24 jna 不高于则转移 CF=1或ZF=1 25 26 movsb指令:串传送指令,通常与rep搭配使用,形如rep movsb 27 指令格式:rep movsb 等价于 s:movsb 28 loop s 29 功能:将ds:[si]处字节单元转送给es:[di]处,然后根据DF标志位(为0则加1,为1则减1)si与di同时变化 30 例如:mov byte ptr es:[di],ds:[si] //当然8086并不支持这样写 31 若DF=0 32 inc si 33 inc di 34 则 35 dec si 36 dec di 37 38 movsw指令:同movsb,唯一不同的是movsw传送的是字单元 39 40 cld指令:用来将标志位DF置为0 41 42 std指令:用来将标志位DF置为1