单片机执行指令_单片机的指令执行过程 - CSDN
  • 计算机每执行一条指令都可分为三个阶段进行,即取指令-----分析指令-----执行指令。取指令的任务是:根据程序计数器PC中的值从程序存储器读出现行指令,送到指令寄存器。分析指令阶段的任务是:将指令寄存器中的指令...
        

    640?wx_fmt=jpeg&wxfrom=5&wx_lazy=1

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


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

    640?

    1.傅里叶变换就是这么简单,你学会了吗?

    2.硬件缺陷还真能用软件补?一起盘点软件为硬件填过的那些坑

    3.讲真,工程师是这个星球上最酷的职业!

    4.你知道嵌入式C语言中各变量存储的位置吗?

    5.互相鄙视的模电和数电干了一架,结局很搞笑

    6.作为一个电子工程师,学会阅读Datasheet很重要!

    640?wx_fmt=gif

    免责声明:本文系网络转载,版权归原作者所有。如涉及作品版权问题,请与我们联系,我们将根据您提供的版权证明材料确认版权并支付稿酬或者删除内容。



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

    单片机执行指令过程详解:

    单片机执行程序的过程,实际上就是执行我们所编制程序的过程,即逐条指令的过程。

    计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令

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

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

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

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

    例如:

    开机时,程序计算器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单元取出。

    我们必然会想到栈区(stack)、堆区(heap)、全局区(静态区)(staTIc)、文字常量区和程序代码区和上面所介绍的code、RO-data等的关系:

    1. 栈区(stack):由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 这些值是可读写的,那么stack应该被包含在RW-data(读写数据存储区),也就是单片机的sram中。

    2. 堆区(heap):一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。可以理解,这些也是被包含在单片机的sram中的。

    3. 全局区(静态区)(staTIc):全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域, 未初始化的全局变量和未初始化的静态变量在相邻的另一块区域,程序结束后由系统释放。这些数据也是可读可写的,和stack、heap一样,被包含在sram中。

    4. 文字常量区:常量字符串就是放在这里的。这些数据是只读的,分配在RO-data(只读数据存储区),则被包含在flash中。

    5. 程序代码区:存放函数体的二进制代码,可以想象也是被包含在flash,因为对于MCU来说,当其重新上电,代码还会继续运行,并不会消失,所以存储在flash中。

    展开全文
  • 单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条指令的过程。计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令。 取指令的任务是:根据程序计数器PC中的值...
    单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条指令的过程。计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令。
    


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



    欢迎大家加入单片机学习交流群317049241 点击【单片机/嵌入式学习】

    展开全文
  • 51单片机执行指令过程

    千次阅读 2011-10-12 09:18:36
    为了加深初学者对51单片机指令的...单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条指令的过程。计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令。 取指令的任务

    为了加深初学者对51单片机指令的理解,现在把指令执行的过程在此详细说明,希望对你有启发!


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

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

    分析指令阶段的任务是:将指令寄存器中的指令操作码取出后进行译码,分析其指令性质。如指令要求操作数,则寻找操作数地址。
    计算机执行程序的过程实际上就是逐条指令地重复上述操作过程,直至遇到停机指令可循环等待指令。

    一般计算机进行工作时,首先要通过外部设备把程序和数据通过输入接口电路和数据总线送入到存储器(PC将BIOS代码置于ROM中,通过从硬盘加载操作系统到内存,接着将控制权交给0S,执行应用程序),然后逐条取出执行。


    但单片机中的程序一般事先我们都已通过写入器固化在片内或片外程序存储器中。因而一开机即可执行指令。(从ROM中取出程序执行)。

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

    开机时,程序计算器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就是这样一条一条地执行指令,完成所有规定的功能。



    附:51ROM和RAM

    ROM

    (1)ROM专门用来存放经调试正确的应用程序及固定的表格和常数,51单片机从ROM中取出指令,译码并执行。

    (2)某些特定单元用来保留用于特定的程序入口地址。通常在入口处设置无条件转移指令,使其转向对应的程序段处执行,比如复位后的初始化引导程序采用ORG 0000H LJMP MAIN 至主程序执行 ,而中断入口地址处 ORG 0003H LJMP IE0_0 ,跳至外部中断零的中断复位程序执行。


    RAM

    (1)用来存放随机数据,对外部RAM通常采用间接寻址法mov r0,#20h mov a,@r0;


    展开全文
  • 单片机指令是如何执行

    千次阅读 2010-02-02 14:55:00
    单片机指令是如何执行的与电脑差不多,读入数据后,依据半导体进行逻辑运算,并把结果输出。 单片机的基本结构 运算器:用于实现算术和逻辑运算。计算机的运算和处理都在这里进行; 控制器:是计算机的控制指挥部件...
  • 大家都知道单片机的运行需要执行写好的程序,但是单片机指令数据都被写在了哪里?在哪读取指令? 让我们从最开始的环节讲起。在单片机上电的瞬间,MCU的程序指针PC会被初始化为上电复位时的地址,从哪个地址处读取...
  • (1)51单片机NOP指令

    2019-06-22 13:51:27
    (3)这个与单片机型号、指令类型和使用的晶振频率有关,比如AT89C51,是一个12个时钟周期等于1个机器周期的单片机,如果使用的晶振是12MHz的话,执行一条单指令的 NOP 需要 12x(1/12M)=1微秒的时间。 转载于:...
  • AVR单片机指令系统 计算机的指令系统是一套控制计算机操作的代码,称之为机器语言。计算机只能识别和执行机器语言的指令。为了便于人们理解、记忆和使用,通常用汇编语言指令来描述计算机的指令系统。汇编语言指令...
  • 设(每个H,(R2)=55H,CY=1,执行指令SUBB A,R2之后,A中的值为73H。 说明:没有不带借位的单片机减法指令,如果需要做不带位的减法指令(在做第一次相减时),只要将CY清零即可。 如果是小数减大数,进位C会被置...
  • 单片机汇编指令

    千次阅读 2010-02-23 14:16:00
    一个单片机所需执行指令的集合即为单片机的指令系统。单片机使用的机器语言、汇编语言及高级语言,但不管使用是何种语言,最终还是要“翻译”成为机器码, 单片机才能执行之。现在有很多半导体厂商都推出了自己的...
  • ANALOG DEVICES公司ADuC812单片机集成了A/D转换器,基本用法(KEIL仿真)如下: #include#includevoid main(){unsigned char chc;SCON=0X50;TMOD|=0X20;TL1=0XF4;TH1=0XF4;TR1=1;TI=1;ADCCON1=0X7C;while(1){...
  • 单片机指令执行过程

    千次阅读 2012-08-27 13:52:50
     单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条指令的过程。计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令。  取指令的任务是:根据程序计数器PC中的值从...
  • 51单片机跳转指令

    2020-06-06 16:42:02
    @ 无条件转移bai指令(共4条) LJMP addr16 ; PC〈—du— addr16 AJMP addr11 ; PC〈—— PC+2 , PC10-0〈—— addr11 SJMP rel ; PC〈—— PC+2 , PC 〈—— PC+rel JMP @A+DPTR ; PC〈—— A+DPTR 第一条指...
  • 单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条指令的过程。计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令。 取指令的任务是:根据程序计数器PC中的值从程序...
  • MCS-51单片机汇编指令详解

    千次阅读 多人点赞 2015-12-09 19:37:26
    以累加器为目的操作数的指令 MOV A,Rn MOV A,direct MOV A,@Ri MOV A,#data 这组指令功能是把源地址单元中的内容送入直接地址,源操作数不变。 第一条指令中,Rn代表的是R0-R7。 第二条指令中,direct...
  • 有三级流水线,指令周期不定的,arm给出的是1.25MIPS/Mhz,一个平均执行速度 就是1Mhz的频率,每秒钟可以执行1.25M指令。72M,那么就是72*1.25​M STM32单片机多为单周期​指令 ​ AVR单片机 ​51是CISC结构的单片机...
  • (转)单片机程序执行过程

    千次阅读 2019-03-05 20:03:25
    单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条指令的过程。计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令。 取指令的任务是:根据程序计数器PC中的值从程序...
  • 大家都知道单片机的运行需要执行写好的程序,但是单片机指令数据都被写在了哪里?在哪读取指令单片机达人给你解答技术难题。 让我们从最开始的环节讲起。在单片机上电的瞬间,MCU的程序指针PC会被初始化为...
1 2 3 4 5 ... 20
收藏数 14,930
精华内容 5,972
关键字:

单片机执行指令