【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

浙公網安備 33010602011771號