目录
5.1ARM指令集导学
汇编
> 每条汇编都会唯一对应一条机器码,且CPU能直接识别和执行,即汇编中所有的指令都是CPU能够识别和执行的。
> 汇编中寄存器的使用、栈的分配与使用、程序的调用、参数的传递等都需要自己维护
C语言
> 每条C语句都要被编译器编译成若干条汇编指令才能被CPU识别和执行,即C语句中的指令CPU不一定能直接识别,需要编译器进行“翻译”
> C中寄存器的使用、栈的分配与使用、程序的调用、参数的传递等,都是编译器来分配和维护
学习汇编目的
底层开发可能会读/写汇编代码
理解CPU是怎样执行程序的
理解C的本质,用汇编的思想写出高效的C代码
5.2keil仿真环境搭建
硬件仿真
通过硬件接口将CPU和内存中实际的信息读出来
软件仿真
通过软件模拟CPU内部运行程序的状态
Keil MDK是用于基于ARM Cortex-M 微控制器的完整软件开发环境。它集成了uVision IDE C/C++编译器、调试器以及其他中间组件,支持众多芯片供应商,易于学习和使用。
环境搭建
1.安装Keil集成开发环境 2.安装gcc交叉编译工具链 3.创建汇编工程,熟悉仿真环境的使用
5.3ARM指令集概述
.c回顾
1.语句
a++;
2.注释
//
3.预编译指令
#if 1
...
#else
...
#endif
@汇编中的符号
@1.指令:能够编译成一条32bit机器码,并且能被C