永发信息网

关于程序是怎样在STM32里运行的,有点困惑

答案:1  悬赏:0  手机版
解决时间 2021-03-29 08:56
关于程序是怎样在STM32里运行的,有点困惑
最佳答案
单片机执行程序的过程,实际上就是执行我们所编制程序的过程。即逐条指令的过程。计算机每执行一条指令都可分为三个阶段进行。即取指令-----分析指令-----执行指令。

  取指令的任务是:根据程序计数器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就是这样一条一条地执行指令,完成所有规定的功能。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
这个韩国明星是谁
娜娜鞋衣坊地址在什么地方,想过去办事
(2013?长春二模)实验室需要质量分数为10%的
请问柒牌男装 的男装在大家心目中是什么地位
西安到射洪县距离是多少
大腿截肢属于大截肢还是小截肢?属于高位截肢
数控到角怎么编
睡觉时怎样防止毛毯滑掉?
上门打架是什么罪
燕子宾馆(镇远县交通运输局南)地址有知道的么
工商管理经典译丛·会计与财务系列有哪些
山东泰安220千伏北鲍变电站
青少年补钙能增高吗
中国移动山东端口什么是后打开
什么样的跑车马力最大?车用汽油机最高马里能
推荐资讯
计算机都摆放成整排,最后一台是13排21号,问
不用油炸的糖醋排骨的做法
火车一节车厢有多少个车轮
泸州老窖国窖价钱 52度500ml*2 2002年生产。
鼠标中的大鼠、小鼠、普通鼠怎么区分,有什么
橡皮用英语怎么说,用语音回答我
以鹅为主题开个饭店想题个有意思好兆头的店铺
闽南成人礼 对联 大门口的毛笔字对联。 比如
考研报考时个人资料姓名的字填错了!影响大嘛?
15000瓦要用多大的安培
钉钉影响正常办公怎么办
新月格格的片尾曲名字叫什么谁知道啊?
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?