返回首页

什么是8086系统中的逻辑地址和物理地址?

286 2024-03-31 20:10 admin

一、什么是8086系统中的逻辑地址和物理地址?

由于8086的寄存器最大为16位,因此地址在寄存器中按16位大小存放,由段地址和偏移地址联合表示的地址类型叫逻辑地址,例如2000H:1000H,这里的2000H表示段的起始地址,即段地址,而1000H则表示偏移地址,表示逻辑地址时总是书写成段地址:偏移地址。

物理地址即是真实存在的唯一地址,是指的内存中各个单元的单元号,由8086有20条地址线,因此可寻址2的20次方,按2进制位表示规则,即有20位,这个就是物理地址。

物理地址因为超过了寄存器大小(16位)因此无法直接存放,需要合成,公式为物理地址=段地址×10H+偏移地址,公式中的数据可从逻辑地址获得。

逻辑地址是16位的,因此范围是2的16次方,即64K。

物理地址是20位的,因此范围是2的20次方,即1M。

二、在8086中,逻辑地址,偏移地址,物理地址分别指的是什么?

实模式下,每个存储单元分配一个惟一的20位二进制数(5位十六进制数)的存储器地址,称为物理地址。

逻辑地址由16位二进制数(4位十六进制数)的段地址和偏移地址组成。

段首地址:5位十六进制数中的末尾1位十六进制数为0的地址,即可作为段首地址段地址是指每一段的段首地址的高4位十六进制数,通常被保存在某个段寄存器中。

偏移地址则是指在段内相对于段首地址的偏移值,也取4位十六进制数。所以,物理地址=段地址*10H+偏移地址

三、在8086中,逻辑地址、偏移地址和物理地址分别指的是什么?具体说明?

存储器中每一个单元的地址可以用两种方法表示:

1.逻辑地址:其表达形式为“段地址:段内偏移地址”。

2.物理地址:CPU与存储器进行数据交换时在地址总线上 提供的20位地址信息称为物理地址。 物理地址=段地址×10H+段内偏移量 CPU一次处理的数据是16位,地址总线实际上代表CPU的寻址能力,地址线为20条那么CPU实际的寻址能力就是2的20次方就是1M。实际的物理地址是这样形成的: 段地址*10H+偏移地址,偏移地址用IP指向,IP是16位的。 例如段地址是1234H,偏移地址是4321H 实际上可以这么来理解,就是段地址左移一位后加上偏移地址就得出实际的物理地址。 这里逻辑地址和物理地址的关系又可以用一个比喻来说明: 比如你的学号是0102,这是你的真实地址亦即物理地址,那么又假如01表示你的班级名称,02表示你相对整个班级的位置,这就是逻辑地址,道理是一样的,只不过在实际由逻辑地址合成物理地址的时候需要将物理地址左移一位,再加上偏移地址。

四、8086内存地址空间?

8086属于比较老的cpu类型,内存设计为1M已经在当时比较先进了。其寄存器位数AX 等都是16位,甚至要通过地址偏移的方式才能完成1M空间的寻址。

所以8086不适用于太大的汇编程序,反而是汇编程序员可以利用这个限制来优化改进自己的汇编代码,提高编程水平。

如果你的程序接近1M的大小,那么可以考虑优化自己的代码。如果远远大于1M,则可以考虑换一个cpu,或者用quartus等软件实现一个升级版的cpu对自己程序进行仿真

五、8086直接寻址段地址如何确定?

就8086而言,寄存器间接寻址段地址确定方法两种而已:

1.根据段前缀来定。 比如指令:MOV AX,ES:[DI],则段地址为ES 2.根据所使用的寄存器来定 如果用的是BX,SI,DI则默认的是DS,用的是BP则为SS。

如MOV AX,[BX],段地址为DS,而指令MOV AX,[BP],则段地址为SS

六、8086地址如何锁存?

地址锁存器就是一个暂存器,它根据控制信号的状态,将总线上地址代码暂存起来。8086/8088数据和地址总线采用分时复用操作方法,即用同一总线既传输数据又传输地址。

当微处理器与存储器交换信号时,首先由CPU发出存储器地址,同时发出允许锁存信号ALE给锁存器,当锁存器接到该信号后将地址/数据总线上的地址锁存在总线上,随后才能传输数据。

七、8086汇编,栈顶是高地址还是低地址?

栈顶是低地址,栈底是高地址,esp指向的内存位置永远是栈顶,第一个进栈的数据是在栈底

你说的 1040H是栈顶,1080H是栈底,由于8086是16位的,所以每次入栈是2个字节,所以第一个数据占用的内存是 107FH和1080H

八、什么是逻辑地址?

一个逻辑地址由两部份组成,段标识符和段内偏移量。段标识符是由一个16位长的字段组成,称为段选择符。其中前13位是一个索引号。后面3位包含一些硬件细节

九、8086地址总线多少位?

8086/8088CPU的地址总线均为20位,8086/8088CPU的寻址范围为1MB;8086有16根数据线和20根地址线,它既能处理16位数据,也能处理8位数据。可寻址的内存空间为1MB。Inter公司在推出8086的同时,还推出了一种准16位微处理器8088,8088的内部寄存器,运算部件及内部数据总线都是按16位设计的,单外部数据总线只有8条。推出8086的主要目的是为了与当时已有的一套Inter外部设备接口芯片直接兼容使用。8086与8088在寄存器结构,编程结构,存储器组织及I/O端口组织方面是完全一样的或稍有差别。

十、8086芯片怎么判断需要几根地址线?

1. 需要根据芯片的地址总线宽度来判断需要几根地址线。2. 8086芯片的地址总线宽度为20位,因此需要20根地址线。3. 对于其他芯片,也需要根据其地址总线宽度来判断需要几根地址线。同时,还需要考虑到其他因素,如数据总线宽度、控制总线等。

顶一下
(0)
0%
踩一下
(0)
0%
相关评论
我要评论
点击我更换图片