CORTEX-M3的一段话的疑问

[复制链接]
2046|4
 楼主| yushiqian2012 发表于 2013-4-28 12:26 | 显示全部楼层 |阅读模式
堆栈指针的最低两位永远是 0,这意味着堆栈总是 4 字节对齐的.
请问,这是何解?

huangxz 发表于 2013-4-28 13:44 | 显示全部楼层
是啊,32位的片子,当然是四字节对齐的
 楼主| yushiqian2012 发表于 2013-4-28 14:34 | 显示全部楼层
huangxz 发表于 2013-4-28 13:44
是啊,32位的片子,当然是四字节对齐的

关键是他的这句话有什么必练的联系吗?
“最低两位永远是 0,这意味着堆栈总是 4 字节对齐的”
 楼主| yushiqian2012 发表于 2013-4-28 14:42 | 显示全部楼层
huangxz 发表于 2013-4-28 13:44
是啊,32位的片子,当然是四字节对齐的

哦,我懂了。

寄存器的PUSH和POP操作永远都是4字节对齐的——也就是说他们的地址必须是
0x4,0x8,0xc,……。这样一来,R13的最低两位被硬线连接到0,并且总是读出0(Read As Zero)。
lr2131 发表于 2013-4-28 20:17 | 显示全部楼层
最低2位直接接地,保证给出的地址一定是4字节对齐。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:不需要别人来证明自己,自己的态度更重要

45

主题

354

帖子

0

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