欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

嵌入式(4)ARM汇编

程序员文章站 2022-07-03 09:05:58
...

ARM伪指令

嵌入式(4)ARM汇编

G全是全局变量
L全是局部变量
S为赋值
R为列表

  • GBLA表示初始化为0
  • GBLL表示初始化为F
  • GBLS表示初始化为空
    嵌入式(4)ARM汇编
  • LCLA 初始化0
  • LCLL 初始化F
  • LCLS 初始化为空

嵌入式(4)ARM汇编

  • SETA 数值赋值
  • SETL 逻辑赋值
  • SETS 字符串变量

嵌入式(4)ARM汇编

STMFD. 堆栈段存储
LDMIA 寄存器加载

数据定义伪指令

嵌入式(4)ARM汇编

  • DCB 表达式 为表达式初始化 可以用=
  • DCW 存储半字空间
  • DCD 存储字空间 &

str DCB “我是你哥哥”

a DCW 1,2,3

b DCD 4,5,6

  • DCFD 双精度浮点数
  • DCFS 单精度浮点数
  • SPACE 分配一片连续的存储区域初始化为0 ,可用%替代

eg:

asd SPACE 100;//分配连续的地址空间初始化为0
  • MAP 定义内存表首地址 可用^代替
    eg:
MAP 0X100 R0 //定义0X100+R0为内存表首地址
  • FIELD 定义结构化内存空间,常与MAP配合使用
    MAP与FIELD仅用于定义数据结构,不实际分配单元

嵌入式(4)ARM汇编嵌入式(4)ARM汇编

  • if
 if	逻辑表达式
 	指令序列
 else
 	指令序列2
 endif
  • while
while 逻辑表达式
指令序列
wend

if/while都需要有结束语句

  • area 段名 属性1 ,属性2

用于定义一个代码段,数据段,或属性段

嵌入式(4)ARM汇编

  • ALIGN [ 表达式【,偏移量】 ]
    填充字符,让其对其
  • code 32 16 /分别表示ARM,thumb指令集
  • entry 汇编程序入口
  • end 程序出口
  • EQU,定义,类似于C语言的#define
  • 嵌入式(4)ARM汇编
  • export/import
    这两个就是类似于java一个定义一个类,一个引用一个类
  • get/include
    嵌入式(4)ARM汇编
  • 名称 RN 别名
temp Rn,R0
将R0定义为temp别名

顺序程序例子

嵌入式(4)ARM汇编

分支程序设计

分支程序转移B,子程序调用BL,带状态转移指令BX
嵌入式(4)ARM汇编
嵌入式(4)ARM汇编

嵌入式(4)ARM汇编

循环程序设计

嵌入式(4)ARM汇编

嵌入式(4)ARM汇编

嵌入式(4)ARM汇编

别让我编写,秋梨膏。让我读程序

嵌入式(4)ARM汇编

嵌入式(4)ARM汇编

子程序

就是函数把,我感觉

嵌入式(4)ARM汇编
调用使用BL
子程序结尾处用MOV PC,LR返回主程序

嵌入式(4)ARM汇编
三种传参
嵌入式(4)ARM汇编后面不学了,就这样把

相关标签: 嵌入式