1. 通用寄存器
r0 ~ r15
有特殊用途的寄存器:
r14:别名lr,保存函数返回地址
r15:别名pc, 程序计数器,值为当前指令地址+4(顺序执行的下一条指令)
与编译器有特殊约定的寄存器:
r13:别名sp,栈顶指针
(r9~r13都有约定,但还是sp最常用到)
其他与函数调用约定相关的寄存器:
r0~r3:函数调用传入参数的前4个32位数据
r0:函数返回值
PSR寄存器(状态寄存器):
N:运算结果为负
Z:运算结果为零
C:运算发生进位
V:运算发生溢出
与后文cmp,s后缀和condition后缀相关
2. 常用指令
mov
mov r1, #5 ;r1 = 5
mov r1, r0 ;r1= r0
算术,逻辑指令
add r2, r0, r1 ;r2 = r0 + r1
ldr/str
ldr r1, [sp, #4] ;r1 = memory[sp + 4]
str r1, [sp, #4] ;memory[sp + 4] = r1
ldmxx/stmxx
该系列指令能够一次load/store多个寄存器,xx表示该系列指令的后缀,一般格式为:
[ldm|stm][d|i][b|a] 基址寄存器[!], {寄存器列表}
后缀所表达的意思
db: decreas

最低0.47元/天 解锁文章
3194

被折叠的 条评论
为什么被折叠?



