单片机执行指令的过程

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

取指令的任务是:根据程序计数器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就是这样一条一条地执行指令,完成所有规定的功能。

以下课程可免费试听C语言、电子、PCB、STM32、Linux、FPGA、JAVA、安卓等。
想学习的你和我联系预约就可以免费听课了。
宋工企鹅号:3524-6590-88 Tel/WX:173--1795--1908

时间: 2024-10-22 10:42:36

单片机执行指令的过程的相关文章

2.5 计算机执行指令的过程

计算机组成 2 计算机基本结构 2.5 计算机执行指令的过程 执行指令是计算机过程的核心,理解了指令如何执行,也就把握住了计算机运行原理的关键.在这一节,我们就一起来看这个模型机是如何执行指令的. 现在我们已经有了这样一个模型. 而且我们也知道了计算机执行一条指令的主要步骤,包括取指.译码.执行.回写. 那我们就想在这个模型机上尝试执行一条计算机的指令.这里给出了一个例子,我们想执行的这条指令是ADD R0, [6],这样的一个指令格式代表什么含义呢?从ADD,我应该能看出来这是一条加法指令.那

PLC与单片机执行指令区别

单片机执行指令方式与PLC执行指令方式对比 . 映射 对顺序功能图并行分支的理解. ? PLC与单片机都是顺序执行指令方式的. PLC执行指令分为3个阶段. PLC的一个指令周期包括 输入采样 程序执行 输出刷新 ? 若在某一个采样指令周期内.外部输入改变,这个改变在本次的扫描周期内 是不变的,在下一个扫描周期才会发生变化. ? 这也就引申出了PLC中双线圈的问题. 实际上输出的是程序中最后一行的线圈值. ? 原文地址:https://www.cnblogs.com/bailongwei6543

1-5 计算机执行指令的过程

一.计算机执行一条指令的主要步骤 第一步:取指(Fetch) 第二步:译码(Decode) 第三步:执行(Execute) 第四步:回写(Write-Back) 二.执行指令的示例 例如指令: ADD R0, [6]; 指令功能:将寄存器R0和地址为6的存储单元的数据进行加法运算并将结果更新到R0中 第一步:取指 1.控制器将指令的地址(PC的内容)送往存储器 2.存储器按给定的地址读出指令内容,送回控制器(一般存放在IR寄存器中) 3.更新PC 第二部:译码 1.控制器分析指令的操作性质 2.

初学者必进-大虾谈谈学习单片机的过程

经常有单片机爱好者问我们,如何学习单片机?学习单片机的步骤是什么?我们初略总结了一下,单片机学习的过程基本上可分四个阶段:????第一阶段? 是先浏览教科书里的硬件部分,大至了解单片机的硬件结构.如ROM.RAM.地址.I/O口等,以及看一些厂家的MCU资料(Data Sheet),来加强MCU所提供各项资源的印象.????第二阶段? 就是了解二进位数字.十六进位数和软件方面的内容.尽管有很多高级语言可用于单片机的编程,但我觉得初学还是以汇编语言为好,更有利于和硬件结合,掌握硬件结构.知道汇编语

《CPU的工作过程》

本文转载自inter官方网址:https://software.intel.com/zh-cn/articles/book-Processor-Architecture_CPU_work_process CPU的工作过程 CPU的基本工作是执行存储的指令序列,即程序.程序的执行过程实际上是不断地取出指令.分析指令.执行指令的过程. CPU从存放程序的主存储器里取出一条指令,译码并执行这条指令,保存执行结果,紧接着又去取指令,译码,执行指令--,如此周而复始,反复循环,使得计算机能够自动地工作.除

5年单片机学习总结-ED China【转】

人的一生是一个不断学习不断成长的过程转眼间,研究生的学习生涯结束了,走上新的工作岗位回头看看,发现自己不知不觉已经走过了五年的单片机学习之旅 在2003年最初接触单片机的时候,在我心中觉得51就是单片机,单片机就是51,根本不知道还有其他单片机的存在那时候老师只教会了我们汇编语言,根本不知道用C语言也可以进行单片机开发幸运的是,我加入了单片机兴趣小组,在老师的指导下,做了一系列实验,有基于DS18B20的温度采集系统有基于164的移位寄存器的灯光控制系统有步进电机和直流电机的控制系统这时候我才发

单片机小白学步系列(十七) 单片机/计算机系统概述:核心模块

前面已经介绍了模块化设计的特点和巨大优势.在我们的实验板中,单片机是其中最核心的一个模块:而对于单片机来说,又是由更多的子模块组合而成.本文主要对单片机/计算机系统中最核心的几个模块进行简要介绍. 为了便于进行说明,后面会将单片机/计算机简单的统称为微机系统. 信息与数据 何为信息?可以理解成我们周围各种所能感知到的东西.还有人们所思所想等等,信息的概念不好解释,但是大家都能理解,也不是我要讨论的重点. 在微机系统中,能处理很多信息,例如我正在写的内容,就是文字和图像信息.处理信息的前提,就是对

如何以学习单片机为契机,逐步成为优秀的工程师

现状 不知道阅读本文的读者,在初学单片机时是否和我曾经一样迷茫.看到各种新的术语,疑惑不解:不知道从何学起:照着书中的例子一步一步做都没有问题,但是自己试着做东西,遇到各种问题却不会解决,向别人提问,可能也没有几个人回答:感觉好像学完了单片机的各种模块,但是要自己设计东西却还是毫无思路,也不知道怎么去进一步深入学习:甚至在一开始就遇到太多困难,直接放弃了学习. 在我身边,看到不少学习单片机的人.其中很多人学习的方法,就是通过看一些视频或书籍教程,然后照着别人的代码去写,写好了能用了,就感觉是学会

Python学习笔记(二)Pytho解释器和程序开发、执行过程

解释器是一种让其他程序运行起来的程序,是用户编写的代码与计算机硬件间的软件从逻辑层,虚拟化技术的一种.Python可以被当做一种解释器软件包,Python代码必须在解释器中运行,因此机器上安装Python的最小组件是-解释器和支持的库.本文只针对Windows平台,将Python加入到环境变量path中,如"C:\Python34",Python版本为3.4,下同. 1,程序编写 Python程序编写支持交互式和执行文件两种,前者就是在命令行键入指令.回车立刻得到执行效果,后者则是先写