2020年1月19日星期日微机原理与接口技术23:202第二章8086系统结构8086CPU内部结构8086CPU引脚及功能8086CPU存储器组织8086CPU系统配置8086CPU时序23:20:293§2-38086存储器组织第二章8086系统结构——8086存储器组织一.存储器地址的分段存储器地址的分段;物理地址的形成;逻辑地址的来源;二.8086存储器的分体结构分体结构概念;分体结构读写操作;存储器与总线连接;三.堆栈的概念堆栈的定义;堆栈段的构成及特点;堆栈的工作方式及特点;主要内容23:2042.3.1存储器地址的分段①存储器的编址特点:以字节为单位存储信息,每个存储单元有唯一的地址。②分段管理的原因:8086/8088系统的存储空间lM字节(即220,要20位物理地址),CPU内部寄存器只有16位(只能寻址64K字节)。因此8086整个存储空间分成许多逻辑段。1.存储器地址的分段第二章8086系统结构——8086存储器组织0段000000FFFF100001FFFFF0000FFFFF1段…15段64KB64KB64KB23:205——存储器地址的分段…逻辑段1起点逻辑段2起点逻辑段3起点逻辑段4起点……逻辑段1≤64KB逻辑段2≤64KB逻辑段3≤64KB逻辑段4≤64KB00000FFFFF第二章8086系统结构——8086存储器组织分段管理的特点:每段容量不超过64K字节;允许各个逻辑段在整个存储空间中浮动;段和段之间可以连续,也可以分开或重叠。存储单元的实际地址:段地址+段内偏移地址(IBMPC机规定段的首地址必须从每小段(paragraph)的首地址开始,段起始地址必须能被16整除)。23:2062.物理地址形成地址范围:00000~FFFFFH物理地址=段基址×16十偏移地址逻辑地址:段基址:偏移地址(无符号的16位二进制数,程序设计时用)物理地址:存储器的绝对地址,是CPU访问存储器的实际寻址地址。第二章8086系统结构——8086存储器组织——存储器地址的分段段基址:8086将段地址放在段寄存器(CS、DS、ES、SS)中,称为段基址偏移地址:从段地址开始的相对偏移位置,放在指令指针寄存器IP、16位通用寄存器中23:207物理地址形成过程:段基址00001503210偏移地址150地址加法器物理地址190从段寄存器中取出段基址,将其左移4位,再与16位偏移地址相加,就得到了物理地址(由总线接口部件BIU的地址加法器完成)。第二章8086系统结构——8086存储器组织——存储器地址的分段23:2083.逻辑地址来源访问存储器的操作类型不同,BIU所使用的逻辑地址来源也不同操作类型隐含段地址替换段地址偏移地址取指令CS无IP堆栈操作SS无SPBP为间址SSCS、DS、ES有效地址EA存取变量DSCS、SS、ES有效地址EA源字符串DSCS、SS、ESSI目标字符串ES无DI第二章8086系统结构——8086存储器组织——存储器地址的分段23:209IPCSSI,DI或BXDSSP或BPSS代码段数据段堆栈段取指令(IP)读/写存储器操作数或访问变量字符串寻址(源操作数放在DS:SI中,目标操作数放在ES:DI中)堆栈操作(SP)第二章8086系统结构——8086存储器组织——存储器地址的分段段寄存器与其它寄存器组合寻址存储单元示意图:23:20102.3.28086存储器的分体结构(1)分体结构概念两个存储体:偶地址存储体+奇地址存储体,各为512KByte,共1MByte.512K×8位奇地址存储体(A0=1)512K×8位偶地址存储体(A0=0)000010000300005FFFFF000000000200004FFFFE220-1==220-2第二章8086系统结构——8086存储器组织23:2011——8086存储器的分体结构第二章8086系统结构——8086存储器组织当A0=0时,选择访问偶地址存储体,偶地址存储体与数据总线低8位相连,从低8位数据总线读/写一个字节。当BHE=0时,选择访问奇地址存储体,奇地址存储体与数据总线高8位相连,从高8位数据总线读/写一个字节。当A0=0,BHE=0时,访问两个存储体,从16位数据总线读/写一个字。(2)存储体的访问:23:2012BHEA0操作总线使用情况00从偶地址开始读/写一个字AD15~AD001从奇地址单元读/写一个字节AD15~AD810从偶地址单元读/写一个字节AD7~AD011无效0110从奇地址开始读/写一个字,CPU自动分两次完成。AD15~AD8AD7~AD0表2.8BHE、A0编码含义第二章8086系统结构——8086存储器组织——8086存储器的分体结构23:201334000FF001000010100103125201①字节存储:一个字节存放一个单元。如单元00100H中的内容为34H,表示为(00100H)=34H。②字存储:一个字存于相邻两个单元,且低位字节在低地址,高位字节在高地址,字单元的地址以低位地址表示。如:(00100H)=1234H,(00103H)=0152H③一个字可以从偶地址开始存放,也可以从奇地址开始存放。第二章8086系统结构——8086存储器组织——8086存储器的分体结构(3)存储器中信息的存放:23:2014(4)分体结构读写操作00000FF10000100011000200103100041122330000000FF100001000110002001031000411223311从偶地址读一个字节从奇地址读一个字节注意:8086CPU访问存储器时,以字为单位进行,并从偶地址开始。第二章8086系统结构——8086存储器组织——8086存储器的分体结构读写一个字节23:201500000FF10000100011000200103100041122333322从偶地址读一个字从奇地址读一个字00000FF10000100011000200103100041122332211若字单元地址从偶地址开始,只需访问一次存储器若字单元地址从奇地址开始,要访问两次存储器第二章8086系统结构——8086存储器组织——8086存储器的分体结构读写一个字23:20:2916因此:为了加快程序运行速度,编程时注意从存储器偶地址开始存放数据,这种存放方式也称作“对准存放”定义字数据时,可以使用EVEN对准伪指令从偶地址分配存储空间。23:2017(5)存储器与总线连接D7~D0数据总线D15~D8数据总线D7~D0奇地址存储体SELA19~A1D7~D0偶地址存储体SELA19~A1A0BHEA19~A1地址总线8086系统D7~D0数据总线D7~D01M×8位存储体A19~A0A19~A0地址总线8088系统0000000001FFFFF第二章8086系统结构——8086存储器组织——8086存储器的分体结构23:20182.3.3堆栈的概念(1)堆栈的定义堆栈是在存储器中开辟一个区域,用来存放需要暂时保存的数据。(2)堆栈段构成及特点堆钱段由段定义语句在存储器中定义的一个段,可以在存储器1M字节空间内任意浮动,容量小于等于64K字节。段基址由堆栈寄存器SS指定,栈顶由堆栈指针SP指定,SP指向当前栈顶单元。C0000C1000sp向上增长栈底第二章8086系统结构——8086存储器组织23:2019——堆栈的概念(3)堆栈的工作方式及特点①工作方式:“先进后出”,指令为PUSH、POP,栈顶指针SP的变化由CPU自动管理。②操作特点:以字为单位进行操作,低字节在偶地址,高字节在奇地址,每访问一次堆栈就能压入/弹出一个字。③地址增长方式:一般是向上增长:栈底设在存储器的高地址区,堆栈地址由高向低变化。C0000C1000sp向上增长栈底第二章8086系统结构——8086存储器组织23:2020(4)堆栈操作指令的执行过程:C0000C1000sp向上增长栈底执行PUSH指令时:CPU自动修改指针SP-2SP,使SP指向新栈顶;将低位数据压入(SP)单元,高位数据压入(SP+1)单元。当执行POP指令时:CPU将当前栈顶SP(低位数据)和SP+1(高位数据)中的内容弹出;自动修改指针,使SP+2SP,SP指向新栈顶。第二章8086系统结构——8086存储器组织——堆栈的概念23:2021例题C0000C1000sp向上增长栈底例2.3假如当前SS=C000H.堆栈段<64K,SP=1000H,指出当前栈顶在存储器中的位置。解:当前栈顶在存储器中的地址为:SS×16+SP=C1000H第二章8086系统结构——8086存储器组织——堆栈的概念23:2022例2.4上例中若AX=3322H,BX=1100H,CX=6655H,执行指令PUSHAX,PUSHBX,再执行指令POPCX,此时堆栈中内容发生什么变化,AX,BX,CX中的内容是什么?C00002233sp栈底0011C0FFCC0FFEC10003322PUSHAX1100PUSHBX6655CXspC00002233栈底0011C0FFCC0FFEC10003322AX1100BX1100POPCX第二章8086系统结构——8086存储器组织——堆栈的概念PUSH操作以后POP操作以后23:2023堆栈操作动画:第二章8086系统结构——8086存储器组织——堆栈的概念23:2024(5)堆栈的主要用途中断,子程序调用,数据暂时保存。(6)注意:先进入的内容后弹出;PUSH和POP指令成对。第二章8086系统结构——8086存储器组织——堆栈的概念23:2025§2-48086系统配置简述1.8086两种系统配置方式:最小模式(CPU的引脚MN/MX端接高电平+5V)最大模式(CPU的引脚MN/MX端接低电平)2.8086两种系统配置的特点(表2.9)最小模式为单机系统,控制信号由CPU提供;最大模式为多处理器/协处理器系统,控制信号由总线控制器8288提供。(常用的处理器有:数值运算协处理器8087,输入/输出处理器8089)3.CPU在两种配置方式下24~31引脚意义不同(表2.10)第二章8086系统结构——8086系统配置23:20262.4.18086最小模式系统8086最小模式系统组成:8086CPU存储器I/O接口芯片其他芯片1片8284A,作为时钟发生器3片8282/8283或74LS373,作为地址锁存器2片8286/8287或74LS245,作为双向数据总线收发器第二章8086系统结构——8086系统配置——8086系统配置23:2027最小模式系统框图:时钟发生器RESVccCLKREADYRESETRDWRM/IOALE8086CPUA19~A16AD15~AD0DENDT/RMN/MXVccSTB8282/8283OE8286/8287T地址/数据地址存储器DATAI/O芯片DATABHEOEBHE20位16位地址总线数据总线第二章8086系统结构——8086系统配置——8086系统配置23:20:2928——最小模式系统8282/8283是三态缓冲的8位数据锁存器,8282的输入和输出信号同相(8283的输入和输出信号反相)。1、地址锁存器8282/8283第二章8086系统结构——8086系统配置23:20:29298286/8287是三态8位双向数据收发器,可增加驱动能力。8286数据输入与输出同相(8287数据输入与输出反相)。2、双向数据总线收发器8286/8287第二章8086系统结构——8086系统配置——最小模式系统23:20:2930产生CLK信号,该CLK信号是8086CPU的内部和外部的时间基准信号,由驱动门电路进行功率放大。功能:产生时钟信号、复位信号、就绪控制信号3、时钟发生器8284第二章8086系统结构——8086系统配置——最小模式系统23:20312.4.28086最大模式系统8086最大模式特点:CP