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

[讨论] 《ARM体系结构与编程》的一个编程疑问

[复制链接]
发表于 2012-10-21 18:38:54 | 显示全部楼层 |阅读模式
P14页有段代码

SUB R1,PC,#4        ;获得STR指令地址
STR PC,[R0]
LDR R0,[R0]
SUB R0,R0,R1

书中说 R0的值就是最后PC与目的地址的偏移,也是这段代码的目的。
书中同时描述 这个偏移可能是8,也可能是12。

问题就是
SUB R1,PC,#4        ;获得STR指令地址
这条代码本身就假定了偏移是8,如果是12的话,这条指令应该改成SUB R1,PC,#8,所以此段代码并不能达到目的。

各位大拿,是否存在这个问题?如果存在,这段代码应该怎么修改才能达到目的?
发表于 2012-10-24 20:37:02 | 显示全部楼层
很好的问题。以前看的时候没注意过。
很久又不搞ARM了,唉。杯具的一沓
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

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

GMT+8, 2024-5-22 21:57 , Processed in 0.057769 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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