现在的位置: 首页 > 综合 > 正文

求补操作前前后后

2013年04月23日 ⁄ 综合 ⁄ 共 453字 ⁄ 字号 评论关闭

  格式:NEG OPR ;B/W

  执行的操作:(OPR)←(OPR)求补

  这条指令的执行影响全部标志位。

  下面就求补操作时对CF和OF两个标志位的影响做一个分析。求补操作即是把操作数按位求反后末位加1,即FFFFH-OPR+1=0-OPR。也就是说,对一个操作数求补,相当于用0减去此操作数。参加求补运算的操作数当然是有符号数。对于CF而言,只有对0求补时,CF=0,其余情况都使CF=1(有借位)。0减去负数应该是正数,但当操作数的值是80H(-128)或8000H(-32768)时,求补后其值保持不变,仍为负数,固产生溢出,OF=1。其余情况都使OF=0。

  求反指令NOT的操作是对操作数按位求反,即FFFFH-OPR。所以假定要对AX寄存器中的操作数进行求补,那么可以有如下几种方法:

  方法1:NEG AX

  方法2:NOT AX

  INC AX

  方法3:MOV BX,0

  XCHG AX,BX

  SUB AX,BX

  注意:由于求补运算的结果应在AX中,所以方法3中要使用交换指令将AX和BX互换

抱歉!评论已关闭.