单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条指令的过程。计算机每执行一条指令都可分为三个阶段进行,即取指令-----分析指令-----执行指令。
取指令的任务是:根据程序计数器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就是这样一条一条地执行指令,完成所有规定的功能。
开放原子开源基金会发布《全球开源发展态势洞察》2023开放原子全球开源峰会特刊
三星慌了!传京东方有意收购LGD广州8.5代线
协作机器人实战案例 节卡机器人“智造之眼”解决安全效率难兼顾困扰
C语言中函数指针详解
苹果C94是什么 为何如此火爆
51单片机执行指令的过程的分析解释
电池安全问题让电动汽车遭受着毁灭性打击
中国移动正式公布2019年普通光缆产品集中采购中标候选人结果
泛在电力物联网发展面层维度分析
车企Q3财报:赔到腿抖或数钱到手软
中芯国际与湖北省科技投资集团公司签订合资合同
英特尔推出第10代处理器中的所有8个都使用英特尔的14纳米工艺
华天慧创科技:获得4000万元融资,打造西安“硬实力”
基于51单片机设计的红外遥控器
市委书记李强调研华虹集团旗下上海集成电路研发中心
铁路运输安全技术及应用软件开发企业思维列控发布2022第一季度报告
云存储技术是如何影响商业世界的
向从未有人到过的星球发送信号时,会发生什么呢?
linksys无线路由器设置方法
使用扩频技术解决敏感模拟前端和辐射EMI的开关噪声问题