惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Google DeepMind News
Google DeepMind News
爱范儿
爱范儿
J
Java Code Geeks
L
LangChain Blog
V
V2EX
大猫的无限游戏
大猫的无限游戏
S
SegmentFault 最新的问题
博客园 - Franky
Microsoft Azure Blog
Microsoft Azure Blog
Jina AI
Jina AI
Blog — PlanetScale
Blog — PlanetScale
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
The Cloudflare Blog
博客园 - 司徒正美
B
Blog
G
Google Developers Blog
Stack Overflow Blog
Stack Overflow Blog
罗磊的独立博客
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Apple Machine Learning Research
Apple Machine Learning Research
Engineering at Meta
Engineering at Meta
MyScale Blog
MyScale Blog
有赞技术团队
有赞技术团队
Hugging Face - Blog
Hugging Face - Blog

博客园 - embed

TCP IP for embed system [zt]模拟视频 入门 UDP and TCP difference reference book list linux device driver study(chapter2) 2004年的最后一帖 mips的函数调用与堆栈 yuv2rgb 优化与优化工具 dsp编程学习 图象传感器厂家 一些电路的FAQ 算法的书 TCP的写 rtos's schedule algorithm c++ 学习 关于密码学方面的书 编译原理方面的书 算法的书
arm assembly note
embed · 2004-11-16 · via 博客园 - embed

注意这些指令的配对使用,例如stmdb/ldmia

2)关于!
表示数据回写
例如:
ldr r0,[r1]!
stmdb sp!,{r0,r4}
!用于前索引方式中表示数据回写,例如:ldr r0,[r1,#4]!
后索引方式不用!,数据始终回写,例如:ldr r0,[r1],#4
对堆栈方式中用!,表示堆栈自动增加或者减少

3)访问内存的LDR/STR指令索引方式
ldr r0,[r1,#4]前索引,先加
ldr r0,[r1],#4后索引,后加

4)比较常用的加载地址指令
Var EQU 0x1000
ldr r0, =Var
EQU生成的实际是一个标号(定义变量?),用于相对积存器寻址,与PC相对寻址相对。用EQU生成的标号用于数据段寻址。

5)关于DCD指令,注意与EQU不同,相应的ldr指令用法也不同.
定义一段内存区
semantec
Label DCD expr
例如:
ldr pc,Vector
    ....
Vector DCD restVector
restVector
    ....

(6)LTORG与LDR
LTORG是与LDR联合使用的literal pool,可以在函数尾部声明,这样相对PC偏移最少,如果不用LTORG,则编译器自动在(整个)程序末尾声名,但这样偏移有可能太大而编译不通过.