全站数据
8 4 2 0 5 8 1

ARM微处理器中支持字节、半字、字三种数据类型,地址的低两位为0是啥意思

IT创意 | 简单学习,快乐成才!         
问题更新日期:2024-11-02 07:23:49

问题描述

ARM微处理器中支持字节、半字、字三种数据类型,地址的低两位为0是啥意思希望能解答下
精选答案
最佳答案

1、字对齐数据,也就是说每个数据都是用字(32位)来表示的,而ARM中的存储单元都是以字节为单位,那么要索引一个数据,需要连续的4个字节才行,比如,0x0000_0000~0x0000_0003这四个单元存储一个数据,紧接着0x0000_0004~0x0000_0007这四个单元存储第二个数据,那么依此类推,每个数据的存储起始地址为:

0x0000_0000

0x0000_0004

0x0000_0008

0x0000_000c

0x0000_0010

0x0000_0014

......

可见,这些数据的地址最后一个十六进制位按照0、4、8、c循环,而对应的二进制为0000、0100、1000、1100。看出来了吧,这些数由于是0x4(0100b)的整数倍,最后两位都是

"00

"。

2、同理,半字就是两个字节,那么地址是:

0x0000_0000

0x0000_0002

0x0000_0004

......

由于都是0x2(10b)的整数倍,所以地址的最后一个二进制位都为

"0

"。

3、字节类型数据就是每个字节地址都用上了。

明白了吗?