ARM指令集导学
指令集
指令:
能够指示处理器执行某种运算的命令称为指令(如加、减、乘 ...)
指令在内存中以机器码(二进制)的方式存在
每一条指令都对应一条汇编
程序是指令的有序集合
指令集:
处理器能识别的指令的集合称为指令集
不同架构的处理器指令集不同
指令集是处理器对开发者提供的接口
汇编的本质
汇编
> 每条汇编都会唯一对应一条机器码,且CPU能直接识别和执行,即汇编中所有的指令都是CPU能够识别和执行的
> 汇编中寄存器的使用、栈的分配与使用、程序的调用、参数的传递等都需要自己维护
C语言
> 每条C语句都要被编译器编译成若干条汇编指令才能被CPU识别和执行,即C语句中的指令CPU不一定能直接识别,需要编译器进行“翻译”
> C中寄存器的使用、栈的分配与使用、程序的调用、参数的传递等都是编译器来分配和维护
Keil仿真环境搭建
仿真
硬件仿真:通过硬件接口将CPU和内存中实际的信息读出来
软件仿真:通过软件模拟CPU内部运行程序的状态
环境搭建
1.安装Keil集成开发环境
2.安装gcc交叉编译工具链
3.创建汇编工程,熟悉仿真环境的使用
ARM指令集概述
汇编中的符号
1.指令:能够编译生成一条32bit机器码,并且能被cpu识别和执行
2.伪指令:本身不是指令,编译器可以将其替换成若干条指令
3.伪操作:不会生成指令,只是子啊编译阶段告诉编译器怎么编译
ARM指令集
1.数据处理指令:进行数学运算、逻辑运算
2.跳转指令:实现程序的跳转,本质就是修改了PC寄存器
3.Load/Srore指令:访问(读写)内存
4.状态寄存器传送指令:用于访问(读写)CPSR寄存器
5.软中断指令:触发软中断
6.协处理器指令:操作协处理器的指令