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

ARM微处理器要求字数据4字节对齐(地址低两位为0),半字2字节对齐。这意味着字数据存储从0x0000_0000, 0x0000_0004等地址开始,半字从0x0000_0000, 0x0000_0002等。缓存线在arm920t中为32字节,异常处理代码通常32字节对齐以优化效率。在不同环境中,如VC++,WORD可能是2字节或4字节。" 109702184,8048726,Python编程:深入理解*args和**kwargs,"['Python编程', '函数参数', '数据类型']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题:

  ARM微处理器中支持字节、半字、字三种数据类型,其中,字需要4字节对齐(地址的低两位为0)、半字需要2字节对齐(地址的最低位为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、字节类型数据就是每个字节地址都用上了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值