美文网首页
内存字节地址概念(收集)

内存字节地址概念(收集)

作者: 搬砖写Bug | 来源:发表于2022-12-06 22:04 被阅读0次
    内存的基本组成.jpg 边界对齐.jpg

    由于不同机器对于字长的定义不一致(可能是16bit,32bit或者其他),但是对于字节的长度都定义为8bit。所以实际上很少使用连续的字地址对字进行编码,通常会使用连续的字节地址对字节进行编码,使用该字的低位(或高位)的字节地址作为字地址。例如图一中所表示的IBM 370的字长是32bit,PDP-11的字长是16bit。他们的字节地址是连续的,字地址则分别是该字的低位和高位字节地址。


    字节寻址的不同分类.jpg
    1. 当需要读出1或2字节的数据时,内存只能一次读出包含那1或2字节数据的4个字节,是这样吗?

    是的。虽然字地址不是连续的,但存储器的数据带宽始终是与字长保持一致。

    1. 读出的4个字节都对应同一个地址,怎么从中找出我们需要的1或2字节数据呢?

    读出的4个字节同属于一个字地址,但是又有各自的字节地址,所以会根据字节地址找到对应的字节。而每个字节又包含8个bit,它们是没有显示地址的,但是bit的相对位置可以作为一个隐式的地址,所以不会存在找不到对应数据的问题,毕竟大端小端的定义就是为了解决这个问题的。

    1. 如果数据小端存放,那0x12345678aabbccdd在内存中是0xaabbccdd,0x12345678(地址左低右高)这样存放的吗?

    是的。在半字中,两个字节的顺序会保持与在字中一样的次序,也就是0x12345678aabbccdd在内存中是0xaabbccdd,0x12345678,至于二者谁先输后就要取决于大小端了。这方面的内容我只在《硬件架构的艺术》看到非常简单的描述。

    相关文章

      网友评论

          本文标题:内存字节地址概念(收集)

          本文链接:https://www.haomeiwen.com/subject/ujkqoltx.html