完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
如图所示,使用间接寻址的方式把常量赋给r0寄存器。LDR,R1 [PC,#OFFSET],offset为什么要-8,减去pc不就是偏移地址了吗?是不是这个题出错了 |
|
相关推荐
2个回答
|
|
这是因为三级流水线的计算机体系结构造成的。
PC理论上应该指向当前指令的下一条指令,这样当前指令执行守了,就会跳转到下一条指令执行。 但是,为了加快CPU的处理速度,采用了三级流水线的体系结构,即取址、译码、执行。 而现在普遍的计算机都是32位,三级流水线结构。所以,当正在执行当前指令的时候,即在执行,流水线会继续处理后边的取址,PC+4,再继续处理后边的译码,PC+4。两次+4,所以实际的PC为当前地址+8 为什么是+4。32位计算机,总线位宽为32位,即4个字节,所以+4。 |
|
|
|
您说的这个,我理解。但是,pc+const_number-pc就够了吧?就算pc指向当前执行指令地址+8的地址,但是一加一减不影响ldr吧。
图片中的代码是ldr伪指令在大范围跳转的时候被转换成的两个指令 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
飞凌嵌入式ElfBoard ELF 1板卡-CAN编程示例之开发板测试
852 浏览 0 评论
该问题是用APP给芯海科技的CST92F25芯片发指令是出现的
2844 浏览 1 评论
867 浏览 0 评论
1710 浏览 1 评论
2758 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-27 13:55 , Processed in 1.022831 second(s), Total 74, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号