第三章指令算术指令开始.pptVIP

  • 6
  • 0
  • 约2.86万字
  • 约 100页
  • 2018-06-09 发布于山西
  • 举报
第三章指令算术指令开始

§3.3.2 8086/8088 指令系统中的算术运算类指令 算术运算指令包括4种: ⒈加法运算指令包括4种: ①ADD 加法指令 ②ADC 带进位加法指令 ③INC 加1指令 ④XADD 交换并相加 加法运算指令中的加法指令 ①加法指令 指令格式:ADD DEST,SRC 指令功能:将源操作数与目的操作数相加,结果送到目的地址中。并根据相加结果设置标志寄存器的OF、SF、ZF、AF 、PF和CF标志位。 DEST←(DEST)+(SRC) 举例 ADD BX,SI ADD DL,TAB[BX] ADD DH,12H 加法指令对条件标志位的影响 CF 位表示 无符号数 相加的溢出。 OF 位表示 带符号数 相加的溢出。 举例: n=8 bit 带符号数(-128~127) , 无符号数(0~255) 加法指令举例 设(DL)=E5H,(DAB)=A4H ,执行指令 ADD DL, DAB 问该指令执行后(DL)=?( DAB )=? 加法运算指令中的带进位加法指令 ②带进位加法指令 指令格式:ADC DEST,SRC 指令功能:将源操作数与目的操作数及状态标志位CF相加,结果送到目的地址中。并根据相加结果设置标志寄存器的OF、SF、ZF、AF 、PF和CF标志位。 DEST←(DEST)+(SRC)+(CF) 带进位加法指令举例 例:有一个32位无符号数存放在DX(高16位)和AX(低16位)中,将此无符号数与32位常数76F1A23H相加。 ADD AX,1A23H ADC DX,76FH 例3.46在8086和80286中实现双精度数的加法。设目的操作数存放在DX和AX寄存器中,其中DX存放高位字。源操作数存放在BX、CX中,其中BX存放高位字。 (DX) = 0002H (AX) = 0F365H (BX) = 0005H (CX) = 0E024H 指令序列 ADD AX, CX ; (1) ADC DX, BX ; (2) 1110 0000 0010 0100 0010 + 1111 0011 0110 0101 0101 11101 0011 1000 1001 + 1 1000 (1) 执行后,(AX) = 0D389H CF=1 OF=0 SF=1 ZF=0 (2) 执行后,(DX) = 0008H CF=0 OF=0 SF=0 ZF=0 加法运算指令中的加1指令 ③加1指令 指令格式:INC DEST 单操作数指令 指令功能:将目的操作数加1后,结果送回目的地址中。并根据相加结果设置标志寄存器的OF、SF、ZF、AF 、PF标志位,但不影响CF。 DEST←(DEST)+1 ④ 交换并相加 指令格式:XADD DST ,SRC 执行的操作: TEMP ←(SRC)+(DST) (SRC) ←(DST) (DST) ←TEMP 功能:该指令只能用于486及其后继机型,它把目的操作数装入源,并把源和目的操作数之和送目的地址。 例3.47 XADD BL,DL 如指令执行前 (BL)=12H, (DL)=02H, 则指令执行后 (BL)=14H, (DL)=12H。 2. 算术运算类指令中的减法运算指令 ①减法指令 指令格式: SUB DEST,SRC 指令功能:将源操作数与目的操作数相减,结果送到目的地址中。并根据相减结果设置标志寄存器的OF、SF、ZF、AF 、PF和CF标志位。 DEST←(DEST)-(SRC) 举例 SUB BX,SI SUB DL,TAB[BX] SUB DH,12H 减法指令对条件标志位(CF/OF/ZF/SF)的影响: CF 位表示 无符号数 减法的溢出。 OF 位表示 带符号数 减法的溢出,结果是错误的。 和加法的相同 减法指令举例 设(AL)=B7H,(DAB)=A8H ,执行指令 SUB AL, DAB 问该指令执行后(AL)=?( DAB

文档评论(0)

1亿VIP精品文档

相关文档