微处理器的编程结构

上传人:gb****c 文档编号:243355990 上传时间:2024-09-21 格式:PPT 页数:68 大小:871.50KB
返回 下载 相关 举报
微处理器的编程结构_第1页
第1页 / 共68页
微处理器的编程结构_第2页
第2页 / 共68页
微处理器的编程结构_第3页
第3页 / 共68页
点击查看更多>>
资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第,3,章,8086/8088,3.1 8086,微处理器的结构,功能结构、编程结构、引脚信号,3.2 8086,存储器组织和管理,重点掌握处理器的编程结构及存储器组织和管理,8086,微处理器是,Intel,系列的,16,位,微处理器,内部包含约,29000,个半导体管。,16,根数据线,,可以同时处理,16,位二进制数据,20,根地址线,,可用,20,位二进制数码编写地址,存储器以字节(,8,位二进制数据)为单位组织存储,可寻址的地址空间可达,2,20,,即,1M,字节,时钟频率为,5MHz,,工作时,只要一个,5V,电源,,除了数据总线宽度不同外,,8088,与,8086,在其他方面几乎完全相同。它们的另一个突出特点是其多重处理的能力,能极方便的和数值数据处理器(,NPX,),8087,,输入输出,I/O,处理器(,IOP,),8089,或其他处理器组成多处理器系统,大幅度提高系统数据吞吐能力和数据处理能力。,8086/8088,微处理器简介,3.1.1 8086/8088,的功能结构,一、总线接口部件,BIU,功能:,负责微处理器与存储器、,I/O,接口传送数据。包括取指令、传送数据和形成,20,位的物理地址。,CPU,执行指令时,总线接口部件要配合执行部件从指定的内存单元或者外设端口中取数据或指令,将数据先放入“指令队列”排队,当需要时,再由执行部件,EU,从中取出;或者把执行部件,EU,的操作结果传送到指定的内存单元或外设端口中。,(,1,),4,个,16,位的段地址寄存器:,CS16,位的代码段寄存器:用来存放当前程序所在段的段基;,DS16,位的数据段寄存器:用来存放当前程序所用数据段的段基址;,ES16,位的扩展段寄存器:用来存放辅助数据所在段的段基址;,SS16,位的堆栈段寄存器:用来存放当前程序所用堆栈段的段基,(,2,),16,位的指令指针寄存器,IP,:,用来存放下一条指令的偏移地址,,IP,在当前程序运行中能够进行自动加,1,的修正,使其指向下一条指令;,(,3,),20,位的地址加法器:,用来形成,20,位的物理地址;,(,4,),6,字节的指令队列缓冲器。,(,5,)总线控制部件,,用来产生并发出总线控制信号,实现对存储器、,I/O,端口的读写控制,并将内部总线与外部总线相连接。,总线接口部件的组成部分:,二、执行部件,EU,ALU,算术逻辑运算单元,PSW,标志寄存器,存放运算结果特征,寄存器组,存放中间结果,EU,控制器,取指令控制、时序控制,指令译码 、执行指令,向,BIU,提供逻辑地址的偏移量,管理通用寄存器和标志寄存器,功能:,组成:,(,1,)算术逻辑单元,ALU,:,进行算术、逻辑运算,以及按照寻址方式计算寻址单元的偏移量。,(,2,)暂存器:,协助,ALU,完成运算,暂时存放参加运算的数据。,(,3,),16,位的标志寄存器,FR,:,存放控制标志和反映,CPU,运行的状态特征。,(,4,)通用寄存器组:,包括,4,个通用寄存器,即,AX,(也称累加器)、,BX,、,CX,、,DX,;以及,4,个专用寄存器:,基数指针寄存器,BP,:,存放数据段中某一单元的偏移地址;也可指示堆栈段中某一单元的偏移地址;堆栈指针寄存器,SP,:存放堆栈栈顶偏移地址;,源变址寄存器,SI,:,与数据段寄存器,DS,连用,确定数据段中某一存储单元的地址;,目的变址寄存器,DI,:,与数据段寄存器,DS,连用,确定数据段中某一存储单元的地址;,(,5,),EU,控制电路:,由定时电路、控制电路和状态逻辑电路组合而成。,3,“流水线”结构的指令队列,总线接口部件,BIU,和执行部件,EU,并不是同步工作的, 每当,EU,从指令队列头部取出一条指令并在分析、执行指令这段时间内,或当指令队列中有,2,个空字节时,,BIU,会自动把指令取到指令队列中。当指令队列已满(,6,个字节),而且,EU,对,BIU,又无总线访问请求时,,BIU,便进入空闲状态;但,EU,在分析、执行指令过程中,如须访问内存或,I/O,设备,,EU,就会向,BIU,申请总线周期,若,BIU,总线空闲,就会立即响应;若,BIU,此时正在取一条指令,,EU,就必须等待,BIU,取指令的操作完成以后,才会得到,BIU,响应。,在,8086/8088,中,,EU,和,BIU,这种并行的工作方式有力地提高了工作效率。,3.1.2 8086/8088,的编程结构,CS,DS,ES,SS,FS,GS,IP,FLAGS,EIP,EFLAGS,SP,BP,SI,DI,AH AL,BH BL,DH DL,AH AL,CH CL,AX,BX,CX,DX,0,15,31,EAX,EBX,ECX,EDX,ESP,EBP,ESI,EDI,1,通用寄存器,通用数据寄存器,用来存放,8,位、,16,位或,32,位的操作数。由于具有良好的通用性,因而被称为通用寄存器,其中包括,AX,,,BX,,,CX,,,DX,。通用寄存器主要用来保存算术或逻辑运算的操作数、中间运算结果。它们既可以作为一个,16,位的寄存器使用,也可以分别作为两个,8,位的寄存器使用,高位字节的寄存器为,AH,,,BH,,,CH,,,DH,;低位字节的寄存器为,AL,,,BL,,,CL,,,DL,。,指针寄存器和变址寄存器,堆栈指针寄存器,ESP,、 基址指针寄存器,EBP,源变址寄存器,ESI,、 目的变址寄存器,EDI,2.,指令指针寄存器,EIP,3.,标志寄存器,EFLAGS,4.,段寄存器,寄存器,执行操作,AX,累加器,,I/O,指令中用作数据寄存器整字乘法,整字除法,整字,I/O,,存放被乘数,乘积,被除数,商,AL,I/O,指令中用作数据寄存器字节乘法,字节除法,字节,I/O,。存放被乘数,乘积,被除数,商查表,十进制算术运算中用作累加器;在,XLAT,(换码)指令中用作累加器,AH,字节乘法,字节除法在,LAHF,(标志寄存器传送)指令中用作目标寄存器,BX,用作间接寻址的地址寄存器和基地址寄存器;查表;在,XLAT,(换码)指令中用作基地址寄存器,寄存器的特殊用途和隐含用法,CX,计数寄存器,在,LOOP(,循环,),和串操作中充当计数器字符串操作,循环,CL,在变量的移位和循环移位指令中用作移位次数计数器,DX,在乘法、除法指令中作为辅助累加器;,在乘法、除法指令中存放乘积高位、被除数高位或余数,在间接寻址的,I/O,指令中作为地址寄存器;,SP,堆栈操作中用作堆栈指针,BP,在间接寻址中用作基址寄存器;,SI,在字符串操作中用作变址寄存器;在间接寻址中用作变址寄存器;,DI,字符串操作,寄存器的特殊用途和隐含用法,标志寄存器共有,16,位,其中有,7,位未用,已用的,9,个标志位按功能可分为,6,个条件标志和,3,个控制标志。,(,1,)条件标志,(条件标志用于存放程序运行的状态信息,由硬件自动设定。控 制标志由软件设定,用于中断、串操作等控制):,OF,:溢出标志,。反映带符号数运算结果是否超过机器所能表示的数值范围,对字节运算为,-128+127,,对字运算为,-32768+32767,。若超过上述范围称为“溢出”,,OF,置,1,。否则,置,0,。实际机器在进行处理时,是判断最高位的进位(,CF,)与次高位的进位是否相同,若二者相同,则,OF,。否则,,OF,。,标志寄存器(,Flag Register,),图,2-2,标志寄存器结构图,SF,:符号标志,反映运算结果的符号。若结果为负数,即最高位为,1,时,,SF,置,1,,否则,置,0,。,SF,取值与运算结果最高位一致。,ZF,:零标志,反映运算结果是否为零。若结果为零,,ZF,置,1,,否则,置,0,。,AF,:半进位标志。,反映一个,8,位量的低,4,位向高,4,位有无进位或借位。有则置,1,,否则,置,0,。用于,BCD,码算术运算指令。,PF,:奇偶标志。反映操作结果的低,8,位中“,1”,的个数的奇偶性。若“,1”,的个数为偶数,,PF,置,1,,否则,置,0,。,CF,:进位标志,反映算术运算后最高位出现进位或借位的情况。有则置,1,,否则,置,0,。移位和循环指令也会改变,CF,的值。,标志寄存器(,Flag Register,),(,2,)控制标志,DF,:方向标志,进行字符串操作时,每执行一条串操作指令,对地址会进行一次自动调整,由,DF,决定地址是增还是减。若,DF,为,1,,则为减,否则为增。,IF,:中断标志,表示系统是否允许“外部可屏蔽中断”(其含义见后述“中断”内容)。若,IF,为,1,,表示允许,否则表示不允许。,IF,对非屏蔽中断和内部中断请求不起作用。该标志可由中断控制指令设置或清除。,TF,:陷阱标志,。,TF,为,1,时,,CPU,每执行完一条指令,便自动产生一个内部中断,可以利用它对程序进行逐条检查。程序调试过程中的“单步执行”就是利用这个标志。,标志寄存器(,Flag Register,),3.1.3 8086/8088,的引脚信号,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,40,39,38,37,36,35,34,33,32,31,30,29,28,27,26,25,24,23,22,21,GND,AD,14,AD,13,AD,12,AD,11,AD,10,AD,9,AD,8,AD,7,AD,6,AD,5,AD,4,AD,3,AD,2,AD,1,AD,0,NMI,INTR,CLK,GND,VCC,(,5V,),AD,15,A,16,/ S,3,A,17,/ S,4,A,18,/ S,5,A,19,/ S,6,BHE*/S7,MN / MX*,RD*,HOLD (RQ*/ GT,0,*),HLDA (RQ* /GT,1,*),WR* (LOCK*),M/IO * ( S,2,*,),DT / R* ( S,1,*,),DEN* ( S,0,),ALE ( QS,0,),INTA* ( QS,1,),TEST*,READY,RESET,8086,一、,8086/8088,的两种工作模式,(,1,)最小工作模式,系统中只有,8086/8088,一个微处理器。,所有的总线控制信号都直接由,8086/8088,产生。,(,2,)最大工作模式,构成较大规模的应用系统,系统中包含两个或多个微处理器,其中,8086/8088,是主处理器,其他的处理器称为协处理器。和,8086/8088,配合使用的协处理器主要有两个:数值运算协处理器,8087,和输入,/,输出协处理器,8089,。,8086/8088,和总线控制器,8288,等共同形成总线控制信号。,两种模式利用,MN/MX*,引脚区别,MN/MX,接高电平为最小工作模式,MN/MX,接低电平为最大工作模式,两种模式下的内部操作并没有区别,IBM PC/XT,采用最大模式,本节以最小模式展开基本原理,8086/8088,的两种工作模式,1.,数据和地址引脚,AD,7,AD,0,(,Address/Data,),地址,/,数据,分时复用,引脚,双向、三态,在访问存储器或外设的总线操作周期中,这些引脚在第一个时钟周期输出存储器或,I/O,端口的低,8,位地址,A,7,A,0,其他时间用于传送,8,位数据,D,7,D,0,AD,15,AD,8,(,Address,),中间,8,位,地址引脚,,输出、三态,这些引脚在访问存储器或外设时,提供全部,20,位地址中的中间,8,位地址,A,15,A,8,二、引脚功能,1.,数据和地址引脚,(续,2,),A,19,/S,6,A,16,/S,3,(,Address/Status,),地址,/,状态,分时复用引脚,输出、三态,这些引脚在访问存储器的第一个时钟周期输出高,4,位地址,A,19,A,16,在访问外设的第一个时钟周期全部输出低电平无效,其他时间输出状态信号,S,6,S,3,2.,读写控制引脚,ALE,(,Address Latch Enable,),地址锁存允许,,输出、三态、高电平有效,ALE,引脚高有效时,表示复用引脚:,AD,7,AD,0,和,A,19,/S,6,A,16,/S,3,正在传送地址信息,由于地址信息在这些复用引脚上出现的时间很短暂,所以系统可以利用,ALE,引脚将地址锁存起来,2.,读写控制引脚,(续,1,),M/IO*,(,Input and Output/Memory,),I/O,或存储器访问,,输出、三态,该引脚输出低电平时,表示,CPU,将访问,I/O,端口,这时地址总线,A,15,A,0,提供,16,位,I/O,口地址,该引脚输出高电平时,表示,CPU,将访问存储器,这时地址总线,A,19,A,0,提供,20,位存储器地址,2.,读写控制引脚,(续,2,),WR*,(,Write,),写控制,,输出、三态、低电平有效,有效时,表示,CPU,正在写出数据给存储器或,I/O,端口,RD*,(,Read,),读控制,,输出、三态、低电平有效,有效时,表示,CPU,正在从存储器或,I/O,端口读入数据,2.,读写控制引脚,(续,3,),M/IO*,、,WR*,和,RD*,是最基本的控制信号,组合,后,控制,4,种基本的总线周期,总线周期,M/IO*,WR*,RD*,存储器读,高,高,低,存储器写,高,低,高,I/O,读,低,高,低,I/O,写,低,低,高,2.,读写控制引脚,(续,4,),READY,存储器或,I/O,口就绪,,输入、高电平有效,在总线操作周期中,,8088 CPU,会在第,3,个时钟周期的前沿测试该引脚,如果测到高有效,,CPU,直接进入第,4,个时钟周期,如果测到无效,,CPU,将插入等待周期,Tw,CPU,在等待周期中仍然要监测,READY,信号,有效则进入第,4,个时钟周期,否则继续插入等待周期,Tw,。,2.,读写控制引脚,(续,5,),DEN*,(,Data Enable,),数据允许,,输出、三态、低电平有效,有效时,表示当前数据总线上正在传送数据,可利用他来控制对数据总线的驱动,DT/R*,(,Data Transmit/Receive,),数据发送,/,接收,,输出、三态,该信号表明当前总线上数据的流向,高电平时数据自,CPU,输出(发送),低电平时数据输入,CPU,(接收),2.,读写控制引脚,(续,6,),SS,0,*,(,System Status 0,),最小模式模式下的,状态输出,信号,它与,IO/M*,和,DT/R*,一道,通过编码指示,CPU,在最小模式下的,8,种工作状态:,1.,取指,5.,中断响应,2.,存储器读,6. I/O,读,3.,存储器写,7. I/O,写,4.,过渡状态,8.,暂停,2.,读写控制引脚,(续,6,),BHE*/S7,(,Bus Higher Enable,),最小模式模式下的,高,8,位数据总线(,AD15AD8,)有效信号,三态,输出,BHE*,在总线周期的,T1,状态输出,,S7,是状态信号,在,T2T4,时输出,在,8088,中,此信号被,SS0,所替代。,3.,中断请求和响应引脚,INTR,(,Interrupt Request,),可屏蔽中断请求,,输入、高电平有效,有效时,表示请求设备向,CPU,申请可屏蔽中断,该请求的优先级别较低,并可通过关中断指令,CLI,清除标志寄存器中的,IF,标志、从而对中断请求进行屏蔽,INTA,(,Interrupt Acknowledge,),可屏蔽中断响应,,输出、低电平有效,有效时,表示来自,INTR,引脚的中断请求已被,CPU,响应,,CPU,进入中断响应周期,中断响应周期是连续的两个,每个都发出有效响应信号,以便通知外设他们的中断请求已被响应、并令有关设备将中断向量号送到数据总线,3.,中断请求和响应引脚,(续,2,),NMI,(,Non-Maskable Interrupt,),不可屏蔽中断请求,,输入、上升沿有效,有效时,表示外界向,CPU,申请不可屏蔽中断,该请求的优先级别高于,INTR,,并且不能在,CPU,内被屏蔽,当系统发生紧急情况时,可通过他向,CPU,申请不可屏蔽中断服务,4.,总线请求和响应引脚,HOLD,总线保持,(即总线请求),输入、高电平有效,有效时,表示总线请求设备向,CPU,申请占有总线,该信号从有效回到无效时,表示总线请求设备对总线的使用已经结束,通知,CPU,收回对总线的控制权,HLDA,(,HOLD Acknowledge,),总线保持响应,(即总线响应),输出、高电平有效,有效时,表示,CPU,已响应总线请求并已将总线释放,此时,CPU,的,地址总线,、,数据总线,及,具有三态输出能力的控制总线,将全面呈现高阻,使总线请求设备可以顺利接管总线,待到总线请求信号,HOLD,无效,总线响应信号,HLDA,也转为无效,,CPU,重新获得总线控制权,5.,其它引脚,RESET,复位请求,,输入、高电平有效,该信号有效,将使,CPU,回到其初始状态;当他再度返回无效时,,CPU,将重新开始工作,8086,复位后,CS,FFFFH,、,IP,0000H,,所以程序入口在物理地址,FFFF0H,CLK,(,Clock,),时钟输入,系统通过该引脚给,CPU,提供内部定时信号。,8086,的标准工作时钟为,5MHz,IBM PC/XT,机的,8088,采用了,4.77MHz,的时钟,其周期约为,210ns,5.,其它引脚,(续,2,),Vcc,电源输入,,向,CPU,提供,5V,电源,GND,接地,,向,CPU,提供参考地电平,MN/MX*,(,Minimum/Maximum,),模式选择,,输入,接高电平时,,8088,引脚工作在最小模式;反之,,8088,工作在最大模式,“引脚”小结,CPU,引脚是系统总线的基本信号,可以分成三类信号:,16,位数据线:,D,0,D,15,20,位地址线:,A,0,A,19,控制线:,ALE,、,IO/M*,、,WR*,、,RD*,、,READY,INTR,、,INTA*,、,NMI,,,HOLD,、,HLDA,RESET,、,CLK,、,Vcc,、,GND,最小模式总线形成,(,Intel,产品手册推荐电路,),RESET,TEST,HOLD,HLDA,NMI,INTR,INTA,M / IO,WR,RD,READY CLK,READY,MN / MX,+5V,控制总线,地址总线,A,19,A,0,数据总线,D,15,D,0,ALE,DT / R,DEN,8086,CPU,STB,8282,OE,T,OE,8286,8284A,系统总线,A19A16,AD15AD0,BHE,*,BHE,*,READY,信号经过,8284A,后,起到同步的作用,三 、,8088,的总线时序,(续,1,),1,、总线周期的概念,时钟周期,是微处理器的最小定时单位,由,CPU,主频决定;,完成一个独立的操作所需的时间称为,机器周期,,一个机器周期包含若干个时钟周期;,总线周期,是指完成一次总线操作所需要的读或写的机器周期,通常用时钟周期的个数来表示,总线操作是指,CPU,通过总线对外的各种操作主要有:,存储器读、,I/O,读操作,存储器写、,I/O,写操作,中断响应操作,总线请求及响应操作,CPU,正在进行内部操作、并不进行实际对外操作的空闲状态,Ti,指令周期,是指一条指令经取指、译码、读写操作数到执行完成的过程。若干总线周期组成一个指令周期,描述总线操作的微处理器时序有三级:,指令周期 总线周期 时钟周期,8086,的基本总线周期包含,4,个时钟周期,4,个时钟周期编号为,T,1,、,T,2,、,T,3,和,T,4,总线周期中的时钟周期也被称作“,T,状态”,时钟周期的时间长度就是时钟频率的倒数,当需要延长总线周期时需要插入等待状态,Tw,任何指令的取指阶段都需要存储器读总线周期,读取的内容是指令代码,任何一条以存储单元为源操作数的指令都将引起,存储器读总线周期,,任何一条以存储单元为目的操作数的指令都将引起,存储器写总线周期,只有执行,IN,指令才出现,I/O,读总线周期,,执行,OUT,指令才出现,I/O,写总线周期,CPU,响应可屏蔽中断时生成,中断响应总线周期,总线操作中如何实现时序同步是关键,CPU,总线周期采用,同步时序,:,各部件都以系统时钟信号为基准,当相互不能配合时,快速部件(,CPU,)插入等待状态等待慢速部件(,I/O,和存储器),CPU,与外设接口常采用,异步时序,,它们通过应答联络信号实现同步操作,2.,最小模式的总线时序,本节展开微处理器最基本的,4,种总线周期,存储器读总线周期,存储器写总线周期,I/O,读总线周期,I/O,写总线周期,存储器写总线周期,T,4,T,3,T,2,T,1,ALE,CLK,A,19,/S,6,A,16,/S,3,A,15,A,8,AD,7,AD,0,A,15,A,8,A,7,A,0,输出数据,A,19,A,16,S,6,S,3,READY,(高电平),IO/M*,WR*,I/O,写总线周期,T,1,状态,输出,16,位,I/O,地址,A,15,A,0,IO/M*,输出高电平,表示,I/O,操作;,ALE,输出正脉冲,表示复用总线输出地址,T,2,状态,输出控制信号,WR*,和数据,D,7,D,0,T,3,和,Tw,状态,检测数据传送是否能够完成,T,4,状态,完成数据传送,存储器读总线周期,T,4,T,3,T,2,T,1,ALE,CLK,A,19,/S,6,A,16,/S,3,A,15,A,8,AD,7,AD,0,A,15,A,8,A,7,A,0,输入数据,A,19,A,16,S,6,S,3,READY,(高电平),IO/M*,RD*,演示,存储器读总线周期,T,1,状态,输出,20,位存储器地址,A,19,A,0,IO/M*,输出低电平,表示存储器操作;,ALE,输出正脉冲,表示复用总线输出地址,T,2,状态,输出控制信号,RD*,T,3,和,Tw,状态,检测数据传送是否能够完成,T,4,状态,前沿读取数据,完成数据传送,I/O,读总线周期,T,4,T,3,T,2,T,1,ALE,CLK,A,19,/S,6,A,16,/S,3,A,15,A,8,AD,7,AD,0,A,15,A,8,A,7,A,0,输入数据,S,6,S,3,READY,(高电平),IO/M*,RD*,0000,存储器读总线周期,T,1,状态,输出,20,位存储器地址,A,19,A,0,IO/M*,输出低电平,表示存储器操作;,ALE,输出正脉冲,表示复用总线输出地址,T,2,状态,输出控制信号,RD*,T,3,和,Tw,状态,检测数据传送是否能够完成,T,4,状态,前沿读取数据,完成数据传送,演示,插入等待状态,Tw,同步时序通过插入等待状态,来使速度差别较大的两部分保持同步,在读写总线周期中,判断是否插入,Tw,1.,在,T3,的前沿检测,READY,引脚是否有效,2.,如果,READY,无效,在,T3,和,T4,之间插入一个等效于,T3,的,Tw,,转,1,3.,如果,READY,有效,执行完该,T,状态,进入,T4,状态,什么是分时复用?,分时复用就是一个引脚在不同的时刻具有两个甚至多个作用,最常见的总线复用是数据和地址引脚复用,总线复用的目的是为了减少对外引脚个数,8088 /8086CPU,的数据地址线采用了总线复用方法,S2*,、,S1*,、,S0*,的编码意义,S2* S1* S0*,CPU,的工作状态,0 0 0,中断响应,0 0 1,I/O,读,0 1 0,I/O,写,0 1 1,暂停,1 0 0,取指,1 0 1,存储器读,1 1 0,存储器写,1 1 1,过渡状态,总线周期,T,1,T,2,T,3,T,4,T,i,T,i,T,1,T,2,T,3,T,w,T,w,T,w,T,4,T,i,T,i,总线周期,总线周期,若干个,12,个,基本总线周期由,4,个,T,状态组成:,T,1,、,T,2,、,T,3,、,T,4,等待时钟周期,T,w,,在总线周期的,T,3,和,T,4,之间插入,空闲时钟周期,Ti,,在两个总线周期之间插入,动态,存储器读,20002H,35H,等待状态,T,1,T,2,T,3,T,w,T,w,T,w,T,4,CLK,READY,前沿检测,动态,等待状态,Tw,的插入,3.2,存储器组织及管理,3.2.1,主存储器的组织,存储器由若干存储单元组成,存储单元的多少表示存储器的容量;,8086,构成的系统中,每个存储单元的长度为,8,个二进制位,每个存储单元被指定一个唯一的单元号码,即,存储单元地址,;,8086,有,20,根地址线,可以产生,20,位长的地址码,存储器寻址空间为,2,20,个存储单元,即可以直接访问,1MB,存储空间,存储单元(字节),7,0,二进制数地址,十六进制数地址,00000H 000000000,00001H 000000001,00002H 000000010,.,.,.,.,FFFFEH 11111111111111111110,FFFFFH 11111111111111111111,1.,存储单元的地址表示,2,、字数据的存放规则,存储器每个单元只能存储一个字节,对于字数据,通常使用相邻的,2,个存储单元来存储;,存储规则:,(,1,),字的低位字节存放在低地址单元,高位字节存放在高地址单元;,(,2,),字单元的地址用低字节单元的地址表示。,56,34,09235H,09236H,将数据,3456,存放到地址为,09235H,的存储单元中,?,3.2.2,主存储器的段结构,一、存储器分段技术,由于,8086,可寻址的存储空间,1MB,,需要提供,20,位的地址码,而,CPU,内部的寄存器长度只有,16,位,能直接访问的最大地址空间是,64KB,。为了实现对,1MB,单元的寻址,,80x86,系统将,1MB,的存储空间分成许多逻辑段,每段最长,64KB,,可以用,16,位的地址码进行寻址。每个逻辑段在实际存储空间中的位置可以浮动,段的起始地址可由段寄存器的内容来确定,这种技术即,存储器分段技术,00000H,存储器分段示意图,逻辑段,1,起点,逻辑段,2,起点,逻辑段,3,起点,逻辑段,4,起点,FFFFFH,逻辑段,1,64KB,逻辑段,2,64KB,逻辑段,3,64KB,逻辑段,4,64KB,每个段最大长度,64KB,,段的用途由用户自己定义,代码或数据可以存放在段内任意单元;,逻辑段在物理存储器中可以邻接、间隔、部分重叠或全部重叠,分段存储技术的特点:,00000H,FFFFFH,代码段,数据段,堆栈段,附加段,在任意时刻,一个程序只能访问当前段中的内容,在程序设计中一般设置,4,个基本的逻辑段:,代码段、数据段、堆栈段和附加段,,8086,中,4,个段寄存器,CS,、,DS,、,SS,和,ES,分别保存这,4,个段的段基址的高,16,位地址。,二、实模式下的存储器寻址,(,1,)段地址:,描述要寻址的逻辑段在内存中的起始位置。段地址保存在,16,位的,CS,、,SS,、,DS,和,ES,段寄存器中。,(,2,)偏移地址:,描述要寻址的内存单元距本段段首的偏移量。在编程中常被称作,“,有效地址,”,。,(,3,)逻辑地址:,是在编程中使用的地址,由段地址和偏移地址两部分组成。表示形式为,“,段地址:偏移地址,”,。,(,4,)物理地址:,是存储器的实际地址,由,CPU,提供的,20,位地址码来表示,是惟一能代表存储空间每个字节单元的地址。,1,、存储器地址,2,、实模式下物理地址的产生,在编写程序使用的是,16,位的逻辑地址,而,CPU,与存储器交换数据所使用的是,20,位的物理地址,因而需要将逻辑地址映射为物理地址。,具体方法:,将段寄存器的,16,位段基址左移,4,位,低位补,0,,再与,16,位的偏移量相加,即可得物理地址。,物理地址,=,段基址,16+,偏移量,逻辑地址的来源,3.,堆栈,堆栈是在存储器中开辟的一个特定区域。,开辟堆栈的,目的,主要有以下两点:,(1),存放指令操作数,(,变量,),。此时,对操作数进行访问时,段地址由堆栈段寄存器,SS,来提供,操作数在该段内的偏移地址由基址寄存器,BP,来提供。,(2),保护断点和现场。此为堆栈的主要功能。,SS,SP,SS,SP,12H,34H,56H,78H,SS,SP,12H,34H,56H,78H,栈顶,栈底,栈顶,栈底,栈顶,栈底,SP,例:,若已知当前,SS,1050H,,,SP,0008H,,,AX,1234H,,则,8086,系统中堆栈的入栈和出栈操作如下图所示。,12,AA,10500H,10501H,10502H,10503H,10504H,10505H,10506H,10507H,10508H,栈底,BB,10509H,段基址,(SS),AX,34,12,12,34,34,PUSH AX,1050AH,BB,AA,AA,BB,12,34,BX,34,POP BX,POP AX,栈顶,12,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!