




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 基本概念(总线、堆栈等) Intel 8086微处理器的结构 Intel 8088微处理器的结构本章内容 了解三总线及堆栈的工作原理。 掌握Intel 8086系统的构成和工作原理 重点掌握Intel 8086微处理器的结构。学习目的2.1 8086微处理器的结构一、总线1. 总线的由来在计算机中,CPU与其他功能部件之间存在大量的信息交流,其间就需要使用通信线路连接起来,通信线的设置和连接可采用两种方式。(1) 专线式:将各个功能部件分别设置与其它部件通信的线路。 优点:传送速率高,它只受传送线本身的限制,且控制简单。 缺点: 机器所需要的信息传送线数量大,增加了复杂性,不便于实现机器的模
2、块和积木化。(2) 总线式:在多个功能部件之间设置公共的通信线即总线。图中当A和A门打开时,信息由A传至A;A和C 门打开时,信息便从A传至C 。ABCABC 总 线 示 意 图 总线上能同时传送二进制信息的位数称为总线宽度。见下图。 由于采用了分时传送的总线结构从而大大减少了机器中信息传送线的数目。a. 分时传送:多个部件并联在总线上,某一时刻,只允许一路信息在总线上传送。b. 控制复杂: 总线的发送端及接收端均有三态门电路。 打开三态门信息经总线传送到目的端。 若不传送信息,则使三态门处于高阻状态,相当于此部件在逻辑上与总线脱离联系。c. 系统结构简单,便于扩展。特点:2. 总线的分类 总
3、线按信息传送的方向可分为单向总线和双向总线。 单向总线只能向一个方向发送信息。 双向总线则可在两个方向传送。 总线按所传信息的类别,通常分为数据总线、地址总线和控制总线。(1) 数据总线 (Data Bus)是微处理器与存储器和I/O电路间数据交换的通道,可双向传送。数据总线的宽度一般与微处理器处理数据的字长相同,具有三态。(2) 地址总线 (Address Bus)是微处理器输出地址用的总线,它将地址送到存储器或I/O电路,用来确定存储器中信息存放的地址或I/O电路的地址,AB一般为单向、三状态。(3) 控制总线 (Control Bus)是用来传送控制信号,使各功能部件动作同步。二、Int
4、el 8086微处理器的结构 8086是Intel系列的16bit微处理器,属第三代。 8086有16bit数据总线和20bit地址线,可寻址1M空间。 8086采用单一+5V电源和单相时钟,频率为5MHZ。1. 总体功能结构状态标志寄存器EU控制器暂存寄存器 1 2 3 4 5 6(16位)总线控制逻辑地址总线地址加法器(20位)数据总线AH AH ALBH BLCH CLDH DLSPBPDISIAXBXCXDXAH CSDSESSSIP内部通讯寄存器ALU数据总线(16位)Q(总线)(8位)执行部件(EU)总线接口部件(BIU)ALU(队列)8086总线 8086CPU的内部结构8086
5、从功能结构来讲,分为两大部分,即总线接口部件BIU(Bus Interface Unit )和执行部件EU(Execution Unit)。(1) BIU部件由段寄存器、指令指针、地址加法器、指令队列缓冲器和控制电路等部分组成。 在执行指令时,如要取操作数,则也由BIU从内存或I/O接口指定区域取出,送给EU部件去执行。BIU负责与存储器、I/O接口电路传送信息。 BIU负责从指定内存单元取出指令,送到指令队列缓冲器中排队。 指令队列缓冲器是一个6个字节的RAM存储器(8088为4个字节),队列中最多可同时存放6个字节的指令,取来的指令是按字节顺序存放的。 当队列中有两个以上的指令字节空的时候
6、,BIU会自动地执行总线操作,继续取指令。BIU的组成 4个16位的段地址寄存器(CS、DS、ES、SS)、16位的指令指针寄存器 IP、20位的地址加法器、6字节的指令队列缓冲器、16位的内部暂存器和总线逻辑控制器 BIU各部件的作用 段地址寄存器CS:16位代码段寄存器,寄存程序代码段首地址的高16位。DS:16位数据段寄存器,寄存数据段首地址的高16位。ES:16位扩展段寄存器,寄存另一个数据段首地址的高16位。SS:16位堆栈段寄存器,寄存堆栈区数据段首地址的高16位。 16位的指令指针寄存器 IP:指出当前指令在程序代码段中的16位偏移量。 20位的地址加法器:用来产生20位物理地址
7、。段基址:段寄存器提供的16位信息,左移4位。偏移地址:EU提供的16位信息或者IP提供的16位信息。 6字节的指令队列缓冲器:用来存放预取指令的指令队列。 16位的内部暂存器:暂存输入/输出信息的寄存器。 总线逻辑控制器:以逻辑控制方式实现总线上的信息传送,如信息分时传送等。(2) EU部件 由ALU、通用寄存器、标志寄存器和控制电路组成,负责指令的执行。ALU、寄存器和数据传输通路均是16bit的。算术逻辑单元(ALU): 完成16位或8位算术、逻辑运算,如加减乘除与或非 控制单元:内部操作:由ALU完成外部操作:读写存储器或外设的操作,通过BIU和系统总线完成EU各部件的作用 4个通用寄
8、存器AX:16位的累加器BX:16位的基数寄存器CX:16位的计数寄存器DX:16位的数据寄存器4个专用寄存器BP:16位的基数指针寄存器SP:16位的堆栈指针寄存器堆栈:一组寄存器或一个存储区域,用来存放调用子程序或响应中断时的主程序断点地址,以及暂存其它寄存器的内容。当信息存入堆栈或从堆栈中取出信息时,都必须严格按照“先进后出”的规则进行。SI:16位的源变址寄存器DI:16位的目的变址寄存器算术逻辑部件ALU功能有两个:一是进行算术逻辑运算,二是按指令的寻址方式计算出所寻址的16位偏移地址。EU控制器:是执行指令的控制电路,实现从队列中取指令、译码、产生控制信号等。 若执行的是一条转移指
9、令,则存放在指令队列缓冲器中的指令就没有用了,应到新的地址单元去取出。BIU新取出的第一条指令将直接送到EU中去执行,随后重新填充指令队列缓冲器。EU从BIU中的指令队列缓冲器中取得指令和数据。 当指令要求将数据写到存储器和I/O电路,或需从存储器和I/O电路中读取数据时,EU向BIU发出请求,BIU自动完成这些操作。(3) 8086与传统微处理器指令执行过程比较取指3执行3取指4执行2取指2执行1取指1 传统微处理器的执行方式传统微处理器取指与执行串行进行,CPU的工作效率低。取数据取指5取指4取指3取指2取指1BIU执行4执行3执行2执行1等待EU 8086的指令执行方式8086CPU取指
10、与执行并行进行,大大减少了等待取指令所需时间,提高了CPU的工作效率。2. 寄存器结构8086CPU 内部寄存器DLDHCLCHBLBHALAH通用寄存器AXBXCXDXSPBP SI DI数据寄存器CSDSSSESIPFLAG变址寄存器指针寄存器堆栈指针基数指针源变址目的变址指令指针状态标志代码段数据段堆栈段附加段段寄存器控制寄存器(1) 通用寄存器8个16bit通用寄存器。 SP堆栈指针,存放堆栈栈顶的现行地址,与SS堆栈段寄存器一起方可确定堆栈的实际地址。 BP基址指针 SI源变址寄存器 AX,BX,CX,DX 4个16bit的通用数据寄存器,它们的高8bit AH,BH,CH,DH与低
11、8bit AL,BL,CL,DL又可分别看成8个8bit的寄存器。 DI目的变址寄存器一般用来存放有效地址详解:AX:累加器。乘除法运算、CPU与外设间传送数据时存放要传送的数据。BX:可以存放地址信息,进行寄存器间接寻址。XLAT指令。CX:计数器,存放计数初值。LOOP、移位指令。DX:I/O指令专用间接寻址寄存器。乘除法运算、CPU与外设间传送数据时存放端口地址。 (2) 控制寄存器 IP (Instruction Pointer) 指令指针与PC类似,但有区别:a. PC是指向下一条即将要执行的指令,而IP一般是指向下一次要取出的指令。b. 在8086中IP要与CS代码段寄存器的内容一
12、起,才能得到指令的实际地址。TFSFZFAFPFOFDFIFCF15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 标志寄存器格式a. 6个状态标志位,即CF、PF、AF、ZF、SF和 OF。 进位标志CF(Carry Flag): FLAG(标志寄存器)为16bit,其中9位有定义 当结果的最高位(字节D7,字D15)产生进位(加法运算)或借位(减法运算)时,CF=1;否则,CF=0,移位和循环指令也影响CF。 奇偶标志位PF(Parity Flag): 若结果中的低8位含有“1” 的个数为偶数,则PF=1;否则,PF=0。 辅助进位标志AF(Auxitiary Ca
13、rry Flag): 在低半字节向高半字节有进位或借位时AF=1;否则,AF=0。 零标志ZF(Zero Flag): 当运算结果为0时ZF=1;否则,ZF=0。 符号标志SF(Sign Flag): SF等于最高位,对于带符号数,最高位为符号位,SF=1运算结果为负,SF=0为正。溢出标志OF(Overflow Flag): 带符号数运算结果超出其表达范围时(字节数:-128+127,字类型数:-32768+32767), OF=1;否则, OF=0。用表达式给出(字节运算)(字运算)例: 2345H+3219H 6400H+7A3CHCF=0 PF=0 AF=0 ZF=0 SF=0 OF=
14、0CF=0 PF=1 AF=0 ZF=0 SF=1 OF=1标志名 标志为1 标志为0OF溢出(是/否)OVNVDF方向(减量/加量)DNUPIF中断(允许/关闭)EIDISF符号(负/正)NGPLZF零(是/否)ZRNZAF辅助进位(是/否)ACNAPF奇偶标志( 偶/奇)PEPOCF进位标志(是/否)CYNC 1 0 1 1 0 1 0 1 被加数8位 + 1 0 0 0 1 1 1 1 加数8位进位 1 1 1 1 1 1 1 0 1 0 0 0 1 0 0 和8位PSW标志寄存器运算器标志寄存器运算器被加数加数和进位例 8位二进制加法如下,给出各状态标志位的值 最高位D7位产生进位:
15、CF = 1 D3位产生进位: AF = 1相加的结果为44H, 不为0: ZF = 0结果的最高位为0: SF = 0两负数相加结果为正,溢出: OF = 1结果中有2个1,偶数个1: PF = 11 0 0 1 1 1 b. 3个控制标志位 追踪标志TF(Trace Flag): TF=1,处理器进入单步方式,以便调试,CPU每执行一条指令自动产生一个内部中断以利于检查指令的执行情况;TF=0为连续工作方式。中断允许标志IF(Interrupt-enable Flag):IF=1,允许CPU响应外部的可屏蔽中断请求;IF=0则禁止响应。IF对外部非屏蔽中断及内部中断不起作用。 方向标志DF
16、(Direction Flag): 在串操作指令中,DF=0时,变址指针自动增量;DF=1时,则自动减量。(3) 段寄存器CS代码段寄存器,用于定义代码段基地址,该段用于存放指令代码。DS数据段寄存器,用于定义数据段基地址,该段用于存放数据。有4个16bit的段寄存器SS堆栈段寄存器,用于定义堆栈段基地址,该段作堆栈区使用。ES附加数据段,用于定义附加段基地址,与DS类似。 上述4个段在8086寻址的1MB空间内,其位置不受限制,可连续排列、分隔排列、部分重叠甚致全部重叠。三、 8086存储器管理 8086采用分段管理的办法实现对1MB存储空间的管理(物理地址00000HFFFFFH),16b
17、it的段寄存器存放了该段的段首址,那么它是怎样产生20bit的物理地址的呢?我们通常采用在地址编号能被16整除的地方开始分段,此时地址的低4bit均为0,这时段寄存器只用来存放高16bit即可,以下有几个概念。 段内偏移量EA (Effective Address):是指某存储单元离开该段段首址的字节数。 逻辑地址(Logical Address) :是一对地址,包含段寄存器的内容和段内偏移量,如某条指令的逻辑地址可表达为:CS : IP。 物理地址PA (Physical Address): 是指某个存储单元实际的20bit的地址,又称绝对地址。由上面的定义可知:物理地址PA=对应段寄存器1
18、0H十段内偏移量EA。物理地址的形成如下图所示。物理地址的形成 段寄存器值 000020位物理地址19 015 015 0偏移地址加法器16 位 4位 例如:若CS=FFFFH,IP=0000H,则指令所在存储单元的物理地址为:PA= (CS) 10H + IP = FFFF0H 当取指令时,自动选择的段寄存器是CS,再加上IP所决定的16位偏移量,得到要取出指令具体的物理地址: 当涉及到取一个堆栈操作数时,自动选择的段寄存器是SS,再加上SP所决定的16位偏移量,得到堆栈操作所需要的20位物理地址。 当涉及到取一个操作数时,自动选择DS数据段寄存器或ES附加段寄存器,再加上16位偏移量,得到
19、操作数的20位物理地址。16位偏移量取决于指令的寻址方式。如下图所示:IPCSSI,DI或BXDSSP或BPSS代码段数据段堆栈段SEL A18-A0512KD7-D0SEL A18-A0512KD7-D0 A19-A1BHEA0D15D8D7D08086系统的存储器组织00000H00002H0FFFFEH00001H00003H0FFFFFHBHEA0操作数据引脚00从偶地址读/写一个字AD15-D010从偶地址读/写一个字节AD7-D001从奇地址读/写一个字节AD15-D80110从奇地址读/写一个字(分两个总线周期实现)AD15-D8 AD7-D0注:从奇地址读/写一个字时,先从奇地
20、址读/写一个字节,再从偶地址读/写一个字节,分两个总线周期实现。2.2 8086的引脚信号及工作模式 最小模式:即由8086组成的单处理器系统,所有的总线控制信号由8086直接产生,系统中的总线控制逻辑电路被减到最少。 最大模式:即由8086组成的中等规模或者大型的系统。包含两个或多个微处理器,8086为主处理器,其它的为协处理器。一、8086的两种工作模式 8086采用双列直插式封装,有40个引脚(如右图所示),但总线信号数量却大于40,故8086采用了分时复用技术,部分引脚传送两种总线信号。二、8086引脚图12345678910111213141516171819204039383736
21、353433323130292827262524232221GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCCAD15A16/ S3A17/ S4A18/ S5A19/ S6BHE/ S7MN/MXRDHOLD (RQ/GT0)HLDA (RQ/GT1)WR (LOCK)M/IO (S2)DT/R (S1)DEN (S0)ALE (QS0)INTA (QS1)TESTREADYRESET8086CPU8086的引脚信号注:括号内为该引脚在最大模式下的名称8086CPU 的引脚特性数据/地址、状态/地址复用线
22、的特点 减少了 8086CPU的引脚线 需解决 数据/地址线的分离 功能各异:不同控制线具有不同的作用 方向确定:仅为单向输入或输出 电平触发:不同控制线有不同的电平触发方式 VCC +5V GND 地 控制线的特点 电源线8086CPU 的地址、数据线、状态线8086CPU的地址/数据复用线 8086CPU的地址/状态复用线 AD0 AD15A16/S3 A19/S61. 最小模式下引脚信号及功能:(1) 地址/数据总线AD15AD0(双向、三态) 在一个总线周期的第一个时钟周期用于传送低16bit地址信息,并用地址锁存器锁存以免丢失, 其它时钟周期可用于传送数据信息,分时传送。当8086执
23、行中断响应周期、保持响应周期时,这些引脚处于高阻状态。(2) 地址/状态信号线A19/S6A16/S3(输出、三态) 在总线周期的第一个时钟周期(T1)用于输出地址信号的最高4bit并锁存。 其它时钟周期中用来输出状态信号S6S3,其中:S6低电平,表示8086当前与总线相连。S5表示标志寄存器中“中断允许位”的状态(IF)。S4, S3的组合指出了分段情况。如下表所示。 S4和S3的组合提供的分段信息表S4S3意 义00110101当前正在使用ES附加段当前正在使用SS堆栈段当前正在使用CS或者未使用任何段寄存器当前正在使用DS数据段 当CPU处于“保持响应”状态时,A19/S6A16/S3
24、置为高阻状态。 若执行I/O指令,则由于8086只访问64K个端口,在T1周期这4个引脚为低电平。(3) BHE/S7高8bit数据总线允许/状态线(输出, 三态) 在T1状态,8086在BHE/S7引脚输出BHE信号,表示高8bit数据总线D15D8上的数据有效,与地址线A0一起产生存储器的选择逻辑信号。 在其它时钟周期,输出为状态信号S7。但8086芯片, S7未定义。下面介绍引脚中的控制信号。(4) MN/MX最小/最大模式控制信息低电平 8086处于最大模式。高电平 8086处于最小模式。(5) RD读信号 (输出,三态)低电平有效。表示将对内存或I/O端口读操作。(6) M/IO,存
25、储器/输入输出控制信息 (输出,三态)区分CPU进行的是存储器还是I/O访问,见下表。RDM/IO操 作1000读存储器数据读I / O端口数据 RD与 M/IO的组合及对应的操作表(7) WR写信号 (输出,三态)1000CPU对存储器进行写操作CPU对I/O端口进行写操作 WR与 M/IO 的组合及对应的操作表操 作WRM/IO低电平有效。WR与M/IO的组合对应的操作如下表所示。(8) ALE地址锁存允许信号 (输出)高电平有效,此信号在T1状态有效,为地址码锁存的选通信号,送地址锁存器。(9) READY准备就绪信号 (输入)高电平有效,是从所寻址的存储器或I/O电路来的响应信号,用于
26、解决CPU与慢速存储器或I/O电路的同步问题。CPU在T3周期开始采样READY线,若为低电平,则T3之后插入TW等待周期直到READY为高电平,进入T4完成数据传送。(10) INTR可屏蔽中断请求信号 (输入) 高电平有效,8086在每一个指令周期的最后一个T状态采样这条线,若为有效,且IF=1,则8086在执行完当前指令即响应中断。(11) INTA中断响应信号 (输出,三态)低电平有效,CPU响应外部可屏蔽中断请求以后,便发出中断响应信号,作为对中断请求的回答。此信号在每一个中断响应周期的T2、T3和TW周期均有效,为中断矢量的读选通信号。(12) NMI非屏蔽中断请求信号 (输入)边
27、沿触发,该线上的中断请求信号不能用软件屏蔽,电平由低到高,便在当前指令结束后引起中断。(13) RESET系统复位信号 (输入)高电平有效,8086要求此信号起码维持4个时钟周期;若初次加电复位,持续时间不小于50s。RESET为高电平时,8086立即结束现行操作,进入内部复位状态,CPU各内部寄存器被设置为初值:CS=FFFFH,Flag、IP、DS、ES、SS及其它寄存器均初始化为0000H。8086CPU复位后寄存器的初值表寄存器初始状态寄存器初始状态状态标志寄存器清0IP0000HCSFFFFHDS0000HSS0000HES0000H指令队列寄存器清空其他寄存器0000H(14) D
28、T/ R数据收发控制信号 (输出、三态) 为增强数据总线的驱动能力,8086可外接驱动器8286,DT/R即为8086输出给数据收发器8286的控制信号。 DT/R高电平,8086输出的数据经8286送到数据总线; DT/R低电平,收发器8286则把数据总线上的数据传送到8086。 系统工作在DMA方式时,DT/R为高阻状态。 高电平有效。系统中其他的总线主设备要获得对总线的控制权时,向8086发出高电平的HOLD信号,8086在每个时钟周期的上升沿对HOLD引脚信号进行检测,若为高电平,则在当前总线周期结束时,予以响应。(16) HOLD保持请求信号 (输入)(15) DEN数据允许信号(输
29、出,三态) 低电平有效,也是8086控制外接的数据收发器,低电平时开启收发器,传送数据有效; 高电平时,则禁止传送。(17) HLDA保持响应信号 (输出) 高电平有效。当CPU响应保持请求HOLD时,便发出HLDA高电平的应答信号,从而将总线控制权让给发出保持请求的设备,直到该设备又将HOLD信号变为低电平,CPU才收回总线控制权,将HLDA信号置为低电平。 低电平有效。与WAIT等待指令结合使用,当CPU执行WAIT指令时,CPU处于空转状态进行等待直到检测到TEST信号有效时结束,CPU继续往下执行指令。(18) TEST测试信号 (输入)(19) CLK系统时钟输入信号 时钟信号为CP
30、U和总线控制逻辑电路提供定时基准。常用INTEL8284A时钟发生器提供CLK信号。最小工作模式下的硬件电路缓冲器 基本电路 三态门INOUTGGINOUTLLLLHHHLZHHZ逻辑图真值表 缓冲器分输入缓冲器和输出缓冲器两种。前者的作用是将外设送来的数据暂时存放,以便处理器将它取走;后者的作用是用来暂时存放处理器送往外设的数据。有了数控缓冲器,就可以使高速工作的CPU与慢速工作的外设起协调和缓冲作用,实现数据传送的同步。由于缓冲器接在数据总线上,故必须具有三态输出功能。最小工作模式下的硬件电路8286 8 位双向缓冲器注:/OE为片选控制;T为数据传送方向控制最小工作模式下的硬件电路双向缓
31、冲器/DENDT/RG1G2LLHLLHLHHLLLHHLL读写高阻高阻逻辑图真值表注:/DEN 读写有效控制; DT/R 读写方向控制最小工作模式下的硬件电路常用缓冲器芯片 专用 8 位缓冲器芯片 Intel 8286 输入/输出同相型 Intel 8287 输入/输出反相型 通用 8 位缓冲器芯片 74LS244 单向缓冲器 74LS245 双向缓冲器注: /OE 片选有效控制; T 数据方向控制最小工作模式下的硬件电路锁存器 基本电路 D 触发器DQAB/DBABGALE逻辑图GDQLLQnLHQnHLLHHH真值表波形图DQG锁存器就是把当前的状态锁存起来,使CPU送出的数据在接口电路
32、的输出端保持一段时间锁存后状态不再发生变化,直到解除锁定。还有些芯片具有锁存器,比如芯片74LS244就具有锁存的功能,它可以通过把一个引脚置高后,输出就会保持现有的状态,直到把该引脚清0后才能继续变化。 最小工作模式下的硬件电路8282 8 位锁存器注:/OE为片选控制;STB为数据锁存控制工作在最小模式下8086的典型配置如右图所示。8086地址锁存器STB(82862)OE(选用)数据总线地址总线(82823)READYRESETMN/MXALEBHEA19A16AD15AD0DENDT/RM/IOWRRDHOLDHLDAINTRINTA(8284A)X1 X2CLKREADYRESET
33、+5VBHEA19A0D15D02. 最大模式下引脚信号及功能 若将8086的MN/MX引脚接地便工作在最大模式。此时仅2431引脚信号与最小模式不同,如下表所示。引脚编号最小模式最大模式2425262728293031QS1QS0S0S1S2LOCKRQ/GT1RQ/GT0INTAALEDENDT/RM/IOWRHLDAHOLD 两种模式下8086的2431引脚信号表(1) QS1和QS0指令队列状态信号 (输出)QS1和QS0编码与队列状态表QS1QS0 队列状态00110101空操作取走指令的第一个字节队列空从队列里取出的字节是指令的后续字节两信号编码和对应的队列状态如下表所示。 这三个
34、状态信号组成的编码表示了当前总线周期是何种操作周期,如下表所示。 2, 1和 0编码与总线周期表发中断响应信号读I/O端口写I/O端口暂停取指令读存储器写存储器 无源状态010101010000111100110011S总线周期2S10S(2) S2,S1和 S0总线周期状态信号(输出,三态)(3) LOCK总线封锁信号 (输出,三态)低电平有效。此信号有效时,系统中其他总线主部件不能占有总线。此信号由前缀指令LOCK使其有效,并保持到LOCK前缀后的一条指令执行完毕。另外8086在两个中断响应周期之间,LOCK信号也自动变为有效电平,以防其它部件占有总线。 下图给出了8086在最大模式下的典
35、型配置。(4) RQ/GT1和RQ/GT0总线请求/允许信号 (双向)供CPU以外的两个处理器用以发出使用总线的请求信号和接收CPU对总线请求信号的回答信号,请求与允许信号在同一引脚上传输,但方向相反。其中RQ/GT0优先级较高。8086在最大模式下的典型配置8086CPU时钟发生器(8284A)8288CLKDENALEMN / MXSTBOEOETIORCIOWC数据总线MRDCMWTCBHE8282382862CLKREADYRESETBHES0S1S2S0S1S2DT/RA19A0D15D0INTAA19A16AD15AD0 1READYRESET总线控制器地址总线 由图可以看出:80
36、86在最大与最小模式下的主要区别是增加了一个8288总线控制器。8288接受8086CPU的状态信号S2、S1和S0,经过变换和组合,由8288发出对存储器和I/O端口的读/写信号,对锁存器8282及对总线收发器8286的控制信号。三、8086系统中的堆栈用作数据暂时存储的一组寄存器或存储单元称为堆栈。堆栈操作有两种:压入(PUSH)和弹出(POP),而SP始终指向堆栈栈顶的新位置。1. 堆栈的定义堆栈中数据按“后进先出”的结构方式进行处理,即新入栈的依次堆放在原来数据之上,存放信息的最后一个单元叫做栈顶,用堆栈指针SP(Stack Pointer)指示。堆栈的作用堆栈使用原则 堆栈操作指令
37、将需要放入堆栈的数据入栈,将需要调出堆栈的数据出栈 调用过程及中断服务程序时保护现场 相应数据入栈 返回过程及中断服务程序时恢复现场 相应数据出栈先进后出原则(LIFO)注:指令队列为先进先出原则(FIFO)PUSH、POP;CALL、RET;INT、IRET8086 CPU 的堆栈结构堆栈段、堆栈栈底、堆栈栈顶 堆栈段 堆栈栈底 堆栈栈顶 堆栈段段首地址存放在段寄存器 SS 中在定义堆栈长度时确定由寄存器 SP 中的值确定注:栈顶的物理地址为 SS:SP8086 CPU 的堆栈结构堆栈图(向下生成法)16 位机堆栈图8 位机堆栈图栈顶栈顶栈底栈底2200H2201H2202H2205H221
38、0H2212H2214H2216H2211H2213H2215H2217H2219H堆栈初始化操作堆栈段起始地址栈底及初始栈顶 地址 存储单元10200H10202H10204H10206H10208H1020AH1020CH10230H 00 11 SS 10 20SP初值 00 30PUSH 堆栈入栈操作栈顶PUSH AX 12 34PUSH BX 1A B110200H10202H10204H10206H10208H1022CH1022EH10230H 00 11 SS 10 20 SP 00 30栈底00 2E00 30堆栈段起始地址34 12B1 1A00 2E00 2C注:入栈时栈
39、顶指针 SP 的值减小POP 堆栈出栈操作栈顶POP AXPOP BX10200H10202H10204H10206H10208H1022CH B1 1A1022EH 34 1210230H 00 11 SS 10 20 SP 00 2C(栈底)堆栈段起始地址00 2E00 30 1A B1 12 34注:出栈时栈顶指针 SP 的值增大8086 CPU 的堆栈结构栈顶指针 SP 中值的自动变化 特点 8 位机(Z80CPU) 16 位机(8086CPU) 入栈: (SP) 1 (SP)出栈: (SP) + 1 (SP)入栈: (SP) 2 (SP)出栈: (SP) + 2 (SP)8086 CPU 的堆栈结构PUSH、POP 指令运行特点 PUSH AX(SP) 2 (SP)(AX) (SP) POP BX (SP) (BX)(SP) + 2 (SP)8086 CPU 对存储空间的分配 0000
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年血糖监测试题及答案多选
- 超声波清洗机操作规程
- 2025年福州社区招考试题及答案
- 查对制度复习试题附答案
- 2025年声控电器面试试题及答案
- 2025年捍卫者性格测试题及答案
- 2025年保密测试题及答案
- 2025年现代管理考试题及答案
- 重建代码-叠层-傅里叶得层重建-傅里叶叠层-
- 2025年以往教资面试试题及答案
- 2025年苏州市职业大学单招职业适应性测试题库完美版
- (二模)2025年宝鸡市高考模拟检测试题(二)物理试卷(含答案)
- 基地种植合作合同范本
- 露天煤矿安全生产技术露天煤矿安全管理培训
- 2025年安徽警官职业学院单招职业倾向性测试题库标准卷
- 2025年浙江宁波市江北区民政局招聘编外工作人员1人历年高频重点模拟试卷提升(共500题附带答案详解)
- 2025年湖南大众传媒职业技术学院单招职业技能测试题库学生专用
- YB-T 6121-2023 钢的晶间氧化深度测定方法
- 2025届中交投资有限公司全球校园招聘来了笔试参考题库附带答案详解
- 2025年南京旅游职业学院高职单招职业技能测试近5年常考版参考题库含答案解析
- 物流仓储的火灾防范
评论
0/150
提交评论