打印

关于ARM中的LDR与MOV的一个问题

[复制链接]
1487|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sinadz|  楼主 | 2011-8-25 18:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
对于LDR R1,=0x245这条伪指令,会被编译器自动转换为两条指令:
第一条是为0x245这个值在内存中分配一个地址
第二条是LDR R1,[Rn](Rn即为0x245这个值分配的地址)

我想请问,如果我使用两条指令:
MOV R1,#0x240
ADD R1,R1,#0x5
同样也能够实现LDR R1,=0x245这条伪指令的功能。

那么我想请问,#0x245这个值实际上被放到哪里去了。immed_8规则到底是用于什么地方的,寄存器?内存?上面那两条指令又会被编译器转换为什么指令?

相关帖子

沙发
yoyowodeai| | 2011-8-25 19:40 | 只看该作者
看看ARM的指令集吧,以前知道,但是现在忘啦

使用特权

评论回复
板凳
huzixian| | 2011-8-29 21:26 | 只看该作者
ldr和mov  还是区别很大的

使用特权

评论回复
地板
黑发尤物| | 2011-8-30 20:44 | 只看该作者
看看汇编指令集

使用特权

评论回复
5
加班加点| | 2011-9-8 23:32 | 只看该作者
不懂啊,帮顶

使用特权

评论回复
6
delin17| | 2011-9-9 11:26 | 只看该作者
LDR是伪指令..

使用特权

评论回复
7
sinadz|  楼主 | 2011-9-9 15:47 | 只看该作者
已经理解了,多谢楼上各位

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

304

主题

2313

帖子

0

粉丝