,无符号数和带符号数据运算可以使用相同的指令。二进制乘、除法指令分带符号数和无符号数运算指令。一、加法指令格式:ADDDEST,SRCADCDEST,SRC功能:ADD是将源操作数与目的操作数相加,结果传送到目的操作数。ADC是将源操作数与目的操作数以及CF低位进位值相加,结果传送到目的操作数。源操作数可以是通用寄存器、存储器或立即数。目的操作数可以是通用寄存器或存储器操作数。
fADD,ADC指令影响标志位为OF,SF,ZF,AF,PF,CF。例326MOVAX,9876HADDAH,AL;AX0E76HCF1SF0OF0ZF0AF0PF0ADCAH,AL;AX8576HCF0SF1OF1ZF0AF1PF0二、减法指令格式:SUBDEST,SRCSBBDEST,SRC功能:SUB将目的操作数减源操作数,结果送目的操作数。SBB将目的操作数减源操作数,还要减CF低位借位值,结果送目的操作数。源操作数可以是通用寄存器、存储器或立即数。目的操作数可以是通用寄存器或存储器操作数。SUB,SBB指令影响标志位为OF,SF,ZF,AF,PF,CF。例3.27MOVAX,9966H;AX9966HSUBAL80HALE6HCF1SF1OF1ZF0AF0PF0SBBAH80HAH18HCF0SF0OF0ZF0AF0PF1三、加1减1指令格式:INCDESTDECDEST功能:INC指令将目的操作数加1,结果送目的操作数。DEC指令将目的操作数减1,结果送目的操作数。目的操作数为通用寄存器或存储器操作数。INC,DEC指令影响标志位为OF,SF,ZF,AF,PF。例3.28INCBL;BL←BL1INCAXAX←AX1INCWORDPTRBX存储器操作数加1DECBYTEPTRSI存储器操作数减1DECEAX;EAX←EAX1四、比较指令1格式:CMPDEST,SRC功能:目的操作数减源操作数,结果不回送。源操作数为通用寄存器、存储器和立即数。目的操作数为通用寄存器、存储器操作数。CMP指令影响标志位为OF,SF,ZF,AF,PF,CF。例3.29CMPCX,3CMPWORDPTRSI,3CMPAX,BLOCK执行比较指令后,对状态标志位影响见表32。对于两个数的比较AXBX有以下3种情况。指令对标志位的影响表32CMP指令对标志位的影响
f两个正数比较,使用SF标志位判断。SF0,则AX≥BX,若ZF1,则AXBXSF1,则AXBX两个无符号数比较,使用CF标志位判断。CF0,则AX≥BX,若ZF1,则AXBXCF1,则AXBX两个负数比较,使用SF标志位判断。SF0,则AX≥BX,若ZF1,则AXBXSF1,则AXBX两个异符号数比较。如果OF0,仍可用SF标志判断大小。如果OF1,说明结果的符号位发生错误,所以SF0,则AXBXSF1,则AX>BX综上所述:两个异号数比较当OF0,SF0,则AX>BXSF1,则AXBX当OF1,SF0,则AXBXSF1则AX>BX用逻辑表达式表示为:若OF∨SF0则AX>BX若OF∨SF1,则AXBXr