lec06 算术运算类指令.ppt
文本预览下载声明
第 06 讲 8086指令系统 ——算术运算类指令 数据传送类指令 算术运算类指令 逻辑运算类指令 串处理类指令 控制转移类指令 处理机控制与杂项操作指令 8086的指令系统 重点关注: 指令的汇编格式 指令的基本功能 指令支持的寻址方式 指令的执行对标志位的影响 指令的特殊要求 算术运算类指令: ? 加法指令 ADD、ADC、INC ? 减法指令 SUB、SBB、DEC、NEG、CMP ? 乘法指令 MUL、IMUL ? 除法指令 DIV、IDIV ? 十进制调整指令 DAA、DAS、 AAA、AAS、AAM、AAD ? 加法指令 加法指令: ADD DST, SRC 执行操作: (DST) ? (SRC) + (DST) 带进位加法指令: ADC DST, SRC 执行操作: (DST) ? (SRC) + (DST) + CF 加1指令: INC OPR 执行操作: (OPR) ? (OPR) + 1 注意: * 都影响状态标志位,但 INC指令不影响CF标志位。 加法指令对条件标志位的影响 CF 位表示 无符号数 相加的溢出。 OF 位表示 带符号数 相加的溢出。 1 结果为负 0 否则 SF= 1 结果为0 0 否则 ZF= 1 和的最高有效位 有 向高位的进位 0 否则 CF= 1 两个操作数符号相同,而结果符号与之相反 0 否则 OF= 0 0 0 0 1 0 0 1 + 0 1 1 1 1 1 0 0 1 0 0 0 0 1 0 1 带: (+9)+(+124)=-123 OF=1 无: 9+124=133 CF=0 1 0 0 0 0 1 1 1 + 1 1 1 1 0 1 0 1 1 0 1 1 1 1 1 0 0 带:(-121)+(-11)=+124 OF=1 无:135+245=124 CF=1 举例: n=8 bit 带符号数(-128~127) , 无符号数(0~255) 0 0 0 0 0 1 0 0 + 0 0 0 0 1 0 1 1 0 0 0 0 1 1 1 1 带:(+4)+(+11)=+15 OF=0 无:4+11=15 CF=0 带符号数和无符号数都不溢出 带符号数溢出 无符号数溢出 0 0 0 0 0 1 1 1 + 1 1 1 1 1 0 1 1 1 0 0 0 0 0 0 1 0 带:(+7)+(-5)=+2 OF=0 无:7+251=2 CF=1 带符号数和无符号数都溢出 CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX, DATA MOV DS, AX MOV AX, WORD PTR X ;取X的低16位,送入AX ADD AX, WORD PTR Y ;X,Y的低16位相加 ;(AX)=99 AAH + DE F0H = 78 9A H, CF=1 MOV WORD PTR Z, AX ;低16位的和送Z的低16位 MOV AX, WORD PTR X+2 ;取X的高16位,送入AX ADC AX, WORD PTR Y+2 ;X, Y的高16位加进位 ;(AX)=77 88H+9A BC H+CF =12 45 H , CF=1 MOV WORD PTR Z+2, AX ;高16位的和送Z的高16位 MOV AX, 4C00H INT 21H CODE ENDS END START [例3-1]X=77 88 99 AAH, Y=9A BC DE F0H, 计算Z=X+Y DATA SEGMENT X DD 778899AAH Y DD 9ABC
显示全部