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

推荐订阅源

MyScale Blog
MyScale Blog
人人都是产品经理
人人都是产品经理
云风的 BLOG
云风的 BLOG
小众软件
小众软件
F
Fortinet All Blogs
爱范儿
爱范儿
WordPress大学
WordPress大学
N
Netflix TechBlog - Medium
Recent Announcements
Recent Announcements
Google DeepMind News
Google DeepMind News
C
Check Point Blog
博客园 - 聂微东
D
Docker
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
aimingoo的专栏
aimingoo的专栏
Vercel News
Vercel News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
A
About on SuperTechFans
博客园 - 【当耐特】
Microsoft Azure Blog
Microsoft Azure Blog
B
Blog
宝玉的分享
宝玉的分享
Jina AI
Jina AI
H
Hackread – Cybersecurity News, Data Breaches, AI and More

博客园 - 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,则编译器自动在(整个)程序末尾声名,但这样偏移有可能太大而编译不通过.