当前位置:首页 > 实用技巧 >

计算机执行程序的过程是(计算机执行操作步骤)

来源:原点资讯(www.yd166.com)时间:2023-11-28 08:17:47作者:YD166手机阅读>>

从代码执行,看单片机内存的分配

1、单片机执行指令过程详解

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

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

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

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

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

2、举例说明

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

图片

开机时,程序计算器PC变为0000H。然后单片机在时序电路作用下自动进入执行程序过程。执行过程实际上就是取出指令(取出存储器中事先存放的指令阶段)和执行指令(分析和执行指令)的循环过程。

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

程序计数器的内容(这时是0000H)送到地址寄存器;

程序计数器的内容自动加1(变为0001H);

地址寄存器的内容(0000H)通过内部地址总线送到存储器,以存储器中地址译码电跟,使地址为0000H的单元被选中;

CPU使读控制线有效;

在读命令控制下被选中存储器单元的内容(此时应为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个量的值,如下图1所示:

图片

其中code和RO-data存储在flash中,所以两者之和为单片机中flash需要分配给它们的空间大小(并且等于代码所生成的.bin文件大小),另外RW-data和ZI-data存储在sram中,同样两者之和为单片机中sram需要分配给它们的空间大小。

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

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

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

计算机执行程序的过程是,计算机执行操作步骤(1)

计算机执行程序的过程是,计算机执行操作步骤(2)

计算机执行程序的过程是,计算机执行操作步骤(3)

栏目热文

计算机中规定指令执行功能的部分(计算机指令主要在哪里执行)

计算机中规定指令执行功能的部分(计算机指令主要在哪里执行)

本文转载自 众课帮 公众号1、计算机应用中通常所讲的OA代表(). A、辅助设计 B、辅助制造 C、科学计算 D、办公自...

2023-11-28 08:11:17查看全文 >>

计算机可以执行的指令一般包括

计算机可以执行的指令一般包括

一、计算机指令系统简述 计算机指令系统,也被称为计算机指令集,是计算机硬件和软件之间的接口。它是一组预定义的操作,由计...

2023-11-28 08:13:27查看全文 >>

计算机指令的执行过程包括(计算机指令执行过程分几步)

计算机指令的执行过程包括(计算机指令执行过程分几步)

计算机组成现在所说的计算机基本上都是冯诺依曼体系的计算机。其核心原理:冯·诺依曼计算的核心思想是将程序指令和数据以二进制...

2023-11-28 07:40:04查看全文 >>

负责解释执行计算机指令的是(计算机负责解释和执行程序是什么)

负责解释执行计算机指令的是(计算机负责解释和执行程序是什么)

我们都编写郭计算机程序,比如C语言,程序编写完成之后,经过编译连接以后,没有错误的话,我们就可以直接点击运行,程序便可以...

2023-11-28 07:53:40查看全文 >>

简述程序在计算机中执行过程(计算机执行程序的流程是什么)

简述程序在计算机中执行过程(计算机执行程序的流程是什么)

计算机是一个物理的设备,不管是从个人电脑,还是办公电脑,或者科研计算机,到手机,车机,平板电脑等等设备,他们全都是通过执...

2023-11-28 07:46:40查看全文 >>

计算机中解释和执行指令的部件(用于解释和执行指令的组件)

计算机中解释和执行指令的部件(用于解释和执行指令的组件)

简介欢迎来到我们的IT知识每日之旅,在短短5分钟内深入了解信息技术的基础知识。今天,我们将探讨计算机硬件的关键组件之一:...

2023-11-28 07:38:43查看全文 >>

计算机程序执行过程可分为(在计算机系统中能直接执行的程序)

计算机程序执行过程可分为(在计算机系统中能直接执行的程序)

计算机是由硬件和软件两个部分组成的。硬件是计算机物理设备的总称,包括中央处理器(CPU)、内存、存储器、输入设备、输出设...

2023-11-28 07:53:56查看全文 >>

硫酸钡是不是个沉淀(硫酸钡全部沉淀)

硫酸钡是不是个沉淀(硫酸钡全部沉淀)

故名思议,天然硫酸钡是没有通过化学反应,而是通过普通的工艺得到的硫酸钡产品,沉淀硫酸钡是沉淀工艺得到的硫酸钡产品,简单的...

2023-11-28 07:42:16查看全文 >>

沉淀硫酸钡干什么用的(沉淀硫酸钡一般是多少微米)

沉淀硫酸钡干什么用的(沉淀硫酸钡一般是多少微米)

沉淀硫酸钡是选用国内外领先的生产工艺,运用纯物理和化学的加工手法对精选重晶石进行超微细加工处置,使其具有以下几种特别功用...

2023-11-28 07:39:31查看全文 >>

硫酸钡沉淀是蓝色还是白色(硫酸钡沉淀是溶液吗)

硫酸钡沉淀是蓝色还是白色(硫酸钡沉淀是溶液吗)

  硫酸钡沉淀是一种白色沉淀,具有重要的化学性质和应用。本文将介绍硫酸钡沉淀的颜色、形成过程以及其在化学实验和工业中的应...

2023-11-28 08:10:11查看全文 >>

文档排行