第三章算术运.pptVIP

  • 4
  • 0
  • 约1.37万字
  • 约 70页
  • 2017-02-01 发布于湖北
  • 举报
4算术运算类指令 实现二进制(和十进制)数据的四则运算 1、加法运算: ADD ADC INC 2、减法运算:SUB SBB DEC NEG CMP CMPXCHG CMPXCHG8D 3、乘法运算:MUL IMUL 4、除法运算:DIV IDIV 5、符号扩展:CBW CWD 6、十进制调整:DAA DAS AAA AAS AAM AAD 本节要求 本节要求 四则运算是计算机经常进行的一种操作。算术运算指令也是经常使用的一类指令。 请注意算术运算指令对标志的影响 重点掌握:ADD/ADC SUB/SBB INC/DEC CMP 比较熟悉: NEG MUL/IMUL DIV/IDIV 一般了解: CBW CWD 认真理解:DAA DAS AAA AAS AAM AAD 加法指令ADD(add) ADD指令将源与目的操作数相加,结果送到目的操作数。 ADD指令按状态标志的定义相应设置0或1。 ADD reg,imm/reg/mem ;reg←reg+imm/reg/mem ADD mem,imm/reg ;mem←mem+imm/reg 例:加法运算 mov al,0fbh ;al=0fbh add al,07h ;al=02h mov word ptr [200h],4652h;[200h]=4652h mov bx,1feh ;bx=1feh add al,bl ;al=00h add word ptr [bx+2],0f0f0h;[200h]=3742h 带进位加法指令ADC(add with carry) ADC指令将源与目的操作数相加,再加上当前进位CF标志,结果送到目的操作数。 ADD指令按状态标志的定义相应设置0或1 。 ADC reg,imm/reg/mem ;reg←reg+imm/reg/mem+CF ADC mem,imm/reg ;mem←mem+imm/reg+CF 例无符号多字节加法运算 两个无符号的五字节十六进制数的加法运算: BH EH 0AAAAAABA9H 解1 ADD与ADC配合 解2 只使用ADC指令 解1 ADD与ADC配合 DATA SEGMENT FIRST DB 0AB,78H,56H,34H,12H,00H SECOND DB 0FEH,32H,54H,76H,98H DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV AL,SECOND[0] ADD FIRST[0],AL MOV CX,4 ;循环4次 MOV SI,1 ;下标初始化为1 L1:MOV AL,SECOND[SI] ADC FIRST[SI],AL INC SI ;为下一次循环做准备 LOOP L1 ;循环未结束时,跳转到L1 MOV AL,0 ;将最高位产生的进位送入 ADC AL,0 ;目的地 MOV FIRST[SI],AL MOV AX,4C00H ;返回DOS INT 21H CODE ENDS END START 解2 只使用ADC指令 DATA SEGMENT FIRST DB 0AB,78H,56H,34H,12H,00H SECOND DB 0FEH,32H,54H,76H,98H DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV CX,5 ;循环5次 MOV SI,0 ;下标初始化为0 CLC ;将CF清0 L1:MOV AL,SECOND[SI]

文档评论(0)

1亿VIP精品文档

相关文档