求真百科歡迎當事人提供第一手真實資料,洗刷冤屈,終結網路霸凌。

偏移量查看源代码讨论查看历史

跳转至: 导航搜索
偏移量
圖片來自优酷

计算机汇编语言偏移量,计算机汇编语言,是指把存储单元实际地址与其所在段的段地址之间的距离称为段内偏移,也称为“有效地址或偏移量”。

  • 外文名:Offset
  • 学 科:信息工程
  • 领 域:工程技术

简介

段地址左移四位,与有效地址相加,就构成了逻辑地址。一般而言,段地址是cpu自己独立编制的,但是偏移量是程序员编写的。偏移量就是程序的逻辑地址与段首的差值。

在早期的8086中地址线是20位的,而段地址是16位。在十六进制下就是4位。这样一个段寄存器就不能完整的描述出内存的地址。所以就和通用寄存器配用。偏移量存在通用寄存器中,段地址则存在段寄存器中。而地址首的五位(十六进制下,二十地址线是五位)有个特点,即末尾总是零,所以就取前四位当做段地址。正好是段地址的存储空间大小。所以在上图中,按照地址存储时的分法,倒过来组合,即左移四位(二进制下,十六进制是一位),比如段地址为1001H(H十六进制之意),左移一位(乘以16),即补零变为10010H,假设偏移地址是1010H,则实际物理地址就是11020H了。形象来说,段地址是头,偏移量是实际位置相对头的位置 [1]

指定段和偏移量

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

段-寄存器这种格局是早期硬件电路限制留下的一个伤疤。地址总线在当时有20-bit。然而20-bit的地址不能放到16-bit的寄存器里,这意味着有4-bit必须放到别的地方。因此,为了访问所有的内存,必须使用两个16-bit寄存器。 这一设计上的折衷方案导致了偏移量格局。最初的设计中,其中一个寄存器只有4-bit有效,然而为了简化程序,两个寄存器都是16-bit有效,并在执行时求出加权和来标识20-bit地址。 偏移量是16-bit的,因此,一个段是64KB [2]

灯光偏移

灯光偏移可以理解为车灯光束上下左右的偏移情况,就是照的正不正。相关政策中灯光偏移是这样描述的:“在检验前照灯近光光束照射位置时,前照灯照射在距离10m的屏幕上时,乘用车前照灯近光光束明暗截止线转角或中点的高度应为0.7H~0.9H(H为前照灯基准中心高度,下同),其它机动车(拖拉机运输机组除外)应为0.6H~0.8H。机动车(装有一只前照灯的机动车除外)前照灯近光光束水平方向位置向左偏不允许超过170mm,向右偏不允许超过350mm [3] 。”

视频

偏移量计算方法

含看视频

参考文献