首页 《微机原理与应用》第2章微机体系结构

《微机原理与应用》第2章微机体系结构

举报
开通vip

《微机原理与应用》第2章微机体系结构《微机原理与接口技术》主讲易凡wdyifan@163.com武汉大学物理学院电子科学与技术系第二章微型计算机的体系结构2.1微机执行原理指令是规定计算机执行特定操作的命令通常条指令包括两部分:操作码。操作码指明要完成操作的性质,如加、减、乘、除、数据传送、移位等;地址码。地址码指明参加上述规定操作的数据存放地址或操作数。计算机将指令(2进制编码)按顺序存放存储器单元中1.微机执行过程1.微机执行过程(续)微机顺序从存储器取出一条指令执行;每执行一条指令都是分成三个阶段进行:取指令(Fetch)分析指令(Decode...

《微机原理与应用》第2章微机体系结构
《微机原理与接口技术》主讲易凡wdyifan@163.com武汉大学物理学院电子科学与技术系第二章微型计算机的体系结构2.1微机执行原理指令是规定计算机执行特定操作的命令通常条指令包括两部分:操作码。操作码指明要完成操作的性质,如加、减、乘、除、数据传送、移位等;地址码。地址码指明参加上述规定操作的数据存放地址或操作数。计算机将指令(2进制编码)按顺序存放存储器单元中1.微机执行过程1.微机执行过程(续)微机顺序从存储器取出一条指令执行;每执行一条指令都是分成三个阶段进行:取指令(Fetch) 分析 定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析 指令(Decode)执行指令(Execute)取指令阶段的任务是根据程序计数器PC中的值,从存储器读出现行指令,送到指令寄存器IR,然后PC自动加1指向下一条指令地址。1.微机执行过程(续)分析指令阶段的任务是将IR中的指令操作码译码,分析其指令性质。如指令要求操作数,则寻找操作数地址。执行指令阶段的任务是取出操作数,执行指令规定的操作。根据指令不同还可能写入操作结果。微型机程序的执行过程实际上就是周而复始地完成这三阶段操作的过程,直至遇到停机指令时才结束整个机器的运行。2.指令执行示例汇编语言源程序对应机器码内存单元地址指令说明ORG1000HMOVA,5CHB0H1000H操作码5CH1001H立即数ADDA,2EH04H1002H操作码2EH1003H立即数JO100AHCAH1004H操作码0AH1005H地址10H1006H地址MOV[0200H],AA2H1007H操作码00H1008H地址02H1009H地址HLTF4H100AH操作码指令执行过程图CBABDBALU累加器ACC暂存器标志寄存器FR寄存器组操作控制器OC指令译码器ID指令寄存器IR操作码,地址码内部总线地址缓冲器数据缓冲器程序计数器PC地址译码读控制B0H5CH04H2EH地址1001H1002H1003H内容1000H内存储器MOVAL,5CHADDAL,2EH+1CPU外CPU内①②③④⑤⑥①②③④⑤⑥①③④⑤⑥②①②③④⑤⑥⑦⑧2.28086CPU的内部逻辑结构8086是Intel系列的16位微处理器,常用HMOS工艺制造,它有16位数据线和20根地址线,可寻址的地址空间达220即1MB。8088微处理器是准16位,其内部逻辑按16位设计,但外部数据总线只有8条。8086由执行部件(EU)和总线接口部件(BIU)构成,两者可以并行工作。1.8086的内部逻辑结构1.8086的内部逻辑结构(续)执行部件EU(ExecutionUnit)EU的功能是执行指令;EU从指令队列中取出指令代码,将其译码,发出相应的控制信息;控制数据在ALU中进行运算,运算结果的特征保留在FLAGS中。EU由以下各部分组成:算术逻辑单元ALU标志寄存器FLAGS(FR)通用寄存器组执行部件控制电路1.8086的内部逻辑结构(续)总线接口部件BIU(BusInterfaceUnit)BIU负责与存储器I/O端口传送信息。BIU从内存中取出指令送到指令队列;当EU需要数据时,BIU与EU配合,从指定的内存或I/O端口取出数据给EU;当运算结束时,BIU将运算结果送入指定的内存单元或外设。BIU的组成:专用寄存器组地址加法器指令队列(6字节)总线控制逻辑2.BIU与EU的动作管理当指令队列中有2个空字节时,BIU自动把指令取到指令队列中。当指令队列已满,而EU无总线访问请求时,BIU进入空闲状态。EU从指令队列的头部取出指令,并执行。在执行中,如需要访问内存或I/O设备,则EU请求BIU取操作数,并直等到需要的操作数到来后,EU才继续操作。若BIU处于空闲态,它立即响应请求,若BIU正在取指令到指令对列,它先完成取指令操作,再响应EU的请求。EU在执行转移、调用、返回等指令时,指令队列中的指令被清除,BIU重新从存储器中取出指令送入指令队列,EU才继续执行指令。因为EU与BIU并行工作,在整个运行期间,BIU总是忙碌的,充分利用了总线,CPU效率很高。演示2.BIU与EU的动作管理(续)2.38086的寄存器结构存储器是计算机存储信息的地方。掌握数据存储格式,以及存储器的分段管理对以后的汇编程序设计非常重要存储器也就是平时所说的主存,也叫内存,可直接与CPU进行数据交换。主存各单元利用地址区别寄存器是微处理器(CPU)内部暂存数据的存储单元,以名称 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 示,例如:AX,BX..….等外存主要指用来长久保存数据的外部存储介质,常见的有硬盘、光盘、磁带、U盘等。外存的数据只能通过主存间接地与CPU交换数据程序及其数据可以长久存放在外存,在运行需要时才进入主存你能区别寄存器、存储器(主存)、外存(包括硬盘、光盘、磁带等存储介质)吗?2.38086的寄存器结构(续)AX(Accumulator)累加器用于算术、逻辑运算以及与外设传送信息等BX(BaseaddressRegister)基址寄存器。常用做存放存储器地址CX(Count)计数寄存器。在循环和串操作时,常用作计数器。DX(Data)数据寄存器。常用来存放双字长数据的高16位,或存放外设端口地址通用寄存器组AX:AH,ALBX:BH,BLCX:CH,CLDX:DH,DL例如上述4个寄存器皆为16位寄存器,但又可将高、低8位分别作为两个独立的8位寄存器使用。通用寄存器组(续)SP(StackPointer)堆栈指针寄存器BP(BasePointer)基址寄存器SI(SourceIndex)源变址寄存器DI(DestinationIndex)目的变址寄存器以上4个寄存器只能作为16位的寄存器用。通用寄存器组(续)段寄存器CS(CodeSegment)代码段寄存器SS(StackSegment)堆栈段寄存器DS(DataSegment)数据段寄存器ES(ExtraSegment)附加段寄存器段寄存器都是16位的寄存器,用于存放段基值(16位的无符号数)控制寄存器IP(InstructionPointer)指令指针寄存器存放预取指令的偏移地址,指示预取指令在主存储器中的位置。随着指令的执行,IP将自动加1,以指示下一条指令所在的存储器位置;IP寄存器与CS段寄存器联合使用以确定下一条指令的存储单元地址控制寄存器(续)FLAGS(FlagsRegister)标志寄存器FLAGS是16位寄存器,但只用其中的9位;这9位包括6个状态标志位和3个控制标志位14151213OFDF1011IFTF89SFZF67AF45PF23CF01FLAGS的6个条件标志位:CF(CarryFlag):进位标志CF=1表示本次运算中,最高位(D7位或D15位)发生进位(加法运算)或借位(减法运算);CF=0表示没发生进位(或借位)PF(ParityFlag):奇偶标志PF=1运算结果的低8位中有偶数个“1”PF=0运算结果的低8位中有奇数个“1”控制寄存器(续)AF(AuxiliaryCarryFlag):辅助进位标志(又称半进位标志)AF=1表示本次运算D3位向D4位有进位(加法运算)或借位(减法运算)。AF=0表示无半进位控制寄存器(续)ZF(ZeroFlag):零标志。ZF=1表示本次运算结果为0;否则ZF=0。SF(SignFlag):符号标志。SF=1表示本次运算结果的最高位(D7或D15位)为“1”,否则,SF=0。OF(OverflowFlag):溢出标志OF=1表示本次运算结果超出了带符号数范围,即溢出,否则OF=0控制寄存器(续)8位补码的整数范围是:-128~+12716位补码的整数范围是:-32768~+32767关于进位与溢出2个n位的无符号二进制数相加,结果大于2n-1,称为进位,应用CF标志位作判断。2个n位的带符号二进制数相加,结果大于2n-1-1或小于-2n-1,称为溢出,应用OF标志位作判断。上述的n为字长,8086的n为8或16。控制寄存器(续)进位与溢出举例二进制数无符号数带符号数加数1000001004+4加数20000101111+11和0000111115+15CFOFZFSFPFAF000010二进制数无符号数带符号数加数1000001117+7加数211111011251-5和000000102+2CFOFZFSFPFAF100001进位与溢出举例二进制数无符号数带符号数加数1000010019+9加数201111100124+124和10000101133-123CFOFZFSFPFAF010101进位与溢出举例二进制数无符号数带符号数加数110000111135-121加数211110101245-11和01111100124+124CFOFZFSFPFAF110000进位与溢出举例FLAGS的三个控制标志位为:DF(DirectionFlag):方向标志DF=1,使串操作按减地址方式进行;DF=0,使串操作按增地址方式进行。IF(InterruptFlag):中断标志IF=1,允许CPU响应可屏蔽中断;IF=0,禁止CPU响应可屏蔽中断。TF(TrapFlag):单步标志。TF=1,CPU进入单步工作方式;TF=0,CPU正常执行。2.48086CPU的外部引脚及功能8086CPU芯片是40条引脚的双列直插式封装;8086CPU有两种工作模式:最大模式和最小模式引脚采用了分时复用方式,有8条引脚在两种工作模式中具有不同的功能。GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0MNIINTRCLKGNDVcc(+5V)AD15A16/S3A17/S4A18/S5A19/S6BHE#/S7MN/MX#RD#HOLD#(RQ#/GT0#)HLDA#(RQ#/GT1#)WR#(LOCK#)M/IO#(S2#)DT/R#(S1#)DEN#(S0#)ALE(QS0)INTA#(QS1)TEST#READYRESET123456789101112131415161718192040393837363534333231302928272625242322218086CPU图2.48086CPU的封装外型与引脚信号8086CPU在小模式中的各引脚功能AD15~AD0(AddressDataBus)分时复用地址/数据线传送地址时三态输出;传送数据时可双向三态输入/输出A19/S6~A16/S3(Address/Status)分时复用地址/状态线作地址用时,A19~A16与AD15~AD0一起构成访问内存的20位物理地址当CPU访问I/O端口时,A19~A16保持为“0”作状态用时,S6~S3输出状态信息。(见表2.1)表2.1S4S3状态编码S4S3段寄存器00ES01SS10CS(I/O,INT)11DSS5指示中断标志状态,当IF=1时,S5=1。S6恒为“0”。BHE#/S7(BusHighEnable/Status)总线高位有效信号。三态输出,低电平有效;在读写存储器或I/O端口时,BHE#用作体选信号。(见表2.2)表2.2BHE#和AD0编码的含义AD0BHE#总线使用情况0016位数据总线上进行字传送01高8位数据总线上进行字节传送10低8位数据总线上进行字节传送11无效8086CPU在小模式中的各引脚功能(续)RD#(Read)读信号。三态输出,低电平有效,指示CPU正在读内存或I/O端口。WR#(Write)写信号。三态输出,低电平有效,指示CPU正在写内存或I/O端口。M/IO#(Memory/IO)存储器或I/O端口访问信号。M/IO#为高电平时,表示当前CPU正访问存储器;M/IO#为低电平时,表示当前CPU正访问I/O端口READY准备就绪信号。外部输入,高电平有效;它有效表示内存或I/O端口已准备好传送数据;无效时要求CPU插入等待周期Tw。INTR(InterruptRequest)中断请求信号。输入,高电平有效;有效时,表示外部向CPU发出了中断请求。TEST#测试信号。输入,低电平有效;当CPU执行WAIT指令时,每隔5个时钟周期对TEST进行一次测试;仅当TEST有效时,CPU才执行下一条指令。8086CPU在小模式中的各引脚功能(续)INTA#(InterruptAcknowledge)中断响应信号。输出,低电平有效;表示CPU响应了外部发来的INTR信号。RESET复位信号。输入,高电平有效;CPU接收到RESET信号后,停止当前操作,并将工作寄存器和指令队列复位到初始状态。ALE(AddressLatchEnable)地址锁存允许信号。输出,高电平有效;在最小模式系统中作地址锁存器的选通信号。8086CPU在小模式中的各引脚功能(续)复位后相关寄存器的初始状态寄存器初始状态寄存器初始状态状态标志寄存器清0IP0000HCSFFFFHDS0000HSS0000HES0000H指令队列寄存器清空其他寄存器0000HDT/R#(DataTransmit/Receive)数据发送/接收控制信号;用于数据收发器的传送方向。当DT/R#为高电平时,表示CPU向外部输出数据;当DT/R#为低电平时,表示外部向CPU输入数据。DEN#(DataEnable)数据允许信号,三态输出,低电平有效;在最小模式系统中作为数据收发器的选通信号。8086CPU在小模式中的各引脚功能(续)MN/MX#(Minimum/Maximum)工作模式选择信号,输入;MN/MX#为高电平,表示CPU工作在最小模式系统中;MN/MX#为低电平,表示CPU工作在最大模式系统中。CLK(Clock)主时钟信号,由时钟发生器输入8086CPU的时钟频率通常为8MHz。Vcc(电源)8086CPU使用单一的+5伏电源。由Vcc输入。8086CPU在小模式中的各引脚功能(续)HOLD(HoldRequest)总线请求信号。HLDA(HoldAcknowledge)总线请求响应信号。8086CPU在小模式中的各引脚功能(续)以上两条信号线都是用于控制总线。S2#~S0#(BusCycleStatus)总线周期状态信号,输出;在最大系统中,传送至总线控制器(8288),产生控制信号。LOCK#(Lock)总线封锁信号,三态,输出,低电平有效;该信号有效时,CPU封锁总线,不允许其它处理器获得总线控制。8086CPU在大模式中的各引脚功能8086在最大模式中有8根引脚(第24~31引脚)能重新定义。RQ#/GT0#、RQ#/GT1#(Request/Grant)总线请求信号/总线请求允许信号,双向,低电平有效;输入时,表示其它主控器向CPU请求使用总线;输出时表示CPU对总线请求的响应;QS1、QS0(InstructionQueueStatus)指令队列状态信号,输出,高电平有效;该信号指示CPU中指令队列当前的状态。8086CPU在大模式中的各引脚功能(续)关于最小模式与最大模式最小模式系统只有8086或8088一个微处理器。所有控制信号直接由CPU提供最大模式由两个或多个微处理器(主处理器和协处理器)组成中(大)规模系统,CPU并不直接向外界提供全部控制信号,而由S0S1S2通过Intel8288总线控制器提供不同的工作模式下,CPU有一部分引脚具有不同的功能两种模式由引脚MN/MX#控制选择(1)最小系统总线的控制地址锁存器8282的结构与引脚信号8282DI1DI2DI3DI4DI5DI6DI7DO1DO2DO3DO4DO5DO6DO7DODI00CLKDQSTBOE地址锁存器8282引脚信号DO0DO1DO2DO3DO4DO5DO6DO7STBVCC82821234567891020191817161514131211DI1DI2DI3DI4DI5DI6DI7OEGNDDI0STBDI0DI1直通保持高阻DO0DO1OE8086系统的地址锁存功能实现STB为高电平期间,输出等于输入;为下降沿时,输出锁存,与输入无关OE为有效电平(低电平)时,正常输出;为无效电平(高电平)时,输出高阻ALE为8088/8086地址锁存允许,高电平有效,输出,复用线上出现地址时为高电平锁存器的DI0-DI7与CPU的地址/数据复用线相连STB与ALE相连。ALE为正脉冲时,输出地址;为低电平时,输出锁存,与数据无关两方面的功能三态输出直接驱动总线具有数据收和发两个方向的传输、隔离控制功能。常用芯片:Intel8286,Intel8287和74LS2458286输入输出同相8287输入输出反相74LS245的功能与8286相同双向数据总线收发器双向数据收发器8286内部结构A0B08286OETA1A2A3A5A4A6A7B1B2B3B5B4B6B78286功能表最小模式总线连接8288总线控制器多CPU8086/8088系统由总线控制器8288产生总线控制信号基本功能根据S2、S1、S0信号译出对应的状态命令产生地址锁存信号和双向数据驱动器控制信号使总线控制信号浮空,以允许其他总线控制单元控制总线产生简单或级联中断逻辑所需的控制信号(2)最大系统总线的控制8288内部结构状态译码器控制逻辑控制信号发生器命令信号发生器S0S1S2AMWCIORCIOWCAIOWCINTAMWTCMRDCCLKAENCENIOBDT/RDENALEMCE/PDEN+5VGND8086状态信息控制输入最大模式总线状态S0S1S2总线周期状态信号(输出、三态),经过8288总线控制器译码产生对存储器、I/O端口访问所需的控制信号8288输出命令CPU状态中断响应读I/O端口写I/O端口暂停取指令读存储器写存储器无源状态INTAIORCIOWCAIOWC无MRDCMRDCMWTC,AMWC无000001111110100011010101S2S1S08086最大工作模式下控制核心单元的组成地地读写控制读写控制读写控制CS#I/O接口TOE8286TOE#8286收发器8284时钟发生器RESETREADYA1~A19A0BHE#ABD7~D0D15~D8DBCBD15~D0CSH#奇地址存储体CSL#偶地址存储体8288S0INTA#S1MRDC#S2MWTC#DENIORC#DT/R#IOWC#ALE8086CPUS0#S1#S2#MN/MX#CLKREADYRESETBHE#A19-A16AD15-AD02.5存储器的组织8086CPU有20根地址线,它可直接对220=1M个内存单元编址;每个存储单元存放一个字节的内容;每个存储单元都有一个编号;称为存储器地址;8086系统的1MB内存单元的地址为:00000H~FFFFFH2.5.18086系统中数据的存储格式二进制位(Bit):存储一位二进制数:0或1字节(Byte):8个二进制位,D7~D0字(Word):16位,2个字节,D15~D0双字(DoubleWord):32位,4个字节,D31~D0最低有效位LSB:数据的最低位,D0位最高有效位MSB:数据的最高位,对应字节、字、双字分别指D7、D15、D31图示计算机中信息的单位80x86处理器采用“低对低、高对高”的存储形式,被称为“小端方式LittleEndian”;相对应还存在“大端方式BigEndian”多字节数据在存储器中的存放多字节数据在存储器中的存放占连续的多个存储单元存放时,低字节存入低地址,高字节存入高地址;表达时,用它的低地址表示多字节数据占据的地址空间。例如:0002H“字节”单元存放有一个数据34H表达为[0002H]=34H例如:0002H“字”单元的内容为:1234H表达为[0002H]=1234H例如:0002H“双字”单元的内容为:78561234H表达为[0002H]=78561234H图示多字节数据在存储器中的存放(续)8086系统中,将1M字节的存储空间分成两个512K的存储体偶数地址的存储体称作偶体奇数地址的存储体称作奇体两个存储体之间采用字节交叉编址方式。2.5.28086系统的存储器结构与访问控制8086系统的存储器结构对访问存储体的控制存储体与总线之间的连线见图2.6用最低地址位A0来控制对哪一个存储体的访问A0=0,访问偶体;A0=1,访问奇体高19地址位(A19~A1)控制CPU访问奇体或偶体内的某一个字节单元8086系统允许一次对存储器读/写一个字节(8位);也可以读/写一个字(相邻的2个字节),此时要求同时访问两个存储体,各读/写一个字节信息。系统用总线高位控制信号BHE#和A0共同控制读/写操作。表2.3BHE和A0的联合控制操作BHE#A0操作00同时访问两个存储体,读/写一个字的信息01只访问奇地址存储体,读/写高字节的信息10只访问偶地址存储体,读/写低字节的信息11无操作BEH#、A0组合对存储体的控制访问存储体的操作从偶地址单元读/写一个字节A0=0,BHE#=1据地址位A19~A1从偶地址存储体中确定某个字节单元的地址,启动该存储体,读/写该地址中一个字节的信息,并通过数据总线的低8位传送数据。从奇地址单元读/写一个字节A0=1,BHE#=0据地址位A19~A1从奇地址存储体中确定某个字节单元的地址,启动该存储体,读/写该地址中一个字节的信息,并通过数据总线的高8位传送数据。从偶地址开始读/写一个字A0=0,BHE#=0,同时启动两个存储体,一次访问存储器读/写一个16位信息;使偶地址开始的一个字有两个字节(高位字节在奇地址存储体中,低位字节在偶地址存储体中);这两个字节单元的高19位地址码A19~A1相同。访问存储体的操作(续)从奇地址开始读/写一个字从奇地址开始的一个字,高位字节在偶地址存储体中,低位字节在奇地址存储体中两个字节单元的高19位地址码A19~A1并不相同,需要两次访问存储器第一次,A0=1,BHE#=0,访问奇存储体中的字节第二次,A0=0,BHE#=1,访问偶存储体中的字节例如:地址为20050H和20051H的两个内存单元,其20位的地址码为:0010,0000,0000,0101,0000B0010,0000,0000,0101,0001B高19位A19~A1均相同,只有最低位A0不同。访问存储体的操作(续)例如:地址为20051H和20052H的两个内存单元,其20位的地址码为:0010,0000,0000,0101,0001B0010,0000,0000,0101,0010B高18位A19~A2均相同,但低两位A1A0不同。2.5.3存储器的分段与地址形成8086系统将存储器的1MB空间分成多个逻辑段(Segment)每个逻辑段的容量≤64KB8086系统中,把16字节的存储空间称作一节(Paragraph)各逻辑段从节的整数边界开始,即段首地址的最低4位总是为0000B。存储器的分段内存单元地址的形成物理地址(20位)20位地址。它是识别任一存储单元唯一地址段基址(16位)16位地址。它是段首单元地址的高16位,存放于相应的段寄存器中,指示某逻辑段在内存中的起始位置。偏移地址(16位)16位地址。是内存单元相对于本逻辑段首单元地址的偏移量。因为一个逻辑段≤64K,故偏移地址用16位二进制数表达足够,所以它是16位无符号数。逻辑地址(16位)段基址、偏移地址描述某内存单元在确定逻辑段内的位置,故也称逻辑地址图2.16物理地址、逻辑地址示意图存储内容物理地址段基址偏移地址0000H……段首(单元)12H20300H2030H0000H34H20301H2030H0001H……段内某单元AAH20410H2030H0100H……段尾(单元)FFH204FFH2030H01FFH一个逻辑段≤64K100H用户编程时,使用逻辑地址,写法形式为:段基地址:段内偏移地址分隔符内存单元地址的形成(续)例如物理地址14700H逻辑地址1460H:0100H内存单元地址的形成(续)物理地址的形成将段基址(16位)左移4位,末4位补0,加上偏移地址(16位)就得到20位物理地址;物理地址=段基址×16+偏移地址例如:逻辑地址1460:100、1380:F00物理地址14700H、14700H14600H+100H14700H13800H+F00H14700H段地址左移4位加上偏移地址得到物理地址内存单元地址的形成(续)例如:段基址:偏移地址=1200H:0345H物理地址=12345H例如:段基址:偏移地址=1220H:0145H物理地址=12345H内存单元地址的形成(续)一个存储单元只有一个物理地址,却可以有多个不同的逻辑地址;不同的段基址表明它处在不同的逻辑段段基址由段寄存器提供,偏移地址由操作数的寻址方式确定,它们的组合取决于操作类型和存储器的寻址方式。系统对逻辑地址的来源有约定,在编程时不能违反约定。逻辑地址的说明各逻辑段的功能代码段存放程序的指令代码代码段寄存器CS提供现行指令代码存放单元的段基址指令指针寄存器IP提供将要取的指令代码存放单元的偏移地址CPU利用CS:IP得到指令代码单元的物理地址,由此指示取得下一条要执行的指令数据段存放运行程序所用的数据数据段寄存器DS提供现行数据段的段基址现行操作数的存放单元的偏移地址由寻址方式(有效地址EA)确定CPU利用DS:EA得到数据单元的物理地址,由它指示对位于数据段中操作数的存取各逻辑段的功能(续)附加段是附加的数据段,也保存数据附加段寄存器ES提供附加段的段基址由寻址方式(有效地址EA)得到操作数的偏移地址CPU利用ES:EA得到物理地址,指示对位于附加段中数据的存取串操作指令将附加段作为其目的操作数的存放区域各逻辑段的功能堆栈段确定堆栈所在的主存区域堆栈段寄存器SS提供堆栈段的段基址堆栈指针寄存器SP指示堆栈栈顶的偏移地址CPU利用SS:SP得到物理地址,指示对位于堆栈顶数据的存取各逻辑段的功能演示逻辑段的几点说明程序的指令序列必须安排在代码段程序使用的堆栈一定在堆栈段程序中的数据默认是安排在数据段,也经常安排在附加段,尤其是串操作的目的区必须是附加段数据的存放比较灵活,实际上可以存放在任何一种逻辑段中表2.4逻辑地址的来源操作类型段基址偏移地址正常来源其它来源取指令CS无IP堆栈操作SS无SP存/取变量DSCS、ES、SS有效地址EA取源串DSCS、ES、SSSI存/取目的串ES无DIBP作基址寄存器SSCS、ES、DS有效地址EA是一种按先进后出(后进先出)原则组织信息存取的存储空间;8086系统的堆栈在存储器中实现。堆栈8086系统堆栈的特点:可以有多个堆栈,每个堆栈空间最大为64K。当前正使用的堆栈称为现行堆栈,SS段寄存器存放现行堆栈的段基址。堆栈为16位宽,堆栈的存取操作总是以字(16位)为单位进行。8086系统堆栈的特点:堆栈向上生长(即当数据入栈时,堆栈指针SP的值减小,当数据出栈时,SP的值增大)当堆栈中有数据时,SP寄存器指示堆栈的顶部当为空堆栈时,SP指示栈底;当要压栈时(数据存入),先进行SP-2→SP,然后将16位数据存入堆栈;当要出栈时,先从栈顶取出16位数据,然后完成SP+2→SP。2.6CPU的操作时序8086CPU主要操作为:系统复位和启动操作暂停操作总线操作中断操作最小模式下的总线保持最大模式下的总线请求/允许2.6.1基本概念时钟周期CPU的时钟信号(CLK)周期。如8086-1的主频为10MHz,一个时钟周期为100ns。总线周期BIU完成一次访问存储器所需的时间为一个总线周期。一个基本的总线由4个时钟周期组成,也称为4个状态,即T1、T2、T3和T4状态。有时,CPU需要在T3之后加入一个或几个附加的时钟周期Tw,称为等待状态。2.6.1基本概念(续)指令周期计算机完成对一条指令的读取并执行所需的时间。一个指令周期包含一个或多个总线周期。空闲周期如果在一个总线周期之后,不立即执行下一个总线周期,则系统处于空闲状态,此时执行空闲周期(IdleCycle),用Ti表示。2.6.2系统的复位和启动8086通过在RESET引脚上施加触发信号来执行复位/启动操作。系统要求RESET信号起码维持4个时钟周期以上的高电平,初次加电,则高电平的时间不小于50μs。当RESET信号进入高电平,CPU结束现行操作,并维持在复位状态,CPU内部各寄存器被设为初值。RESET从高电平到低电平的跳变将触发CPU内部的复位逻辑电路,经7个时钟周期后CPU被启动。表2.5复位时各寄存器的值标志寄存器清零指令指针(IP)0000HCS寄存器FFFFHDS寄存器0000HSS寄存器0000HES寄存器0000H指令队列空其它寄存器0000H8086CPU复位后再启动,是从内存的FFFF0H处开始执行指令。所以在FFFF0H处放着一条无条件转移指令,转移到系统程序的入口处,使得系统被启动后,能自动进入系统程序。RESET信号变为高电平后,再过1个时钟周期,所有三态门输出线被设置成高阻态,并一直维持着高阻态。直到RESET又回到低电平。三态输出线包括:AD15~AD0、A19/S6~A16/S3、BHE#/S7、M/IO#、DT/R#、DEN#、WR#、RD#和INTA#。2.6.2系统的复位和启动(续)2.6.3最小模式系统的总线操作读总线操作T1状态M/IO#有效,指示CPU从存储器或I/O端口读数据,M/IO#一直保持到T4状态。20位地址信息从A19/S6~A16/S3(高4位)、AD15~AD0(低16位)送出。BHE#信号有效,它作为存储体选信号。ALE输出正脉冲,用作地址锁存器的地址锁存信号。DT/R#输出低电平,使得数据收发器接收数据。DEN#输出高电平,作为数据的选通信号。读总线操作(续)T2状态AD15~AD0进入高阻态,为数据输入作准备。A19/S6~A16/S3输出状态信息(S6~S3)。DEN#信号变为低电平,作为总线收发器的数据允许信号。RD#输出低电平,送到存储器或I/O端口。仅被选中的存储单元或I/O端口,才会被RD#信号从中读出数据。T3状态内存单元或I/O接口将数据送到数据总线上;CPU通过数据总线AD15~AD0接收数据。读总线操作(续)Tw状态CPU在T3状态的前沿对READY信号采样,若READY为低电平,说明数据尚未到数据总线上,CPU插入Tw状态。CPU在每个Tw前沿对READY信号采样,若READY有效,则当前的Tw周期执行完后,进入T4周期。T4状态在T4状态与前一个状态交界的下降沿处,CPU对数据总线采样,获得数据。写总线操作写总线时序与读总线时序类似写总线操作与读总线操作的不同点为:当地址信息被锁存后,立即输出8位或16位数据。(无总线准备时间)WR#信号有效,表示要写数据到内存或I/O端口。DT/R#引脚输出高电平,使数据收发器呈输出状态。返回8088的指令执行过程8088的存储格式D7D0字节D15D0字D31D0双字D7~D000006H78H00005H56H00004H12H00003H34H00002H00001H00000H低地址LSBMSB逻辑段的分配16位外部总线ΣALUAHALBHBLCHCLDHDLSPBPDISICSDSSSESIP内部暂存器154236运算暂存器标志寄存器EU控制单元ALU数据总线(16位)总线控制逻辑地址总线(20位)指令队列数据总线队列总线8位通用寄存器执行部件(EU)总线接口部件(BIU)图2.18086CPU的结构执行1执行2执行3执行4执行5忙忙忙忙忙ttt………………忙忙忙忙忙忙忙忙ttMPU总线(BUS)EUBIUBUS一般8位CPU(8080)8086CPU取指1执行1取指2执行2取指3执行3……取指1取指2取指3取指4取指5图2.2取指令与执行指令时间图AHALBHBLCHCLDHDLFLAGSESCSDSSSSPBPDISIIP08715000151515代码段堆栈段数据段附加段堆栈指针源变址基址指针目的变址AX累加器CX计数BX基数DX数据指令指针标志数据寄存器指针寄存器变址寄存器控制寄存器段寄存器通用寄存器图2.38086内部寄存器GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0MNIINTRCLKGNDVccAD15A16/S3A17/S4A18/S5A19/S6BHE/S7MN/MX#RDHOLD#HLDA#WRM/IO#DT/R#DEN#ALEINTATESTREADYRESET123456789101112131415161718192040393837363534333231302928272625242322218086CPU图2.48086CPU的封装外型与引脚信号奇地址000010000300005FFFFFD15D8D7D0偶地址000000000200004FFFFE512K×8(位)奇地址存储体(A0=1)512K×8(位)偶地址存储体(A0=0)图2.5字节交叉编址方式D7~D0奇地址存储体SELA18~A0D7~D0偶地址存储体SELA18~A0数据总线DB7~0数据总线DB15~8D7~D0D15~D8BHEA19~A1A0地址总线图2.6存储体与总线的连接···10000H10001H···Y存储器YX被读字节忽略的字节8086CPU图2.7(a)从偶地址读一个字节X存储器YX被读字节忽略的字节···10050H10051H···8086CPU图2.7(b)从奇地址读一个字节···100A0H100A1H···XY存储器YX被读的字8086CPU图2.8(a)从偶地址开始读一个字XY存储器YX被读字的第一字节··A0000HA0001HA0002HA0003H··8086CPU忽略的字节被读字的第二字节忽略的字节WZ图2.8(b)从奇地址开始读一个字段基址0000偏移地址物理地址1503210150200图2.9物理地址的形成过程·········SSSSSSSPSPSP6587658734123412空堆栈PUSHAX:(AX)=1234HPUSHBX:(AX)=8765HPOPAX图2.10堆栈操作示意图·········00000逻辑段1起点逻辑段2起点逻辑段3起点逻辑段4起点FFFFF逻辑段1≤64K逻辑段2≤64K逻辑段3≤64K逻辑段4≤64K图2.11存储器分段示意图T1T2T3TwT4TiT1T2T3T4总线周期总线周期数据输出数据输入地址/数据总线地址/数据总线浮空缓冲地址输出地址输出读周期写周期CLK时钟周期图2.12典型BIU总线周期波形图等待状态空闲周期CLKRESET输入内部RESET三态门输出信号浮空无作用状态图2.138086CPU的复位时序高为读内存低为读I/O地址输出状态输出状态输入T1T2T3Tw(1~n)T4地址输出CLKM/IOA19/S6~A16/S3BHE/S7AD15~AD0ALERDDT/RDENBHE输出图2.148086读周期的时序高为读内存低为读I/O地址输出状态输出数据输出T1T2T3Tw(1~n)T4地址输出CLKM/IOA19/S6~A16/S3BHE/S7AD15~AD0ALEWRDT/RDENBHE输出图2.158086写周期的时序
本文档为【《微机原理与应用》第2章微机体系结构】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
中小学教育资料
暂无简介~
格式:ppt
大小:5MB
软件:PowerPoint
页数:110
分类:互联网
上传时间:2023-02-27
浏览量:0