Arm Cortex-M 汇编编程全解析
1. 数据对齐与指令插入
在程序中插入字大小的数据时,应在数据前使用 “ALIGN” 指令。“ALIGN” 指令后的数字决定了对齐大小。例如,值 4 会强制后续数据按字边界对齐。确保数据按字对齐后,程序只需一次总线传输就能访问数据,这样代码的可移植性更强(Cortex - M0/M0 + /M1/M23 处理器不支持非对齐访问)。
下面是将之前的示例代码用 GNU 工具链汇编语法重写的代码:
LDR
R3,=MY_NUMBER
/*Get the memory location of MY_NUMBER */
LDR
R4, [R3]
/* Read the value 0x12345678 into R4 */
...
LDR
R0,=HELLO_TEXT /* Get the starting address of
HELLO_TEXT*/
BL PrintText
/* Call a function called PrintText to
display string */
...
.align 4
MY_NUMBER:
.word 0x12345678
HELLO_TEXT:
.asciz “Hello\n”
/* Null terminated string */
1.1 常用数据插入指令
| 要插入的数据类型 | Arm 汇编器(如 Keil MDK) | GNU 汇编器 |
|---|
超级会员免费看
订阅专栏 解锁全文
27

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



