ARM一个内存地址存放多大的数据
突然想不通,在一个内存的地址上能存放多大的数据,为什么看到有的寄存器地址正好隔着4呢!(比如50000000下一个就是50000004) 一个地址只能存放一个字节,因为这个寄存器是32位的,占四个字节,所以隔着4,是这样的吧? 二楼自己说的对 grj0719 发表于 2015-3-2 21:21二楼自己说的对
嗯嗯{:biggrin:} 因为ARM是32位的寄存器,相邻寄存器自然就隔着4个字节啦…… 楼主是来自娱自乐的啊{:sweat:} wangzh 发表于 2015-3-2 21:17
一个地址只能存放一个字节,因为这个寄存器是32位的,占四个字节,所以隔着4,是这样的吧? ...
一个地址放一个字节的说法是错误的,
应该和数据总线相关,8位机是一个字节,32位机是4个字节。 看来自问自答能够提高分析问题的效率呀,哈哈 CPU是32位的,一次取数据是4个字节. yulutong 发表于 2015-3-3 07:54
一个地址放一个字节的说法是错误的,
应该和数据总线相关,8位机是一个字节,32位机是4个字节。 ...
哦哦,更明白点了 DM_2014 发表于 2015-3-2 23:55
楼主是来自娱自乐的啊
不是,是发完了,又搜着了{:biggrin:} 32位系统4字节对齐 边界对齐。。。。 yulutong 发表于 2015-3-3 07:54
一个地址放一个字节的说法是错误的,
应该和数据总线相关,8位机是一个字节,32位机是4个字节。 ...
说的没错{:smile:} 想想就知道了 duang~duang~ 可以很大很大,一个内存地址,含义嗷嗷丰富,一个数组是一个内存地址,一个结构体是一个内存地址,一个函数是一个内存地址 因为ARM的内核是32位的,地址总线也是32位的,所以步进就是32位 32bit等于4byte。 一个字等于32bit等于4byte 一个地址是可以有多个字节的,和芯片的总线有关,ARM为了兼容8位指令数据,才有了这种对齐的特性;
页:
[1]