嵌入式开发学习笔记5-了解单片机中的特殊功能寄存器(寄存器、累加器和程序状态字)

  • 累加器A
  • 寄存器B
  • 程序状态字PSW

累加器A

累加器A是ACC(Accumulator)的缩写,累加器A是一个具有特殊用途的二进制8位寄存器,专门用来存放操作数或运算结果。在CPU执行某种运算前,两个操作数中的一个通常应放在累加器A中,运算完成后累加器A中便可得到运算结果。
如果没有像累加器这样的寄存器,那么在每次计算(加法,乘法,移位等等)后就必须要把结果写回到内存,也许马上就得读回来。然而存取内存存的速度比从算术逻辑单元到有直接路径的累加器存取慢。

个人理解:累加器就是用来存放操作数或者结果的寄存器,主要是为了提高CPU计算速度

寄存器B

寄存器B称为辅助寄存器,它是为乘法和除法指令而设置的。在乘法运算时,累加器A和寄存器B在乘法运算前存放乘数和被乘数,运算完,通过寄存器B和累加器A存放结果。除法运算前,累加器A和寄存器B存入被除数和除数,运算完用于存放商和余数。

利用汇编语言编写程序时候需要注意一个问题:寄存器B仅在乘法、除法指令中为寄存器寻址,在其它指令中为直接寻址。

程序状态字PSW

程序状态字PSW(Program Status Word),是指在电脑中,一段包含被操作系统和潜在硬件使用的程序状态信息的内存或硬件区域。
一般用一个专门的寄存器来指示处理器状态,主要用于反映处理器的状态及某些计算结果以及控制指令的执行。

地址位 标志位 含义
7 CY 进位标志,如果操作结果有进位或者借位,CY由硬件置1,否则置0
6 AC 辅助进位标志,如果操作结果的低4位数向高4位数产生进位或者借位,AC由硬件置1,否则置0
5 F0 用户标志位,由用户置位或者复位,用户自行定义的一个状态标记,可用软件改变F0来控制程序流向
4 RS1 工作寄存器指针,用于改变选择CPU当前工作的寄存器组,可以使用用户程序改变RS1和RS0的组合来改变当前内部RAM工作寄存器区
3 RS0
2 OV 溢出标志位,由硬件自动形成,累加器的运算结果超出了8位数所能表示的范围,则OV自动置1,否则清0
1 - 保留位,为定义
1 P 奇偶标志位,该位可追踪累加器A中含“1”数目的奇偶性,若A中“1”个数位为奇数置1 ,否则为0,可用于串行数据通讯,保证数据传输的可靠性

在前面我们提到内部RAM分为三个部分:数据缓冲区、位寻址区和工作寄存器区,而在工作寄存器中又分为四个区,如图所示

而我们上面提到的RS0和RS1就是用来控制工作寄存器区域的,控制方式如下

--------------------本文由作者从网络上整理,欢迎转载----------------------

最后再附上一条链接,是作者在寻找资料时发现的一个神仙PPT,大家了解单片机可以从这个PPT开始,里面有关于单片机一些系统全面的知识

单片机581716-课件

