8086 CPU存储器分段结构与寻址

需积分: 50 1 下载量 83 浏览量 更新于2024-08-14 收藏 685KB PPT 举报
"存储器的段结构-汇编资料复习" 本文主要讨论了8086 CPU的存储器段结构以及相关的计算机基础概念,这在汇编语言学习和复习中是非常重要的知识点。8086 CPU拥有20条地址线,理论上可以寻址1MB(2^20字节)的存储空间,但其内部寄存器(包括IP)是16位的,这意味着不能直接通过16位寄存器来表示全部的20位地址。为了解决这个问题,8086引入了分段机制,实现了实模式下的存储器寻址。 在8086的存储器分段结构中,每个段由一个16位的段地址和一个16位的偏移地址共同确定。段地址存放在四个段寄存器中(CS、DS、ES、SS),而偏移地址则通常由指令或数据操作中的16位寄存器提供。通过将段地址左移4位(相当于乘以16)并与偏移地址相加,可以得到实际的20位物理地址。 在8086/8088微处理器的工作过程中,系统分为两个主要部分:执行部件(EU)和总线接口部件(BIU)。这两部分可以并行工作,提高了效率。BIU负责从内存中取指令,并将它们放入指令队列,而EU则负责执行指令。如果指令执行需要访问存储器或I/O设备,EU会向BIU发出请求,BIU则会在适当的时候进行相应的总线操作。 8086/8088的寄存器组包括通用寄存器、段寄存器和控制寄存器。通用寄存器是CPU的核心组件,用于存储数据和指令。其中,数据寄存器(AX, BX, CX, DX)常用于算术运算、存储数据和作为I/O操作的源/目的寄存器。指针及变址寄存器(SP, BP, SI, DI)则用于计算内存地址,例如堆栈指针SP用于跟踪堆栈顶部,基址寄存器BX可以与段地址结合形成基址加偏移的内存地址。 此外,还涉及了基本的计算机科学概念,如不同进制数之间的转换、原码、反码和补码的运算,以及逻辑运算(AND, OR, NOT, XOR)。这些基础知识对于理解和编写汇编语言程序至关重要。 总结来说,8086的存储器段结构是解决16位寄存器寻址20位地址问题的关键,而其内部的并行工作模式和寄存器组织则优化了CPU的性能。掌握这些知识对于深入理解8086汇编语言编程和计算机体系结构是必要的。