目录
1、汇编语言是CPU执行效率最高的一门语言,一条汇编指令是唯一对应一条机器指令(二进制码)。
2、ARM汇编语言是一门低级语言,它与系统的底层打交道,直接访问底层硬件资源。
3、寄存器是CPU的组成部分,是和存储器交互的桥梁,它们可用来暂存指令、数据和地址。
一、ARM寄存器
ARM寄存器分为2类,通用寄存器和状态寄存器。通用寄存器总共16种,分别为R0到R15;状态寄存器共2种,分别为CPSR和SPSR。
16种通用寄存器:(总个数31)
R15 别名PC(program counter)程序计数器:保存当前正在执行的指令在内存中的地址,当指令执行结束后,PC的值自动+1,即自动指向下一条即将执行的指令在内存中的位置。因为当程序通过汇编指令完成了对PC寄存器的赋值操作的时候,其实就是完成了一次无条件跳转。
R14 别名LR(linked register)链接寄存器:用于存放子程序的返回地址,它是ARM程序实现子程序调用的关键所在。
R13 别名SP(stack pointer)栈指针寄存器:用于存放堆栈的栈顶地址的。当我们进行出栈和入栈的时候,都将根据该寄存器的值来决定访问内存的位置(即出入栈的内存位置),同时在出栈和入栈操作完成后,SP寄存器的值也应该相应增加或减少。
R0-R12是普通的数据寄存器,可用于任何地方。R0-R3 常用来传入函数参数,传出函数返回值。R4-R11 常用来存放函数的局部变量。被调用函数返回之前必须恢复这些寄存器的值。R12 内部调用暂时寄存器。
2种状态寄存器:(总个数6)
CPSR(1个)状态寄存器:用于保存程序的当前状态。
SPSR(5个)备份程序状态寄存器: 异常返回后恢复异常发生时的工作状态。