0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

浅析单片机指令执行过程

贸泽电子设计圈 来源:YXQ 2019-08-07 14:47 次阅读

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

1、取指令—2、分析指令 — 3、执行指令

1、取指令

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

2、分析指令

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

3、执行指令

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

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

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

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

对于一款MCU来说,在性能描述的时候都会告诉sram、flash的容量大小,对于初学者来说,可能也不会去考虑和理会这些东西,拿到东西就直接用。其实不然,这些量都是十分重要的。仔细想想,代码为什么可以运行,代码量是多少,定义的int、short等等类型的变量究竟是怎么分配和存储的,这些问题都和内存有关系。

首先单片机的内存可以大体上分为ram和rom,这里就不再解释ram和rom的区别了,我们可以将其等效为flash和sram,其中根据flash和sram的定义可得,flash里面的数据掉电可保存,sram中的并不可以,但是sram的执行速度要快于flash。单片机的程序分为code(代码存储区)、RO-data(只读数据存储区)、RW-data(读写数据存储区)和ZI-data(零初始化数据区)。在MDK编译器下可以观察到在代码中这4个量的值。其中code和RO-data存储在flash中,所以两者之和为单片机中flash需要分配给它们的空间大小(并且等于代码所生成的.bin文件大小),另外RW-data和ZI-data存储在sram中,同样两者之和为单片机中sram需要分配给它们的空间大小。

另外,我们必然会想到栈区(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中。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6036

    文章

    44555

    浏览量

    634955
  • 指令
    +关注

    关注

    1

    文章

    607

    浏览量

    35704

原文标题:单片机执行指令过程详解

文章出处:【微信号:Mouser-Community,微信公众号:贸泽电子设计圈】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    单片机Debug工具性能对比 单片机调试常用命令

    。以下是对单片机调试工具性能的简要对比以及一些常用的调试命令。 单片机Debug工具性能对比 Keil uVision 性能 :Keil uVision 是一款功能强大的集成开发环境(IDE),支持多种单片机,特别是ARM Co
    的头像 发表于 12-19 09:56 189次阅读

    单片机有哪些中断类型

    单片机中断是指在单片机执行程序的过程中,当外部设备或内部条件发生某个特定事件时,能够暂停当前正在执行的程序,转而去
    的头像 发表于 10-17 18:12 663次阅读

    单片机的中断机制

    单片机的中断机制是一种重要的处理方式,它允许单片机执行主程序的过程中,能够暂停当前任务,转而处理外部或内部紧急事件。这种机制极大地提高了系统的响应速度和处理能力,使得
    的头像 发表于 10-17 18:03 643次阅读

    微处理器执行指令的基本过程

    微处理器,作为现代计算机的核心部件,负责执行存储在内存中的指令,完成各种计算和控制任务。指令执行过程不仅体现了微处理器的设计思想和架构特点
    的头像 发表于 10-05 15:07 692次阅读

    国产主流8位单片机-RISC架构精简指令单片机

    、仪器仪表、汽车电子、物联网等领域电子产品的应用 英锐恩科技的8位单片机采用RISC架构设计,优化了指令执行流程,显著提升了处理效率。此外,结合高可靠性和低成本,EN8F18系列成为了开发者的热门
    发表于 09-27 10:15

    PIC单片机的优势和不足之处

    的核心优势在于其CPU采用的RISC结构,这一结构精简而高效,分别包含33、35、58条指令,构成了精简指令集。这种设计不仅减少了指令的数量,还提高了指令
    的头像 发表于 09-25 17:22 361次阅读

    msp430单片机的优缺点介绍

    赢得了工程师们的青睐。 MSP430单片机的优点 MSP430单片机的核心优势在于其强大的处理能力和丰富的指令集。它采用了精简指令集(RISC)结构,这一设计不仅减少了
    的头像 发表于 09-25 17:12 625次阅读

    单片机基本io功能调试过程

    单片机基本IO功能的调试过程涉及多个步骤,旨在确保IO口能够正确地执行输入和输出操作。以下是一个调试过程,涵盖了从准备阶段到实际测试的关键步骤: 一、准备阶段 确定
    的头像 发表于 09-14 14:38 580次阅读

    单片机烧录程序的线比单片机上的少还能烧录吗

    单片机烧录原理 单片机烧录是指将编写好的程序代码通过一定的方式传输到单片机的存储器中,使其能够按照程序的指令运行。这个过程通常需要使用烧录器
    的头像 发表于 09-02 09:54 490次阅读

    单片机烧录程序的基本步骤是什么

    单片机烧录程序是单片机开发过程中非常重要的一步,它涉及到将编写好的程序代码通过一定的方式传输到单片机内部的存储器中,使单片机能够按照预定的逻
    的头像 发表于 09-02 09:47 1023次阅读

    单片机中断功能及其应用

    单片机中断功能及其应用  单片机中断是指在程序执行过程中,根据特定的条件或事件自动暂时中断当前程序的执行,转而
    的头像 发表于 01-30 14:45 5329次阅读

    单片机原理及应用有哪些

    广泛应用于各个领域,如家电、汽车、通信、医疗等。 单片机的原理主要包括内部结构和工作原理。其内部结构通常包括CPU、存储器、I/O接口和定时/计数器等模块。CPU是单片机的核心,负责指令执行
    的头像 发表于 01-15 16:25 1978次阅读

    单片机原理及应用是什么

    能力。单片机被广泛应用于各个领域,包括家电、汽车、通信、电子设备及工业自动化等。本文将详细介绍单片机的原理及应用。 核心部分:单片机的核心是中央处理器(CPU)。它负责执行程序
    的头像 发表于 01-12 15:28 2160次阅读

    单片机if是什么语句

    单片机中的if语句是一种条件语句,用于根据不同的条件执行不同的代码块。在程序执行过程中,条件语句用来决定是否执行特定的代码段。在
    的头像 发表于 01-05 14:04 1786次阅读

    AvR单片机for循环需要几个指令周期

    在AvR单片机中,for循环语句的执行需要多个指令周期。指令周期是一个基本的处理器时钟周期,用于执行一条
    的头像 发表于 12-26 14:03 1200次阅读