(3)减1指令DEC 作用类似于C语言中的?一-操作符。 格式: DEC opr 操作:Opr←(opr) 指令例子: DEC CL DEC BYTE PTR DI+2 DEC SI
6 作用类似于C语言中的”--”操作符。 格式:DEC opr 操作:opr←(opr)-1 指令例子: DEC CL DEC BYTE PTR[DI+2] DEC SI (3) 减1指令DEC
(4)求补指令NEG 格式: NeG opr 操作:opr←0-(opr) 对一个操作数取补码相当于用0减去此操作 数,故利用NEG指令可得到负数的绝对值。 例:若(AL)=OFCH,则执行 NEG AL后, (AL)=04H,CF=1 本例中,OFCH为-4的补码,执行求补指令后, 即得到4(-4的绝对值)
7 格式: NEG opr 操作: opr← 0-(opr) 对一个操作数取补码相当于用0减去此操作 数,故利用NEG指令可得到负数的绝对值。 例:若(AL)=0FCH,则执行 NEG AL 后, (AL)=04H,CF=1 本例中,0FCH为-4的补码,执行求补指令后, 即得到4(-4的绝对值)。 (4) 求补指令NEG
SUB/SBB对标志位(CF/ OF//SE)的影响 cF=(1被减数的最高有效位有向高位的借位 0否则 OF 两个操作数符号相反,而结果的符号与减数相同 0否则 CF=1表示无符号数减法溢出。 OF=1表示带符号数减法溢出。 NEG指令对CF/OF的影响: CF:操作数为0时,求补的结果使CF=0,否则CF=1 OF:字节运算对128求补或字运算对-32768求补时OF=1, 否则OF=0
8 SUB/SBB对标志位(CF/OF/ZF/SF)的影响 CF=1表示无符号数减法溢出。 OF=1表示带符号数减法溢出。 NEG指令对CF/OF的影响: CF:操作数为0时,求补的结果使CF=0,否则CF=1。 OF:字节运算对-128求补或字运算对-32768求补时OF=1, 否则OF=0。 1 被减数的最高有效位有向高位的借位 0 否则 CF= 1 两个操作数符号相反,而结果的符号与减数相同 0 否则 OF=
(5)比较指令CMP 格式: cmp dest,src 操作:(dest)-(src) CMP也是执行两个操作数相减,但结果不送目 标操作数,其结果只反映在标志位上。 指令例子: CMP AL, OAH cMP CX, SI CMP DI, [BX+03
9 格式: CMP dest, src 操作: (dest)-(src) CMP也是执行两个操作数相减,但结果不送目 标操作数,其结果只反映在标志位上。 指令例子: CMP AL,0AH CMP CX,SI CMP DI,[BX+03] (5) 比较指令CMP
根据标志位来判断比较的结果 1)根据zF判断两个数是否相等。若zF=1,则两 数相等。 2)若两个数不相等,则分两种情况考虑: ①比较的是两个无符号数 若cF=0,则dest>src 若CF=1,则dest<src ②比较的是两个有符号数 若OF⊕SF=0,则dest>sre 若OF⊕SF=1,则dest<sre
10 根据标志位来判断比较的结果 1)根据ZF判断两个数是否相等。若ZF=1,则两 数相等。 2)若两个数不相等,则分两种情况考虑: ①比较的是两个无符号数 若CF=0,则dest>src; 若CF=1,则dest<src。 ②比较的是两个有符号数 若OF⊕SF=0,则dest>src; 若OF⊕SF=1,则dest<src