刘大胡 发表于 2024-1-27 17:40:20

为什么按字寻址需要给字节编号?

一个字由若干个字节构成,所以计算机在寻址过程中会区分字里面的字节,即会给字里面的字节编址,这样就会占用部分地址线,例如有24根地址线,机器字长为16位,若按字寻址的话,16位=2个字节,需要占用一根地址线用来字内寻址,这样就剩下23根地址线,故按字寻址范围是223W(W是字长的意思),也就是8MW。【真正用于按字寻址的地址线只有24-1=23根】

FishC 发表于 2024-1-27 17:41:41

按字寻址需要给字节编号,是因为计算机内存的基本单位是字节,而不是字。一个字节是8位,而一个字通常是16位或32位。所以,为了能够区分不同字内部的字节,需要给字节进行编号。

举个例子,假设我们有一个16位的字,它由两个字节组成。第一个字节的编号为0,第二个字节的编号为1。这样,计算机就能够根据这些编号找到正确的字节,进而操作或读取数据。

在按字寻址的过程中,虽然会用一根地址线来识别字内的字节,但并不是说这根地址线被“占用”了,而是被用来指示字内的字节。其他的地址线仍然可以用来表示内存的地址。所以,按字寻址的范围仍然是由所有地址线的组合决定的,比如23根地址线可以表示的地址范围是8MW。

希望这个解释可以帮助你理解按字寻址的原理。如果还有疑问,请随时提问。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

sfqxx 发表于 2024-1-27 17:44:07

按字寻址需要给字节编号的原因是为了能够精确地访问存储在内存中的特定数据。

在计算机系统中,内存是按字节进行分组和编号的。字是内存中的基本单位,并由一定数量的字节组成。为了快速、准确地找到并访问存储在内存中的特定字,每个字都被分配了唯一的地址。在字中的字节也需要被编号,才能在需要的时候正确读取和写入数据。

因此,字内寻址(给字节编号)并非是将所有的地址线用于寻址,而是将部分地址线用于标示字中的字节。这样,在给定一个内存地址后,计算机不仅可以找到指定的字,还可以找到字中的特定字节,从而提高数据访问的精确性。

求最佳答案

jackz007 发表于 2024-1-27 19:12:14

      按字寻址需要给字节编号,搞不懂楼主想要表达的意思是什么。给字节编号指的是什么,可不可以举例说明?

刘大胡 发表于 2024-1-28 21:34:44

jackz007 发表于 2024-1-27 19:12
按字寻址需要给字节编号,搞不懂楼主想要表达的意思是什么。给字节编号指的是什么,可不可以举例说 ...

其实我想问你,按字节编号,按字寻址到底说的是什么意思?既然按字节编号为什么又要按字寻址,按字节编号按字寻址具体过程是怎么样的?这里的按字寻址到底说的什么意思?

jackz007 发表于 2024-1-29 01:27:18

本帖最后由 jackz007 于 2024-1-29 01:40 编辑

刘大胡 发表于 2024-1-28 21:34
其实我想问你,按字节编号,按字寻址到底说的是什么意思?既然按字节编号为什么又要按字寻址,按字节编号按 ...

         "按字寻址" 这种说法头一回听说,恐怕指的是 8086 汇编语言中必须通过段:偏移 来表达内存地址的方式吧?
          在 段:偏移 的内存地址表达中,段地址和偏移地址分别用 1 个字(2 个字节)来进行表达,用这种方式表达的内存地址可以通过
段地址 x 10h + 偏移地址
          计算得到。例如,内存地址 0030h:0208h 所表达的内存地址是 0030h x 10h + 0208h = 00508h   

          所以,同一个内存地址,可以用不同数值的 段:偏移 来进行表达。或者也可以这么说,多个不同数值的 段:偏移 可以表达同一个内存地址。

刘大胡 发表于 2024-1-29 09:46:14

sfqxx 发表于 2024-1-27 17:44
按字寻址需要给字节编号的原因是为了能够精确地访问存储在内存中的特定数据。

在计算机系统中,内存是按 ...

计算机在内存中读写数据时候不是一次只能读写一个存储字长的数据吗?既不能多也不能少吗?
页: [1]
查看完整版本: 为什么按字寻址需要给字节编号?