| 作者 | 将狼才鲸 |
|---|---|
| 创建日期 | 2022-11-06 |
本文档描述Keil MDK ARM格式的汇编,而不是GNU格式的汇编。
ARM格式的汇编使用armasm编译器,伪指令多为大写;GNU格式使用armclang 集成编译器,伪指令多为小写。
Keil MDK针对ARM 32位CPU的汇编伪指令和Keil C51中针对8051的伪指令不同。
参考网址:
| 伪指令 | 作用 | 举例 |
|---|---|---|
| END | 通知编译器已经到了该源文件的结尾了,编译汇编时,文件尾要先写END,否则编译时从第一条语句就会报错,而且只会提示指令不支持 | |
| INCLUDE | 包含头文件 | INCLUDE conf.inc |
| PRESERVE8 | 指定当前文件要求堆栈八字节对齐 | |
| THUMB | 使用THUMB指令集,不使用ARM指令集 | |
| AREA | 定义段 | AREA .text, CODE, READONLY |
| CODE | 定义代码段 | |
| READONLY | 只读 | |
| PROC | 汇编函数 | MyFunc PROC 指令 |
| ENDP | 汇编函数结束 | MyFunc PROC 指令 ENDP |
| EXPORT | 输出函数声明,然后该函数在别处可用 | EXPORT MyFunc |
| IMPORT | 进行函数声明,可以使用其它文件的函数 | EXPORT YourFunc |
| ALIGN | 取消字节对齐 | |
| DCD | 数据定义并分配存储单元 | |
| EQU | 宏定义 | Size EQU 4 |
| MACRO | 宏定义函数 | |
| MEND | 宏定义函数结束 | |
| $ | 定义变量名 | $Name |
| STACK | 定义栈 | AREA STACK, NOINIT, READWRITE, ALIGN=3 |
| NOINIT | 内存不初始化 | |
| READWRITE | 可读可写 | |
| SPACE | 分配指定长度的一片连续的内存 | SPACE 1024 |
| IF | 判断 | |
| ENDIF | IF结束 |