[计算机软件及应用]第2章-24学时指令系统.pptVIP

  • 3
  • 0
  • 约1.56万字
  • 约 70页
  • 2018-03-04 发布于浙江
  • 举报

[计算机软件及应用]第2章-24学时指令系统.ppt

[计算机软件及应用]第2章-24学时指令系统

算术运算(Arithmetic)指令 加法运算指令 ADD (Addition) 加法 用法:ADD dest,src; 执行 (dest)←(dest)+(src) 如: ADD WORD PTR[BX], 20 例: AL=7EH) AH=5BH) ADD AL,AH ?→ AL=D9H) SF=1, OF=1, AF=1; CF=0, ZF=0, PF=0;   加法运算指令 利用Debug观察add操作中寄存器的变化: 加法运算指令 Debug常用命令集 加法运算指令 Debug中标志寄存器的表示: 加法运算指令 ADC (ADD with Carry) (dest)←(dest)+(src)+(CF) 带进位加法, 例: 加法运算指令 INC (Increment by 1)  (dest) ← (dest)+1加一操作 例: 加法运算指令 例: 将buffer为首的4个字节内存内容相加,存放在AX中。 减法运算指令分类 减法运算指令 注意点 SUB、SBB、?CMP为双操作数, DEC、NEG为单操作数。 SBB为带进位减法。 除DEC不影响CF标志外, 对SF、ZF、AF、PF、OF均有影响 NEG求补运算,等价于用0减去操作数。 其对标志位的影响,由0减去该操作数的过程决定。 减法运算指令 SUB (普通减法) 例: 减法运算指令 SBB 带借位减法 SBB dst, src (dst) ← (dst) - (src) - CF DEC 自减1  DEC oprd (oprd) ← (oprd) - 1 NEG (Negate) 8位/16位求补(改变符号)?绝对值不变    NEG dest; (dest) ← 0 - (dest) 例: NEG AL NEG BX NEG BYTE PTR [DI+20H] 减法运算指令 CMP (Compare比较操作) (dest)-(src) 例: 乘法指令 乘法: MUL、IMUL(有符号乘) 、AAM 8位乘法 MUL CL; MUL BYTE PTR [BX+1] 执行AL*OPRD 积= AX 16位乘法 MUL CX; MUL WORD PTR [BX] 执行AX*OPRD 积= DX(高16位)| AX(低16位) 除法指令 除法: DIV、IDIV (有符号除) 、AAD 8位除法 DIV CL; DIV BYTE PTR [BX+1] 默认被除数: AX 结果 AH=余数 AL=商 16位除法 DIV CX; DIV WORD PTR [BX] 默认被除数: DX(高16位)| AX(低16位) 结果 DX=余数 AX=商 Review 数据传送指令: 1. 通用数据传送 MOV PUSH POP XCHG XLAT 2. 累加器专用传送 IN OUT 3. 地址传送 LEA LDS LES 标志传送 PUSHF POPF LAHF SAHF 算术运算(Arithmetic)指令 Review: CF和OF位举例 (P74) MOV AL, 7EH MOV BL, 5BH ADD AL, BL+= 1101,1011 CF = 0(无符号数相加结果未超出255) OF = 1(带符号数相加结果超出了127) SUB AL, BL+= 1,0010,0011 CF = 1(无符号数相加结果超出了255) OF = 0(带符号数相加结果未超出127) 加法调整 AAA加法的ASCII(不压缩的BCD码)调整指令,隐含操作数AL和AH 指令操作为: 加法调整 DAA 加法的十进制(压缩的BCD码)调整

文档评论(0)

1亿VIP精品文档

相关文档