ADD与ADDC 加法指令:
例如:执行0xfefe+0x0003

由于单片机只能处理8位数据加减法 具体操作如下:

/低八位加法//

mov r0,#0xfe ;0xfefe 先将低八位给r0寄存器
mov r1,#0x03 :0x0003先将低八位给r1寄存器
mov a,r0
ADD  a,r1
MOV r2, A r2存放计算结果低八位

执行ADD加法指令后  A寄存器中的值为数据低八位相加得0x01,cy进位标志位为1。

/高八位减法//

mov r0,#0xfe ;0xfefe 先将高八位给r0寄存器
mov r1,#0x00 :0x0003先将高八位给r1寄存器
mov a,r0
ADDC a,r1
MOV r3, a    ; r3存放计算结果高八位
执行ADDC加法指令后  A寄存器中的值为数据高八位相加得0xfe在加上低八相加后向高八位的进位 也就是进位标志位中的 1,最后结果a寄存器为0xff。
注意:当加上CY位后 CY标志位清零

减法指令SUBB 加法指令:
例如:执行0xfe9f-0x00af
由于单片机只能处理8位数据加减法 具体操作如下:
/低八位减法//
mov r0,#0x9f  ;0xfe9f 先将低八位给r0寄存器
CLR Cy ;由于减法指令只有一个 所以低八位做减法运算先将借位标志位Cy清零
mov r1,#0xaf :0x00af 先将低八位给r1寄存器
mov a,r0
subb  a,r1
MOV r2, a  ;保存低八位减法所得结果
当a减r1数据时候,由于a寄存器中的值比r1寄存器中值小 所以向高位借一位 就把借位标志位Cy置1 ,结果为0xf0
/高八位减法//
mov r0,#0xfe ;0xfe9f 先将低八位给r0寄存器
mov r1,#0x00:0x00af 先将低八位给r1寄存器
mov a,r0
subb  a,r1
MOV r3, a ;保存高八位减法所得结果
当a减r1数据时候,由于0xfe9f低八位做减法向高八位借一位,所以高八位做减法时候  r0寄存器中0xfe减掉借走的一位,也就是 借位标志位Cy。也就是r0寄存器中的数据减去cy标志位后在减r1寄存器的值0x00所得结果a为0xfd
注意:当减掉CY位后 CY标志位清零

51单片机ADD,ADDC与SUBB指令详细分析相关推荐

  1. 基于51单片机的DS1302涓流充电计时芯片详细学习(时钟制作)

    目录 前言 一.初学者需要了解DS1302的一些基本特性 二.脉冲串模式数据传输 1.单字节写入 2.单字节读取 3.BCD码的转换 三.理论存在实践开始(代码模块) 1.DS1302时钟模块原理图 ...

  2. 51单片机外设系列:LCD1602 的详细编程

    前言,LCD1602是一个比较常用的单片机显示外设,下面我们从它的显示原理,来分析用51单片机编程的思路.另外结尾还提供了完成的程序代码参考. 一.LCD1602的外观.结构和基本参数 引脚功能解析: ...

  3. C51汇编语言16进制加法,51单片机汇编语言带进位加法指令(4条)

    算术运算指令共有24条,算术运算主要是执行加.减.乘.除法四则运算.另外MCS-51指令系统中有相当一部分是进行加.减1操作,BCD码的运算和调整,我们都归类为运算指令.虽然MCS-51单片机的算术逻 ...

  4. C语言烧写C51单片机的线,51单片机烧写程序过程以及详细说明【图文】

    Step 1:Keil软件的安装 1.选中文件夹中的C51V900安装程序并打开,如图: 2.在安装对话框里一直选择Next,直到Finish完成Keil的安装. Step 2: 安装USB转串口线的 ...

  5. 51单片机计算机实物焊接,51单片机实验DIY焊电源--串口详细步骤

    对于DIY(自己动手焊板子)的朋友在做以下实验是先要将实验板上的电源(用来给单片机提供5V 的稳压电源),和串口(用来给单片机下载程序)焊接好. 第一步焊接电源模块: 以是电源的原理图,以下是实物图 ...

  6. pcf8574c语言测试程序,51单片机+PCF8574简易密码锁程序 带详细注释 1602显示

    #include #include "intrins.h" #define uchar unsigned char #define uint unsigned int #defin ...

  7. 51单片机——点亮第一盏灯详细操作过程

    在Keil5 中new 一个project保存到合适的位置 在project中new一个文件将他保存为LED.C 选中AT89C51芯片 钩中生成16进制文件,可直接烧录到板子上 #include & ...

  8. C语言sfr指令,51单片机的指令和sfr汇总.pdf

    51单片机的指令和sfr汇总 51 单片机编程备忘录 一.指令 51 系列的指令说复杂也不复杂,说简单吧,也比较繁琐讨厌.总体上,可以分为7 个大类,如下表. 序号 大类 子类 说明 1 辅助 伪指令 ...

  9. 51单片机的延时子程序

    延时程序在单片机编程中使用非常广泛,但一些读者在学习中不知道延时程序怎么编程,不知道机器 周期和指令周期的区别,不知道延时程序指令的用法, ,本文就此问题从延时程序的基本概念.机器周期和指 令周期的区 ...

最新文章

  1. (转)[翻译] ASP.NET MVC Tip #1 - 使用扩展方法创建新的HTML Helper
  2. Javaweb 项目内所有页面都是404问题
  3. Exploiting the Syntax-Model Consistency for Neural Relation Extraction(关系抽取,语法模型,跨领域关系抽取
  4. Java内存中的堆和栈
  5. Mac 上如何使用“备忘录”管理扫描文稿?
  6. JVM中也有并发GC,CMS机制
  7. 做快乐的程序员 - 李战 在淘宝网的一次讲座
  8. Python xls文件和xlsx文件格式互相转换
  9. 串口/COM口、USB、RS232、RS422、RS485的区别
  10. 【RSA原理1】浅谈--什么是非对称加密?(加密通信的原理)
  11. 第十三届蓝桥杯大赛软件赛省赛(Java 大学B组)
  12. 深入理解epoll模型
  13. Java我的2020年终盘点
  14. BioPython ① | 统计蛋白序列中20种氨基酸的的个数和频率
  15. 微信公众号开发(一)------对接公众号
  16. 哪些手机支持android q,华为首批升级Android Q机型曝光 共17款
  17. 微信小程序全栈实战(二):列表循环渲染
  18. 国内k8s集群部署的几种方式
  19. 酷派:真正的闷声发大财
  20. js iframe.contentWindow_iframe页面调用主页面.html

热门文章

  1. 【Arduino笔记】触摸传感器的使用
  2. 前端面试题(跟谁学)
  3. java程序设计教程第三版雍俊海
  4. 银河系内适宜人类居住的星球估计有一亿颗
  5. AMD和Intel的cpu架构的区别
  6. python爬取饿了么奶茶店外卖数据_如何利用奶茶店外卖提高营业额?
  7. 【SpringMVC笔记05】SpringMVC中的视图解析器
  8. 任正非:曾竭力反对华为做手机
  9. python指数运算_Python标准库——数学运算
  10. js中一个对象当做参数传递时候?