【RTOS】RTOS汇编入门 (1)
引言
为了提高效率,进行更为底层的操作,RTOS常采用汇编语句,因此了解常用的汇编语句,很有必要
汇编指令
1、.equ:类似于c中的#define,表声明常量
例如:.equ PSW 0x10000000
2、.text :声明接下来的代码是放在text段的
3、.align:声明变量的对其宽度
例如:.align 4
4、.thumb:表示接下来使用的汇编为thumb指令
5、.syntax unified:cortex m3中,为兼容thumb和thumb2,采用该指令来统一汇编语法,并统一使用32位的thumb2指令语法格式来书写
6、.type xxx, %funtion:声明xxx为一个函数
例如:.type port_start, %funtion
port_start:
ldr r0, r1
7、cpsid i:屏蔽了配置优先级中断,等同于primask = 1
8、cpsie i:开启可配置优先级中断,等同于primask = 0
9、push:入栈,压入多个寄存器
例如:push{r4, r5}
10、pop:出栈
例如:pop{r4, r5}
11、ldr:load reg,字数据加载指令
例如:ldr r0 = 50
12、ldrb:load byte,字节数据加载指令
例如:ldrb r0, [r1](将r1的地址存到r0)
13、str:store,字数据存储指令
例如:str r5, [r4] (将r5寄存器的值存到r4寄存器的地址,*r4 = r5)
14、strb:store byte,字节数据存储指令
15、add:加法指令
例如:add r1, r1, #r1 (即r1 = r1 + 1)
16、sub:减法指令
例如:sub r1, r1, #1 (即r1 = r1 - 1)
17、mov:一般传送指令
例如:mov r1, #0 (即r1 = 0)
18、msr