再次请教ARM汇编

[复制链接]
2993|3
 楼主| ayb_ice 发表于 2007-5-7 15:11 | 显示全部楼层 |阅读模式
ADR和LDR伪指令的区别<br />我的理解是:<br />&nbsp;&nbsp;&nbsp;&nbsp;ADR产生的代码与位置无关,而LDR产生的代码与位置有关,不知是否正确...<br />另外感觉ARM的汇编比51难多了...<br />望高手不吝赐教...
ferry 发表于 2007-5-8 08:35 | 显示全部楼层

ADR&LDR

说的是对的。ADR计算两指令间的相对量,所以和位置无关。LDR以PC为基址计算相对量,而PC是位置相关的。<br />觉得arm难是因为arm体系结构是和51完全不同的RISC,不熟悉,熟悉了就不觉得难了。
xiaoerge 发表于 2007-5-8 09:02 | 显示全部楼层

PC也是指向LDR指令的位置的吧?

都是相对位置,怎么LDR会与位置有关呢?
ferry 发表于 2007-5-8 15:11 | 显示全部楼层

PC是随程序加载的地址而变的

比如程序加载到1000,则pc的起始值就是1000,后面的地址是1000+偏移,<br />加载到2000处,就是2000+偏移。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

222

主题

15494

帖子

34

粉丝
快速回复 在线客服 返回列表 返回顶部