您的位置 首页 嵌入式

解说什么是字对齐什么是半字对齐

ARM处理器对存储器空间的访问分辨率以字节为最小单位;ARM处理器还支持16bit数据(2字节)的存储器访问和32bit数据(4子节)

ARM 处理器对存储器空间的拜访分辨率以字节为最小单位;ARM 处理器还支撑 16bit 数据(2 字节)的存储器拜访和 32bit数据(4 子节)的存储器拜访。在ARM 中将32 位的数据称之为‘字’,将 16 位的数据称之为‘半字’。

ARM 处理器在关于“字”/ “半字”数据进行拜访时,对数据的存储格局是有要求的【书中讲到若不依照如此要求:或许存储器系统的完成愈加困难;或许给ARM系统的移植带来费事(短少统一规范);规范软件(编译器和软件东西)在不遵守规则的系统中或许不作业。】在存储器紧邻的两个字节单元,而且首字节地址有必要能被2整除,这样存储的 16bit 数据称为 ‘半字对齐’存储数据,16bit 数据这样的存储方法称为 ‘半字对齐’存储。相似的,ARM 处理器在进“字”数据拜访时,要求被拜访的“字”有必要 存放在存储器紧邻的4 个字节单元,而且首字节地址有必要能被4 整除,【依照二进制从低位数起的1248换算法,能被2整除最低位的1不能有,能被4整除,低位的1和2都不能有】这样存储的32bit 数 据称为‘字对齐’存储数据,32bit 数据这样的存储方法称为‘字对齐’存储。

能被2 整除数据的二进制表明,其最低位一定是‘0’;能被4 整除数据的二进制表明,其最低两位一定是‘00’。ARM 系统要求32 位长的ARM 指令在存储器中有必要字对齐存储,16 位长的 Thumb 指令有必要半字对齐存储。因而,在ARM 状况下,R15 的值总是能被4 除,也便是R15 寄存器的最低2 位总是 00;Thumb 状况下,R15 的值总是能被2 整除,也便是R15 寄存器的最低位总是0。【借此就可以检测处理器作业于何种状况之下】
*【】中是我自己的注解,要思辨地看待……

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qianrushi/256737.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部