笔者能力有限,如果文中出现错误的地方,还请各位朋友能够给我指出来,我将不胜感激,谢谢~
前言
在上一篇文章中《程序是如何在 CPU 中运行的(一)》笔者讲述了程序中一条一条指令以及一条一条数据是如何在 CPU 中运行的,在本文笔者将以 ARM Cortex M3 的内核为背景分析指令是如何有序的执行。
寄存器组介绍
为了更好地介绍指令是如何在 ARM Cortex M3 内核中运行的,在这里先介绍一下 ARM Cortex M3 的寄存器组,引用 ARM Cortex M3 权威指南的一张图,图片如下:
如上图所示,寄存器组主要包含四种类型的寄存器,分别是:
通用寄存器:用于数据操作
堆栈指针:堆栈指针有两个,但是在任一时刻只能使用其中的一个。
主堆栈指针:复位后默认使