嵌入式开发学习笔记5-了解单片机中的特殊功能寄存器(寄存器B、累加器A和程序状态字PSW)相关推荐

  1. 嵌入式开发学习笔记6-了解单片机中的特殊功能寄存器(定时器/计数器)

    嵌入式开发学习笔记6-了解单片机中的特殊功能寄存器(定时器/计数器) 定时器/计数器简介 TH与TL TMOD工作模式寄存器 TCON定时器控制寄存器 定时器操作实例 定时器/计数器简介 在单片机中, ...

  2. 嵌入式开发学习笔记9-做一个好玩的LED闪烁

    嵌入式开发学习笔记9-做一个好玩的LED闪烁 前言 实际操作 程序功能 实现思路 程序源码 实现效果展示 前言 LED小灯闪烁实质是控制单片机上的I/O口,通过向I/O口循环输入高低电平,从而控制LE ...

  3. Go语言开发学习笔记(持续更新中)

    Go语言开发学习笔记(持续更新中) 仅供自我学习 更好的文档请选择下方 https://studygolang.com/pkgdoc https://www.topgoer.com/go%E5%9F% ...

  4. 龙芯1C300B主板V3.4嵌入式开发学习笔记二

    1 PMON更新 接着笔记一:https://blog.csdn.net/weixin_38709708/article/details/81271493 笔者手中的开发板一开始就烧写了PMON,当是 ...

  5. 龙芯1C300B主板V3.4嵌入式开发学习笔记一

    1 硬件连接,驱动安装,串口访问: 刚拿到板子,打开配套了一条USB转TTL线,电源适配器,备用PMON芯片(?) 问题一:怎么连接USB-TTL线到主板,这里涉及到线的规定 观察转接线的末端,有四条 ...

  6. CAD二次开发学习笔记五(在ObjectARX中使用MFC)

    要实现的功能是: 执行ArxModal命令,弹出如图所示对话框 选择点,则得到点坐标,选择角度则得到角度值. 步骤一: 新建基于MFC的ObjectArx项目, 参考:http://www.cnblo ...

  7. stm32滴答计时器_STM32嵌入式开发学习笔记(四):使用滴答计时器实现精准计时...

    前面我们讲过,因为在STM32上没有系统时间的接口,因此无法调用sleep函数,在本文中,笔者将利用滴答计时器实现精准延时. 查阅技术手册,滴答计时器依赖于一个SysTick_Type类型寄存器,定义 ...

  8. 嵌入式开发学习路线图

    之前看到别人在学习视频中的回复,觉得很全面,分享给大家 --------------我就是个搬运工 基础学习Ⅰ---Linux入门        目前嵌入式主要开发环境有 Linux.Wince等:L ...

  9. 华清远见嵌入式开发学习的6大阶段

    分享一下华清远见嵌入式开发学习的6大阶段.19年嵌入式培训经验,值得一看. 第一阶段:嵌入式系统开发基础理论 阶段目标 掌握Linux操作系统的使用,精通使用C语言编程,熟练掌握嵌入式Linux的开发 ...

最新文章

  1. 性能测试回归测试_自动网站性能回归测试
  2. 使用Project Lombok是否安全? [关闭]
  3. 未授权用户在此计算机上的的请求登陆类型
  4. RHEL7 yum安装配置LAMP(Apache+PHP+MySql)服务器
  5. 短期目标[Till 2011-08-05]
  6. LeetCode House Robber 家庭劫犯(dp)
  7. 从OpenKruise用户疑问开始理解K8s资源更新机制
  8. 11.4. String 字符串处理
  9. 用vscode创建一个c项目_Visual Studio Code创建C#项目
  10. 【iCore1S 双核心板_ARM】例程五:IWDG看门狗实验——复位ARM
  11. nginx+thinkphp下解决不支持pathinfo模式以及存在的各种404,500问题
  12. [转载] opengl能做什么_python能做什么
  13. python16进制字节序_Python-十六进制数据传递与接收
  14. java flink(二十七) 实战之电商 订单超时取消报警计算 CEP与ProcessFunction 对比
  15. python元祖封包_python的封包与解包
  16. (已更新)全新商城微信小程序源码支持对接公众号
  17. PINN内嵌物理知识神经网络投稿期刊总结
  18. JS在html中打印所有类型的数据
  19. 自建ES通过OSS快照迁移至阿里云ES
  20. 游戏脚本在移动游戏设计中的作用_展示 | 游戏脚本编程在线教学设计案例

热门文章

  1. 移动端页面调用微信支付
  2. 有效提高绩效面谈的10个关键点
  3. CS和BS具体是什么意思?
  4. QML的图片加载,内存优化研究(一)
  5. 个人和初创企业想要搭建网站,如何挑选一台便宜合适的云主机?
  6. 从键盘输入一个大写字母,然后转换成小写字母输出。
  7. 2023年天津市大学软件学院专升本专业课报名缴费考试的通知
  8. JavaScript——制作验证页面,并给一定的提示
  9. 已知正整数n是两个不同的质数的乘积,试求出较大的那个质数
  10. Mysql ACID详解