8086/8088微处理器的存储器管理

来源:百度文库 编辑:神马文学网 时间:2024/04/30 09:38:11
8088/8086CPU有20条地址总线,有 220=1048576=1MB(1M字节) 个存储单元。在机器内部用20位无符号二进制数来表示存储单元地址。用十六进制表示的地址范围为:00000H~FFFFFH。8086微处理器是一个16位结构,用户可用的寄存器均为16位。显然,用一个寄存器是无法形成寻址1MB存储器空间所需的地址码的。     8086/8088把1M主存空间划分为若干段。每个段由连续的字节单元组成,最大长度为64K(即65536)。可作为独立寻址的逻辑单位。一个段中的代码和数据,可存放在该段内的任意单元中。一个段的起始地址,称为该段的段基地址(20位)。要求段基址的低4位必须为0(可被16整除),段地址存放在段寄存器CS、DS、SS、ES中。
在程序中设置的段称为逻辑段。各逻辑段的大小按实际需要确定,最大为64KB,实际应用时可小于64KB,其未用空间可再定义为其它段的空间。因而可出现段的重叠。各逻辑段可以是邻接的、间隔的、部分重叠的和完全重叠的。
在8086/8088微处理器中,描述存储器地址的三个相关术语:物理地址、偏移地址、逻辑地址
①物理地址:是由8086/8088芯片地址引线送出的20位地址码,它用来参加存储器的地址译码,最终读/写所访问的的一个特定的存储单元。
②偏移地址:某个存储单元相对于该段首地址的差值,用16位二进制代码。
③逻辑地址:是在程序中对存储器地址的一种表示方法:
逻辑地址 = 段地址:偏移地址
物理地址的形成:
物理地址 = 段基地址×10H + 偏移量
例:8086/8088某主存单元的逻辑地址是: 1234H:000AH,求其物理地址。
答:则此单元的物理地址为:1234H×10H + 000AH   = 2340H+000AH   =1234AH
练习题1.8086是多少位的微处理器?为什么?
答:8086是16位的微处理器,其内部数据通路为16位,对外的数据总线也是16位。
练习题2.EU与BIU各自的功能是什么?如何协同工作?
答:EU是执行部件,主要的功能是执行指令。BIU是总线接口部件,与片外存储器及I/O接口电路传输数据。EU经过BIU进行片外操作数的访问,BIU为EU提供将要执行的指令。EU与BIU可分别独立工作,当EU不需BIU提供服务时,BIU可进行填充指令队列的操作。
练习题3.8086/8088与其前一代微处理器8085相比,内部操作有什么改进?
答:8085为8位机,在执行指令过程中,取指令与执行执令都是串行的。8086/8088由于内部有EU和BIU两个功能部件,可重叠操作,提高了处理器的性能。
练习题4. 8086/8088微处理器内部有那些寄存器,它们的主要作用是什么?
答:执行部件有8个16位寄存器,AX、BX、CX、DX、SP、BP、DI、SI。AX、BX、CX、DX一般作为通用数据寄存器。SP为堆栈指针存器,BP、DI、SI在间接寻址时作为地址寄存器或变址寄存器。总线接口部件设有段寄存器CS、DS、SS、ES和指令指针寄存器IP。段寄存器存放段地址,与偏移地址共同形成存储器的物理地址。IP的内容为下一条将要执行指令的偏移地址,与CS共同形成下一条指令的物理地址。
练习题5. 8086对存储器的管理为什么采用分段的办法?
答:8086是一个16位的结构,采用分段管理办法可形成超过16位的存储器物理地址,扩大对存储器的寻址范围 (1MB,20位地址)。若不用分段方法,16位地址只能寻址64KB空间。
练习题6. 在8086中,逻辑地址、偏移地址、物理地址分别指的是什么?具体说明。
答:逻辑地址是在程序中对存储器地址的一种表示方法,由段地址和段内偏移地址两部分组成,如1234H:0088H。偏移地址是指段内某个存储单元相对该段首地址的差值,是一个16位的二进制代码。物理地址是8086芯片引线送出的20位地址码,用来指出一个特定的存储单元。
练习题7.给定一个存放数据的内存单元的偏移地址是20C0H,(DS)=0C00EH,求出该内存单元的物理地址。
答:0C00EH*10H+20C0H=C21A0H
物理地址:C21A0H。
练习题9. 8086与8088的主要区别是什么?
答:8086有16条数据信号引线,8088只有8条;8086片内指令预取缓冲器深度为6字节,8088只有4字节。