当前位置:首页 > 内存 > 正文

8088内存寻址空间为

  • 内存
  • 2024-07-31 02:24:55
  • 8981

一、8086/8088cpu直接寻址多大的内存单元和外设?

8086/8088cpu可以直接寻址1MB内存单元和64KBI/O插槽。

1979年,INTEL推出了8086/8088芯片,该芯片拥有29,000个晶体管。时钟频率4.77MHz;它是一个16位微处理器,具有20位地址总线和1MB内存。智力。它可以直接寻址2^20=1048576b=1MB的内存空间。有2^16=65536b=64KBI/O端口。

扩展信息:

8086/8088cpu;AD7~AD0的20位地址总线为8位地址/数据总线;关于时间的划分;两种方式三个条件。A15~A8对应地址线,为三态输出。A19/S6~A16/S3为地址/状态线;增加时间分配;它适用于输出和三态条件。在总线周期的T1状态下,作为地址线,A19~A16产生高4位地址。

在总线周期的T2~T4状态下,用作状态线,S6~S3输出状态信息:S6始终为0。S5表示中断标志的当前状态。如果S5=1,则表示当前允许可屏蔽中断请求。S4和S3用于指示正​​在使用哪个段寄存器。


二、8086/8088CPU的20位物理地址是怎样形成的(1)Intel的8位机8080CPU有8位数据总线(DB)和16位地址总线(AB),而这个16位地址信息也必须通过8位数据总线发送。是。数据通道存储的是临时寄存器以及CPU和内存中的寄存器,但是并不矛盾,因为AB是DB的精确整数倍。(2)但是,升级到16位机后,由于当时IC集成技术以及外部封装和引脚技术的限制,Intel8086/8088CPU设计无法超过40个引脚。感觉就像一台8位机器。原来的2^16=64KB的寻址能力太小了,但即使AB=32位也不能直接增加到16的倍数。所以AB只能是暂时的。那么2^20=1MB的寻址能力就增加了16倍。然而,这会在AB的20位和DB的16位之间产生冲突。20位地址信息不可用。你不能在DB上发送它,也不能在16位上发送它。它存储在CPU寄存器和内存单元中,由此产生了CPU段结构的原理。
学术文献中对“逻辑地址”的解释:
1、因此,存储单元的地址可以用段基值和段​​内偏移量来表示。它所在的段占据了整个存储位置,偏移量决定了段内的位置。这种地址表示形式称为逻辑地址,通常以逻辑地址:偏移量的形式表示。(计算机百科全书)。
2、所谓逻辑地址是指数据的逻辑块号指定的磁盘位置(l块=512字,l字=64位)。另一方面,物理地址是由柱面确定的。,由磁盘头、段等的物理位置(逻辑操作)确定的地址。
我认为这样的问题毫无意义。
我建议你自己查一下资料。
三、8086/8088的地址线为什么有20根?

8086/8088是16位CPU,内部ALU和相关地址(如SP、IP、BX、BP、SI、DI)都是16位,因此只能操作内存地址。它是16位操作,即8086/8088的直接寻址能力在64KB范围内。事实上,8086/8088有20条地址线,其最大地址空间为1MB。

这就产生了一个矛盾,即16位地址寄存器如何使用20位内存物理地址。

理想的解决方案是将1MB存储空间划分为多个“部分”,每个部分不大于64KB。这样,当段地址存储在8086的段寄存器中时,20位物理地址就可以被定义为“16位段基地址:16位偏移量”(称为逻辑地址)。8088。

扩展信息:

8086和8088这两款CPU芯片的区别主要在于数据引脚的数量,即宽度文件的。它们连接到数据总线。

8086以接口16位数据总线,单次总线操作最多可以读取一个字(80868088中为16位)数据,而8088只能接口8位数据。总线,一次总线操作最多只能读取一个字节(8位)。然而,两种CPU芯片的内部结构几乎相同,CPU中可以并行处理的二进制位数的最大数量是一个字。