历史上的今天
返回首页

历史上的今天

今天是:2026年03月06日(星期五)

正在发生

2023年03月06日 | 单片机执行程序的全过程介绍

2023-03-06 来源:zhihu

单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条指令的过程。计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令。


取指令的任务是:根据程序计数器PC中的值从程序存储器读出现行指令,送到指令寄存器。


分析指令阶段的任务是:将指令寄存器中的指令操作码取出后进行译码,分析其指令性质。如指令要求操作数,则寻找操作数地址。


计算机执行程序的过程实际上就是逐条指令地重复上述操作过程,直至遇到停机指令可循环等待指令

一般计算机进行工作时,首先要通过外部设备把程序和数据通过输入接口电路和数据总线送入到存储器,然后逐条取出执行。但单片机中的程序一般事先我们都已通过写入器固化在片内或片外程序存储器中。因而一开机即可执行指令。


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

开机时,程序计算器PC变为0000H。然后单片机在时序电路作用下自动进入执行程序过程。执行过程实际上就是取出指令(取

出存储器中事先存放的指令阶段)和执行指令(分析和执行指令)的循环过程。

例如执行指令:MOV A,#0E0H,其机器码为“74H E0H”,该指令的功能是把操作数E0H送入累加器, 0000H单元中已存放74H,0001H单元中已存放E0H。当单片机开始运行时,首先是进入取指阶段,其次序是:

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,PC在CPU每次向存储器取指或取数时自动加1,单片机又进入下一取指阶段。这一过程一直重复下去,直至收到暂停指令或循环等待指令暂停。CPU就是这样一条一条地执行指令,完成所有规定的功能。


推荐阅读

史海拾趣

ATC [American Technical Ceramics]公司的发展小趣事

随着全球经济的日益一体化,国际合作成为许多公司拓展市场的重要途径。假设ATC在某次国际技术交流会上与一家欧洲知名电子企业达成了合作协议,双方共同开发了一款新型陶瓷电容器。这款电容器不仅性能卓越,而且成本相对较低,因此在全球市场上受到了广泛的欢迎。通过这次合作,ATC不仅提升了自身的技术实力,也进一步拓展了海外市场。

ETA-USA公司的发展小趣事

ETA-USA一直注重技术创新和研发实力的提升。公司拥有一支高素质的研发团队和先进的研发设施,不断推出具有竞争力的新产品和解决方案。同时,ETA-USA还积极与高校、科研机构等合作,共同推动电子技术的创新和发展。

Decawave公司的发展小趣事

2020年,美国RF解决方案的领先供应商Qorvo宣布收购Decawave。这一收购对于Decawave来说是一个重要的里程碑。Qorvo看中了Decawave在UWB技术领域的创新能力和市场潜力,通过收购整合,Qorvo能够更好地将Decawave的技术应用于其移动、汽车、消费类和工业物联网市场的产品中。同时,Decawave也借助Qorvo的全球资源和市场渠道,进一步扩大了其市场份额和影响力。

创世(CS)公司的发展小趣事

随着产品的不断创新和技术的不断突破,创世公司的市场份额逐渐扩大。公司的SD NAND产品已经广泛应用于医疗设备、工业控制、轨道交通、安防、网络设备等多个领域。这一市场布局的成功,不仅提升了创世公司的品牌影响力,也为其在电子行业树立了良好的口碑。同时,创世公司还积极参与各种行业展会和交流活动,与国内外客户建立了广泛的合作关系,进一步拓展了市场。

Epitex Inc公司的发展小趣事

Epitex非常重视企业文化的建设和团队精神的培育。他们倡导“创新、协作、务实、共赢”的价值观,鼓励员工积极创新、勇于挑战。同时,Epitex还注重员工关怀和福利待遇的提升,为员工提供良好的工作环境和发展空间。

在团队建设方面,Epitex注重培养员工的团队协作能力和沟通能力。他们定期组织团队活动和培训项目,增强团队的凝聚力和向心力。这种积极向上的企业文化和高效的团队协作为Epitex的持续发展提供了有力保障。

DILABS公司的发展小趣事

为了进一步扩大市场份额,DILABS开始寻求与国内外知名企业的战略合作。他们与多家大型电子制造商签订了长期供货协议,同时也积极与高校和研究机构合作,共同研发新技术、新产品。这些战略合作不仅为DILABS带来了更多的订单,也促进了公司在技术和管理方面的不断进步。

问答坊 | AI 解惑

一个国外的毕业设计

一个国外的毕业设计…

查看全部问答>

(五)偶遇一好东东,不忘与大家分享: 分析笔记本电池及节能技术

个性化的电源管理技术和软件   ■ IBM PM Device和Battery MaxiMiser   图7   此外,该软件还能显示出电池的详细情况,如电压、容量、充电次数等参数。为了更有效地节电,除了CPU之外,Battery MaxiMiser还提供了PCI总线及CD-ROM的运行 ...…

查看全部问答>

关于模拟iic很奇怪的问题

目前在调一款rtc的芯片,通过iic进行读写的,目前采用的是模拟的方式。 现在的问题是,我用普通的io口进行模拟的话,读写都没有问题,但是如果换成了接了上拉电阻的io口的话,读写都不正常了 个人感觉不可理解 希望各位帮忙分析查找原因…

查看全部问答>

现在有没有开放平台的mp4播放器?

想买一个能自己写小工具的mp4 现在有提供java接口等开放平台的mp4吗?或者至少提供bios调用接口也可以。…

查看全部问答>

香呼叫主,求救信号,有关pwm输入捕获的问题!

我的配置如下,但是我用信号发生器产生信号输入,根本就不进中断,但是我要是直接用导线给输入引脚引入高电平(相当于一个脉冲信号),就可以进中断,下面是我的程序,实在不明白原因!int void  void ICapture_Configuration(void) ...…

查看全部问答>

大家对单片机驱动WIFI通信感兴趣吗?

现在iphone,android流行,智能手机都支持WIFI,可以轻易的作为与单片机连接的桥梁!…

查看全部问答>

写了个快速排序算法……

写了个排序算法,思路是归并排序+冒泡排序(n=2即交换排序),时间复杂度稳定为O(n*log2(n)),几乎是稳定排序算法中最快的,特别是在大数据量的情况下更明显(对比冒泡排序O(n*(n-1)))。缺点,需要一个buf,用空间换时间……使用时注意适当修改buf ...…

查看全部问答>

单片机和fpga通信

跪求 单片机和fpga通信的程序, verilog的和c的,总线通信方式也行 I2c也行 多谢啦…

查看全部问答>

来来来,谈谈智能家居神马的

公司最近开启了一个活动,名字叫 “每周务必开两个小时闲聊会” 后来我们技术部的老总主持会议,还是比较靠谱,前面半小时还是人大,后面才是政协。 人大时间谈论本周工作情况,并部署下周工作; 政协时间纯粹扯淡。 别说大家扯的还真挺 ...…

查看全部问答>