实际位置

时间:2023-05-27 00:12:47编辑:优化君

段地址左移四位,与有效地址相加,就构成了

逻辑地址。一般而言,段地址是cpu自己独立编制的,但是偏移量是程序员编写的。偏移量就是程序的逻辑地址与段首的差值。

在早期的8086中

地址线是20位的,而段地址是16位。在十六进制下就是4位。这样一个

段寄存器就不能完整的描述出内存的地址。所以就和

通用寄存器配用。偏移量存在通用寄存器中,段地址则存在段寄存器中。而地址首的五位(十六进制下,二十地址线是五位)有个特点,即末尾总是零,所以就取前四位当做段地址。正好是段地址的存储空间大小。所以在上图中,按照地址存储时的分法,倒过来组合,即左移四位(二进下,十六进制是一位。),比如段地址为1001H(H十六进制之意),左移一位,即补零变为10010,假设

偏移地址是1010,则实际物理地址就是11100了。形象来说,段地址是头,偏移量是实际位置相对头的位置。

实模式中,内存比

保护模式中的结构更令人困惑。内存被分割成段,并且,操作内存时,需要指定段和偏移量。

段-

寄存器这种格局是早期硬件电路限制留下的一个伤疤。

地址总线在当时有20-bit。然而20-bit的地址不能放到16-bit的寄存器里,这意味着有4-bit必须放到别的地方。因此,为了访问所有的内存,必须使用两个16-bit寄存器。

这一设计上的折衷方案导致了今天的段-偏移量格局。

偏移量是16-bit的,因此,一个段是64KB。下面的图可以帮助理解20-bit地址是如何形成的:

段-偏移量标识的地址通常记做 段:偏移量 的形式。

例如:

线切割工艺中,计算钼丝偏移量,即钼丝的直径.

上一篇:性运动会

下一篇:黑暗宇宙