当前位置:首页 > 民俗文化

运行指令 单片机中一个程序的运行过程详解

单片机程序的运行过程分为几个步骤:取指令、分析指令和执行指令。

取指令的任务是根据程序计数器PC中的值从程序存储器中读取当前指令,并发送到指令寄存器。

指令分析阶段的任务是从指令寄存器中取出指令操作码并解码,分析其指令属性。如果指令需要操作数,寻找操作数地址。其实计算机执行程序的过程就是一个个重复上述操作过程,遇到关机指令循环等待指令。一般的计算机工作时,首先要通过外部设备,通过输入接口电路和数据总线,将程序和数据发送到内存中,然后逐个取出执行。而单片机中的程序一般都是由编写器提前固化在片内或片外程序存储器中。因此,该指令可以在启动时执行。

下面我们将举例说明指令的执行过程:

启动时,程序计算器的PC变为0000H。然后在时序电路的作用下,单片机自动进入执行程序的过程。执行过程实际上是取指令(取预先存储在内存中的指令)和执行指令(分析和执行指令)的循环过程。

比如执行指令:MOV A,#0E0H,其机器码为“74H E0H”。该指令的作用是将操作数E0H送入累加器,其中74H已存入000H单元,E0H已存入0001H单元。单片机开始运行时,第一步是进入取指阶段,顺序如下:

1.程序计数器的内容(此时为0000H)被发送到地址寄存器;

2程序计数器的内容自动加1(改为0001H);

3.地址寄存器(0000H)的内容通过内部地址总线发送到存储器,利用存储器中的地址对信号进行解码,从而选择地址为0000H的单元;

4 CPU使读取控制线有效;

5在读命令的控制下,所选存储单元(此时应该是74H)的内容被发送到内部数据总线。因为它是提取级,所以内容通过数据总线发送到指令寄存器。

此时,提取阶段完成,进入解码分析和指令执行阶段。

由于这次进入指令寄存器的内容是74H(操作码),经过解码器解码后,单片机就知道指令是给A累加器发送一个数字,这个数字在这个代码的下一个存储单元。因此,要执行这个指令,还必须从内存中取出数据(E0H)并发送给CPU,即必须从内存中取出第二个字节。过程和取数阶段很像,只是PC已经是0001H了。指令译码器,结合定时单元,产生74H操作码的微操作序列,使数字E0H从0001H单元中取出。因为指令要求将获取的编号发送到A累加器,所以获取的编号通过内部数据总线而不是指令寄存器进入A累加器。此时,指令的执行完成。单片机中PC=0002H,每次CPU从内存中取数据或取数据,PC自动加1,单片机进入下一个取数据阶段。重复该过程,直到接收到暂停指令或循环等待暂停指令。CPU就是这样一条条执行指令,完成所有指定的功能。

ROM是存储程序代码的只读存储器;RAM是一个数据存储器,用来存储单片机运行时的数据。也就是说,RAM中的数据在断电(复位)后会消失,而ROM中的数据不会。

中断的主要作用是保护现场。计时器用于精确计时和长时间计时。听不懂就问我!

中断通过硬件改变CPU的运行方向。在计算机程序执行过程中,当发生CPU以外的事情时,服务对象向CPU发送中断请求信号,要求CPU暂时中断当前程序的执行,转而执行相应的处理程序,处理程序执行完毕后继续执行被中断的程序。这类程序在执行过程中由于外部原因中途中断,称为“中断”。

“中断”后执行的相应处理程序通常称为中断服务程序或中断处理子程序。

原来正常运行的程序叫做主程序。

主程序断开的位置(或地址)称为“断点”。

中断的原因,或者可以发出中断申请的来源,称为“中断源”。

来自中断源的服务请求称为“中断请求”(或中断应用)。

当硬件电路向中央处理器发送中断信号时,它为主程序设置一个断点,然后响应中断请求。中断内容完成后,继续在断点处执行主程序。

