微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 解释什么是字对齐什么是半字对齐

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

时间:11-28 来源:互联网 点击:
ARM 处理器对存储器空间的访问分辨率以字节为最小单位;ARM 处理器还支持 16bit 数据(2 字节)的存储器访问和 32bit数据(4 子节)的存储器访问。在ARM 中将32 位的数据称之为‘字’,将 16 位的数据称之为‘半字’。

ARM 处理器在对于“字”/ “半字”数据进行访问时,对数据的存储格式是有要求的在存储器紧邻的两个字节单元,并且首字节地址必须能被2整除,这样存储的 16bit 数据称为 ‘半字对齐’存储数据,16bit 数据这样的存储方式称为 ‘半字对齐’存储。类似的,ARM 处理器在进“字”数据访问时,要求被访问的“字”必须 存放在存储器紧邻的4 个字节单元,并且首字节地址必须能被4 整除,这样存储的32bit 数 据称为‘字对齐’存储数据,32bit 数据这样的存储方式称为‘字对齐’存储。

能被2 整除数据的二进制表示,其最低位一定是‘0’;能被4 整除数据的二进制表示,其最低两位一定是‘00’。ARM 体系要求32 位长的ARM 指令在存储器中必须字对齐存储,16 位长的 Thumb 指令必须半字对齐存储。因此,在ARM 状态下,R15 的值总是能被4 除,也就是R15 寄存器的最低2 位总是 00;Thumb 状态下,R15 的值总是能被2 整除,也就是R15 寄存器的最低位总是0。

*中是我自己的注解,要思辨地看待……

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top