逻辑地址(断地址,偏移地址)知识点回顾

为了准备考系统架构设计师,所以把以前的知识点回顾一下

1. 什么是逻辑地址

  逻辑地址是用户编程是使用的地址,分为段地址和偏移地址两部分。

  逻辑地址表示形式:3020:055AH---------(汇编语言中,数字后面加H表示16进制,hex简写)

2. 逻辑地址产生背景

  8086cpu:地址寄存器16位,内存单元20位

  8086 CPU 有 20 位的地址线,可以传送 20 位地址。每一根地址线都表示一个 bit,那么 20 个 bit 可以表示的最大值就是 2 的 20 次方。也就是说:最大可以定位到 1M 地址的内存,这称作 CPU 的寻址能力。

  但是,8086 处理器却是 16 位的,因为:运算器一次最多可以处理 16 位的数据;寄存器的最大宽度为 16 位;寄存器和运算器之间的通路为 16 位;也就是说:在 8086 处理器的内部,能够一次性处理、传输、暂时存储的最大长度是 16 位,因此,我们说它是 16 位结构的 CPU。

  访问存储器时,地址寄存器要先向地址总线发出地址信号(地址总线是专门用来存取内存地址的),而地址寄存器只有16位,所能访问的存储空间只有2^16=65536=64k, 达不到20位内存单元所提供的地址范围。

  针对这种情况,就把内存地址分成若干段,每段由一些存储单元构成。用段地址指出是哪一段,偏移地址标明是段中的哪一个单元

3. 什么叫段地址?偏移地址?之间有什么关系?

  段地址和偏移地址都是16位2进制数

  段地址和偏移地址有多种组合,故存在多个地址组合指向同一个存储单元上

4. 逻辑地址唯一吗?

  不唯一,因为段地址和偏移地址有多种组合,故存在多个地址组合指向同一个存储单元上

5. CPU执行程序时,采用的是逻辑地址还是物理地址?

  物理地址--用户编程时采用的逻辑地址在cpu执行程序时都要转换成物理地址

  这是由cpu的地址加法器完成的

6. 逻辑地址怎样转换为物理地址?

  他们都是16位的,为了和20位地址总线匹配,会进行如下:先将cs寄存器的值左移四位,然后再与ip寄存器的值相加,这样进行转换,就得到了一个20位的数据大小了,如下所示:

     真实物理地址 = 段基址 <<<< 4 + 段内偏移地址

  转换时,先将16位的段地址作移4为,相当于乘以16或者16进制的10H,再和偏移地址相加。

  转换公式为:

    物理地址 = 段地址*10H + 偏移地址

    如:将3020:055AH转换为物理地址:3020*10H(左移4位)+ 055AH = 3075AH

 

7. 段和偏移地址什么关系?

  段是由存储单元构成的,段包含偏移地址对应的存储单元。即偏移地址对应的字节存储单元在段中。

 

8. 段的大小指的是什么?

  指的是这个段包含存储单元的多少。

9. 将内存分段的依据,以及段的相关知识?

  段地址和偏移地址都是16位进制数

  每段最大64K字节单元(2^16=6335=64k),每段最小16个字节单元(硬件规定),也可以100个,1000个到最多达到65535个。

  偏移地址范围:0000H --- FFFFH

  

10. 什么是小段?

  规定每16字节单元为1小段

 

写的不对的地方,欢迎指正。

posted @ 2022-08-25 18:34  若-飞  阅读(1375)  评论(0编辑  收藏  举报