本文来源于网络。如果原作者不支持我们转发,请联系我们删除。谢谢!

技术来自积累,成功来自坚持

1.《运行指令 单片机中一个程序的运行过程详解》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《运行指令 单片机中一个程序的运行过程详解》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/guoji/1176617.html

上一篇

巴黎是哪个国家 法国哪里人最爱喝酒?答案不是巴黎!

下一篇

kuner NC | 德国海德堡大学科研人员开发单个细胞和组织中蛋白质纳米结构的超分辨率成像技术

数据恢复软件哪个好 数据恢复软件哪个好?什么硬盘数据恢复软件好用?

  • 数据恢复软件哪个好 数据恢复软件哪个好?什么硬盘数据恢复软件好用?
  • 数据恢复软件哪个好 数据恢复软件哪个好?什么硬盘数据恢复软件好用?
  • 数据恢复软件哪个好 数据恢复软件哪个好?什么硬盘数据恢复软件好用?
电脑不能关机了 为什么程序员下班后只关显示器从不关电脑?

电脑不能关机了 为什么程序员下班后只关显示器从不关电脑?

作者|吴 这篇文章被授权从程序生命(coder_life)中转移 下班的时候是不是就把显示器关了,戴上手机就走了? 有一次一个保安晚上来办公室检查,问,为什么这些人下班不关手机? 作为程序员,你会微笑。对方不明白,如果电脑关机,程序员第二天上班...

为什么程序员都喜欢穿格子衫 这是什么梗

为什么程序员都喜欢穿格子衫 这是什么梗

10月24日是程序员节!程序员爱穿格子衬衫,身为程序员的互联网大佬也不例外。其中真正相爱的是张朝阳和丁磊,马云、马花藤、雷军也有几件收藏格子衬衫。不知道什么时候开始在程序员圈流行穿格子衬衫了。有网友说格子是程序员圈里的图腾和牺牲,因为Bug音译...

中国没给原始数据假设和提法不成立 事件的真相是什么?

中国没给原始数据假设和提法不成立 事件的真相是什么?

对于资料供给,要进行不同专家的不同领域进行分析,中外双方专家一直高度融合研究。中国—世界卫生组织新冠病毒溯源联合研究中方专家组组长、清华大学教授梁万年在31日的发布会上说,中外专家在武汉一直坚持四个共同原则,共同在做研究计划、共同在分析,中方专家掌握的信息和外方专家掌握的信息不存在差异。不是中方研究中方的,外方研究外方的。...

excel求和公式怎么用 Excel中数据带有单位该如何使用公式运算求和?

  • excel求和公式怎么用 Excel中数据带有单位该如何使用公式运算求和?
  • excel求和公式怎么用 Excel中数据带有单位该如何使用公式运算求和?
  • excel求和公式怎么用 Excel中数据带有单位该如何使用公式运算求和?

瓯海二手房 8月份 温州市区二手房买卖成交数据分析

  • 瓯海二手房 8月份 温州市区二手房买卖成交数据分析
  • 瓯海二手房 8月份 温州市区二手房买卖成交数据分析
  • 瓯海二手房 8月份 温州市区二手房买卖成交数据分析

ARIMA ARIMA/Sarima与LSTM的时间序列数据集成学习(附链接)

  • ARIMA ARIMA/Sarima与LSTM的时间序列数据集成学习(附链接)
  • ARIMA ARIMA/Sarima与LSTM的时间序列数据集成学习(附链接)
  • ARIMA ARIMA/Sarima与LSTM的时间序列数据集成学习(附链接)
陆金所登录 【陆金所精选】小程序上线了!

陆金所登录 【陆金所精选】小程序上线了!

好消息,lufax的特色小程序上线了。 现在微信登录买爆款。 您还可以享受有限的送货优惠。 扫描图片中二维码, 理财先行一步! ↓↓↓...