找回密码
 注册
搜索
查看: 1510|回复: 1

[讨论] 诚心向各位大哥请教几个 ARM 问题!

[复制链接]
发表于 2005-11-10 18:55:00 | 显示全部楼层 |阅读模式
请教:

问题1:
书上说“R15 为处理器的程序计数器 PC”

那么我们一般是用 R15 ,还是用 PC

比如:

MOV    PC,LR

写成

MOV    R15,LR

可以吗?


问题2:

助记符       说明                    操作
B  label    跳转指令                PC<-Label
BL label    带连接的跳转指令         LR<-PC-4,PC<-label
BX rm       带状态切换的跳转指令     PC<-label,切换处理状态

一般是在什么情况下用  B  ?
在什么情况下用 BL ?
在什么情况下用 BX ?


问题3:

在什么情况下需要用到间接寻址呢?
为什么直接寻址不能 完成 呢?
发表于 2005-11-16 16:59:00 | 显示全部楼层
<P>问题1:R15 就是pc,只是名称不同而已。因此你怎么做都行</P><P>问题2:从bl会帮你保存pc,所以你在做完事后可以根据lr返回,而如果你用了b有不保存pc的话,你就回不来了。我觉得这就很好理解怎么用它们。至于bx则更清楚,如果你要在arm和thumb间切换,这用bx。</P><P>问题3:不能直接寻址的原因也很简单,因为arm基于risc体系结构,绝大多数的操作都在寄存器中进行,通过ldr/str指令在内存和寄存器之间传递数据;arm的寻址方式比起我们从小接受教育的x86是差别比较大的。想想看arm是采用固定长度的指令格式的(32位),包括指令和操作数,如何完全做到直接寻址呢</P>
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-11-26 11:26 , Processed in 0.044941 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表