8086/8088指令系统详解之(2)算术运算指令

一,算术运算的数据类型二,算术运算指令对标志位的影响三,二进制运算指令1,加法指令1)不带进位加法指令ADD(ADDition)格式:ADD DST,SRC操作: 将目的操作数和与源操作数相加,将结果送给目的操作数//DST <= DST+SRC寻址方式: SRC可以是data/MEM/REG DST可以是MEM/REG 两者不可同时为...
摘要由CSDN通过智能技术生成

一,算术运算的数据类型

这里写图片描述

二,算术运算指令对标志位的影响

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

三,二进制运算指令

1,加法指令

1)不带进位加法指令ADD(ADDition)

格式:ADD DST,SRC

操作:
将目的操作数和与源操作数相加,将结果送给目的操作数//DST <= DST+SRC

寻址方式:
SRC可以是data/MEM/REG
DST可以是MEM/REG
两者不可同时为MEM
不允许段寄存器参与运算

对状态位的影响:
全部影响

b,带进位加法指令ADC(ADdiion with Carry)

格式:ADC DST,SRC

操作:将目的操作数和与源操作数相加,再加上进位标志CF,将结果送给目的操作数 //DST <= DST+SRC+CF

寻址方式:
SRC可以是data/MEM/REG
DST可以是MEM/REG
两者不可同时为MEM
不允许段寄存器参与运算

对状态位的影响:
全部影响

c,加1指令(INCrement by 1)

格式:INC DST

操作:将目的操作数加1,结果送回目的操作数 //DST <= DST +1

寻址方式:
DST可以是MEM/REG
不可以是data/SEG

对状态位的影响:
除了CF,其他全部影响

例, 计算两个多字节十六进制数之和:3B74AC60F8H+20D59E36C1H=?

式中被加数和加数均有5个字节,可以编一个循环程序实现以上运算。假设已将被加数和加数分别存入从DATA1和DATA2开始的两个内存区,且均为低位字节在前,高位字节在后,如图4.15所示。要求相加所得结果仍存回以DATA1为首址的内存区。

程序流程图如下图,程序如下:

        MOV     CX,5                ;设置循环次数
        MOV     SI,0                ;置位移量初值
        CLC                          ;清进位CF
LOOPER:MOV      AL,DATA2[SI]       ;取一个加数
        ADC      DATA1[SI],AL       ;和一个被加数相加
        INC      SI                  ;位移量加1
        DEC      CX                  ;循环次数减1 
        JNZ      LOOPER    ;加完否,若没完,转LOOPER,继续相加
        HLT                          ;程序暂停 

这里写图片描述

  • 0
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值