嵌入式(4)ARM汇编
程序员文章站
2022-07-03 09:05:58
...
ARM伪指令
G全是全局变量
L全是局部变量
S为赋值
R为列表
- GBLA表示初始化为0
- GBLL表示初始化为F
- GBLS表示初始化为空
- LCLA 初始化0
- LCLL 初始化F
- LCLS 初始化为空
- SETA 数值赋值
- SETL 逻辑赋值
- SETS 字符串变量
STMFD. 堆栈段存储
LDMIA 寄存器加载
数据定义伪指令
- 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仅用于定义数据结构,不实际分配单元
- if
if 逻辑表达式
指令序列
else
指令序列2
endif
- while
while 逻辑表达式
指令序列
wend
if/while都需要有结束语句
- area 段名 属性1 ,属性2
用于定义一个代码段,数据段,或属性段
- ALIGN [ 表达式【,偏移量】 ]
填充字符,让其对其 - code 32 16 /分别表示ARM,thumb指令集
- entry 汇编程序入口
- end 程序出口
- EQU,定义,类似于C语言的#define
- export/import
这两个就是类似于java一个定义一个类,一个引用一个类 - get/include
- 名称 RN 别名
temp Rn,R0
将R0定义为temp别名
顺序程序例子
分支程序设计
分支程序转移B,子程序调用BL,带状态转移指令BX
循环程序设计
别让我编写,秋梨膏。让我读程序
子程序
就是函数把,我感觉
调用使用BL
子程序结尾处用MOV PC,LR返回主程序
三种传参
后面不学了,就这样把
上一篇: 二进制数据转化 (java) java
下一篇: React Native学习记录
推荐阅读
-
ARM汇编指令集_学习笔记(1)
-
树莓派(4B)Linux + .Net Core嵌入式-HelloWorld(二)
-
ARM版Mac电脑逐渐封闭:Thunderbolt 4留下 AMD/Intel/NV集体出局
-
ARM版Mac电脑逐渐封闭:Thunderbolt 4留下 AMD/Intel/NV集体出局
-
华芯通4月30日关门:高通+贵州合资的国产ARM服务器芯片终结
-
树莓派(4B)Linux + .Net Core嵌入式-初始化环境(一)
-
ARM汇编指令集_学习笔记(1)
-
祥硕操刀 苹果ARM处理器版Macbook电脑2022年用上USB4
-
开发者为一加6T移植ARM版Win10:流畅运行《使命召唤4》
-
ARM汇编逆向iOS 实战