微机原理第二单元_第1页
微机原理第二单元_第2页
微机原理第二单元_第3页
微机原理第二单元_第4页
微机原理第二单元_第5页
已阅读5页,还剩85页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第二章微处理器与系统结构2.1微处理器主要性能指标2.28086/8088微处理器2.38086系统的组成2.4存储器组织2.58086总线时序第二章学习要点重点掌握内容: 1.微处理器的基本结构。2.Intel8086微处理器的基本结构,包括:功能结构、寄存器结构和总线结构3.Intel8086微处理器系统的组成:控制核心单元+存储器组织+I/O端口组织4.Intel8086微处理器在最小模式下的典型总线操 作和时序。5.几个重要概念:时钟周期,总线周期,指令周期了解内容:1.Intel8088微处理器与Intel8086微处理器的不同之处。2.Intel8086微处理器在最大工作模式下的典型总线操作和时序。3.高档微处理器的体系结构与特点。

2.1微处理器主要性能指标主频:即微处理器时钟频率。如Pentium42GHz同系列的微处理器,主频越高,速度越快。但主频相同的微处理器,速度不一定都相同,因结构有差异外频:微处理器外部总线工作频率。如Pentium42GHz的外频为400MHz地址线宽度:决定访存空间。如36位地址线访问236=64GB存储单元数据线宽度:决定微处理器与外部存储器、输入/输出部件之间一次交换的二进制数据位数。如8、16、32、64位。微处理器主要性能指标内置协处理器:加快数值运算超标量结构:一个时钟周期内执行一条以上的指令。低标量结构:一条指令至少需要一个以上的时钟周期工作电压:微处理器正常工作所需要的电压,早期为5V,后来有3.3V,2.8V,1.5V等。制造工艺:晶体管之间的最小线距,0.35m,0.25m,0.18m,0.13m等微处理器微处理器类型(Intel)4004:4位8085/8088:8位8086、80286:16位80386、80486、80586:32位Pentium、PentiumPRO、PentiumII、PentiumIII、Pentium4:32/64位2.28086/8088微处理器INTEL78年推出(79年推出8088)4万多个晶体管(8088为2.9万个晶体管)时钟频率4.77MHZ数据线16位(8088的数据线8位)地址线20位40脚DIP封装81年推出PersonalComputer(个人计算机、微机)组成:算术逻辑部件、控制器、寄存器阵列、总线及总线缓冲器。算术逻辑部件ALU:用硬件实现算术运算、移位、布尔运算等基本运算功能。控制器:逐一取出指令、分析指令、执行指令。

指令部件:程序计数、指令寄存、指令译码;时序部件:产生操作序列的定时信号;微操作控制部件:根据指令产生控制信号。2.2.1有关微处理器的一些概念

一、微处理器的基本结构总线及总线缓冲器按照总线所连接的对象,有4级总线:片内总线:连接CPU内的各个电路部分。片间总线:指主板上各芯片之间的总线,用于连接CPU与主板上的其他芯片。按总线中各信号线功能的不同,又分为地址总线、数据总线和控制总线,即所谓的三总线。(系统)内总线:指主板与I/O扩展板之间的总线,一般都遵循一定的标准,如目前多采用的ISA标准、EISA标准和PCI标准等。外总线:指微机与其他设备、系统之间的总线,一般也遵循一定的标准,习惯上又称为接口,如串行接口、并行接口、USB接口等。总线缓冲器:如地址锁存器、数据缓冲器、总线收/发器等。运算器寄存器控制器CPU存储芯片I/O芯片主板扩展接口板扩展接口板微机系统④①②③其他微机系统其他仪器系统

微机系统的四级总线示意图寄存器阵列——用于存放临时数据和地址。数目多少不定,因处理器而异。累加器:数据运算的场所。其长度即微机的字长。通用数据寄存器:存放运算数据或结果;存放数据的地址指针。堆栈指针:专门指示堆栈的栈顶,辅助完成堆栈操作。程序计数器(指令指针):指向将要执行的下一条指令,实现顺序执行。指令寄存器:即指令队列,暂存预取指令的代码,直至完成译码。标志寄存器:记录当前执行结果的各种状态。2.2.28086CPU功能结构图EU控制器ALU暂存器标志寄存器8位队列总线总线控制逻辑内部总线16位地址加法器20位地址总线16位数据总线执行部件EU总线接口部件BIU123456指令队列通用寄存器AXAHALBXBHBLCXCHCLDXDHDLSPBPDISICSDSSSES80888086IP暂存器8086总线1.执行部件EU

执行部件中包含一个16位的算术逻辑单元(ALU),8个16位的通用寄存器,一个16位的状态标志寄存器,一个数据暂存寄存器和执行部件的控制电路。功能:从BIU的指令队列中取出指令代码,经指令译码器译码后执行指令所规定的全部功能。执行指令所得结果或执行指令所需的数据,都由EU向BIU发出命令,对存储器或I/O接口进行读/写操作。2.总线接口部件BIU

总线接口部件BIU内部设有四个16位段地址寄存器:代码段寄存器CS、数据段寄存器DS、堆栈段寄存器SS和附加段寄存器ES,一个16位指令指针寄存器IP,一个6字节指令队列缓冲器,20位地址加法器和总线控制电路。主要功能:根据执行部件EU的请求,负责完成CPU与存储器或I/O设备之间的数据传送。一、8086执行部件EU组成:算术逻辑部件、控制器、寄存器阵列、总线及总线缓冲器。算术逻辑单元ALU(ArithmeticandLogicUnit)进行所有的算术和逻辑运算计算寻址单元的十六位偏移地址EA(EffectAddress)EU控制器接收指令队列中的指令,进行指令译码、分析,形成各种控制信号,实现EU各个部件完成规定动作的控制标志寄存器F通用寄存器

标志寄存器标志(Flag)用于反映指令执行结果或控制指令执行形式8086处理器的各种标志形成了一个16位的标志寄存器FLAGS(程序状态字PSW寄存器)OF111512DF10IF9TF8SF7ZF65AF43PF21CF0

程序设计需要利用标志的状态标志寄存器Flags唯一能按位操作的寄存器只定义了其中9位,另外7位未定义(保留)6位状态标志:OF、SF、ZF、PF、CF、AF3位控制标志:DF、IF、TFOFDFIFTFSFZFAFPFCFD15D14D13D12D11D10D9D8D7D6D5D4D3D2D1D0状态标志反映指令对数据作用之后,结果的状态(不是结果本身)。这些状态将控制后续指令的执行OF(OverflowFlag):溢出标志(指补码),F.11OF=1:在运算过程中,如操作数超过了机器表示的范围称为溢出。OF=0:在运算过程中,如操作数未超过了机器能表示的范围称为不溢出。求解方法:最高位进位次高位进位字节允许范围:-128—+127字允许范围:-32768—+32767状态标志CF(CarryFlag):进位/借位标志,F.0CF=1:最高位需要向前产生进位/借位。CF=0:最高位不会向前产生进位/借位。AF(AuxiliaryCarryFlag):辅助进位标志,F.4AF=1:数据的第3位(半个字节)需要向前产生进位/借位。AF=0:数据的第3位(半个字节)不会向前产生进位/借位。状态标志SF(SignFlag):符号标志,F.7SF=1:运算结果的最高位为1,如果为带符号数,则为负数。SF=0:运算结果的最高位为0,如果为带符号数,则为正数。带符号数的最高位为符号位;而无符号数的最高位为数值位。ZF(ZeroFlag):全零标志,F.6ZF=1:运算结果为全0。不包括进位的情况ZF=0:运算结果不为0。状态标志PF(ParityFlag):奇偶标志PF=1:结果的低8位中有偶数个1。PF=0:结果的低8位中有奇数个1。有些运算操作将影响全部状态标志,如加法、减法运算有些操作影响部分状态标志,如移位操作有些指令的操作不影响任何状态标志,如数据传送指令10001101001101100011001000011001+0110011010101001运算结果最高位为1 ∴SF=1;例:2个数相加后,分析各标志位的值第三位向第四位有进位 ∴AF=1;次高位向最高位有进位,最高位向前没有进位,∴OF=10=1最高位没有进位 ∴CF=0;低8位中1的个数为偶数个 ∴PF=1;运算结果本身≠0 ∴ZF=0;10001101001101100011001000011001-0010110010001100运算结果最高位为0 ∴SF=0;例:2个数相减后,分析各标志位的值第三位向第四位没有借位 ∴AF=0;次高位向最高位没有借位,最高位向前没有借位,∴OF=00=0最高位没有借位 ∴CF=0;低8位中1的个数为奇数个 ∴PF=0;运算结果本身≠0 ∴ZF=0;控制标志控制标志位的值不由数据运算的结果决定,而由指令直接赋值控制标志决定后续指令的执行情况DF(DirectionFlag):方向控制标志位用于串处理指令,控制从前往后、还是从后往前对字符串进行操作处理DF=1,每次串处理操作后使变址寄存器SI和DI的值递减,使串处理从高地址向低地址方向处理。DF=0,每次串处理操作后使变址寄存器SI和DI的值递增,使串处理从低地址向高地址方向处理。控制标志IF(InteruptFlag):中断允许/禁止标志位IF=1,允许外部可屏蔽中断。CPU可以响应可屏蔽中断请求。IF=0,关闭中断。CPU禁止响应可屏蔽中断请求。IF的状态对不可屏蔽中断和内部软中断没有影响。TF(TrapFlag):跟踪(陷阱)标志位TF=1,每执行一条指令后,自动产生一次内部中断,使CPU处于单步执行指令工作方式,便于进行程序调试,用户能检查程序。TF=0,CPU正常工作,不产生陷阱。控制标志与状态标志的区别控制标志的值:由系统程序或用户程序根据需要用指令设置。状态信息:由中央处理器执行运算指令,并根据运算结果而自动设置。X86CPU也提供了直接设置状态标志之值的指令标志名标志为1标志为0OF溢出(是/否)OVNVDF方向(减量/加量)DNUPIF中断(允许/关闭)EIDISF符号(负/正)NGPLZF零(是/否)ZRNZAF辅助进位(是/否)ACNAPF奇偶标志(偶/奇)PEPOCF进位标志(是/否)CYNC调试状态时,标志位之值的符号表示AXBXCXDX8086的通用寄存器目的变址指针(DestinationIndex)DI源变址指针(SourceIndex)SI基址指针(BasePointer)BP堆栈指针(StackPointer)SP数据寄存器(Data)DLDHDX计数寄存器(Count)CLCHCX基址寄存器(Base)BLBHBX累加器(Accumulator)ALAHAX数据寄存器可分为两个8位,主要用于数据操作地址指针主要用于地址操作16位888086的16位通用寄存器是:AX BX CX DXSI DI BP SP其中前4个数据寄存器都还可以分成高8位和低8位两个独立的寄存器8086的8位通用寄存器是:AH BH CH DHAL BL CL DL对其中某8位的操作,并不影响另外对应8位的数据数据寄存器数据寄存器用来存放计算的结果和操作数,也可以存放地址每个寄存器又有它们各自的专用目的AX--累加器,使用频度最高,用于算术、逻辑运算以及与外设传送信息等;BX--基址寄存器,常用做存放存储器地址;CX--计数器,作为循环和串操作等指令中的隐含计数器;DX--数据寄存器,常用来存放双字长数据的高16位,或存放外设端口地址。指针寄存器指针寄存器用于寻址内存堆栈内的数据SP为堆栈指针寄存器,指示栈顶的偏移地址SP不能再用于其他目的,具有专用目的BP为基址指针寄存器,表示数据在堆栈段中的基地址SP和BP寄存器与SS段寄存器联合使用以确定堆栈段中的存储单元地址变址寄存器变址寄存器常用于存储器寻址时提供地址SI是源变址寄存器DI是目的变址寄存器串操作类指令中,SI和DI具有特别的功能通用寄存器一般,通用寄存器可以用于任何指令的任意操作,可以相互替换16位的数据寄存器都可分成2个8位寄存器使用,是同一个物理介质。如果已用作一个16位的数据寄存器,则不能再用作1个或2个8位数据寄存器;反之亦然地址寄存器不能分解为8位使用除了通用目的之外,有些操作规定只能使用某个寄存器,即寄存器的特殊用法通用寄存器通用寄存器分为数据寄存器与指针和变址寄存器两组。数据寄存器包括4个16位的寄存器AX、BX、CX和DX,一般用来存放16位数据,故称为数据寄存器。其中的每一个又可根据需要将高8位和低8位分成独立的两个8位寄存器来使用,即AH、BH、CH、DH和AL、BL、CL、DL两组,用于存放8位数据,它们均可独立寻址、独立使用。指针和变址寄存器包括指针寄存器SP、BP和变址寄存器SI、DI,都是16位寄存器,,一般用来存放地址的偏移量。这8个16位通用寄存器都具有通用性,从而提高了指令系统的灵活性。但在有些指令中,这些通用寄存器还各自有特定的用法,见下表。

通用寄存器的特殊用法(默认用法)寄存器特殊用法AX,AL乘法/除法指令,作累加器;I/O操作时,作数据寄存器AH在LAHF指令中用作目的寄存器((AH)←标志)AL在BCD码及ASCII码运算指令中作为累加器;在XLAT指令中作为累加器(AL)←((AL)+(BX))BX在间接寻址中作为基址寄存器和变址寄存器CX在循环程序中,作循环次数计数器CL在移位和循环移位指令中,作为移位位数和循环移位次数的计数寄存器(指令执行后,(CL)不变)DXI/O指令间接寻址时,作为地址寄存器;在乘法指令中作为辅助累加器(当乘积或被除数为32位时,存放高16位数)BP在间接寻址中,作为基址寄存器SP在堆栈操作中,作为堆栈指针SI间接寻址时,作为地址寄存器或变址寄存器;在串操作指令中作为源变址寄存器DI在间接寻址时,作为地址寄存器或变址寄存器;在串操作指令中作为目的变址寄存器8086CPU功能结构图8位队列总线总线控制逻辑内部总线16位地址加法器20位地址总线16位数据总线总线接口部件BIU123456指令队列CSDSSSESEU控制器ALU暂存器标志寄存器执行部件EU通用寄存器AXAHALBXBHBLCXCHCLDXDHDLSPBPDISI80888086IP暂存器8086总线二、8086总线接口部件BIU(BusInterfaceUnit)BIU负责与M、I/O端口传送数据、地址。访问存储器时,需要生成20位的物理地址;要不断从内存中取指令并送到指令队列;CPU执行指令时,要配合执行部件从指定的内存单元或者外设端口中取数据,并将数据传送给执行部件;或把执行部件的操作结果传送给指定的M或I/O口指令队列缓冲器8088为4字节,8086为6字节。为FIFO(先进先出)结构指令队列至少保持有一条指令,且只要有一条指令,EU就开始执行;指令队列只要有空,BIU自动执行取指操作,直到填满为止;若EU要进行M/IO存取数据,BIU在执行完现行取指操作周期后进行。当执行转移指令时,EU要求BIU从新的地址中重新取指。队列中原有指令被清除。新取得的第一条指令直接送EU执行,随后取得的指令填入队列BIU的段寄存器4个16位段寄存器CS、DS、SS、ES用来识别当前可寻址的四个段,每个段的功能各不相同CS:CodeSegmentRegister代码段寄存器,指示当前执行程序所在存储器的区域。DS:DataSegmentRegister数据段寄存器,指示当前程序所用之数据的存储器区域。SS:StackSegmentRegister堆栈段寄存器,指示当前程序所用之堆栈位于的存储器区域。ES:ExtraSegmentRegister附加段寄存器,指示当前程序所用之数据位于的另外存储器区域,在字符串操作中常用到。这些段寄存器的内容与有效的地址一起,用于确定内存的物理地址。通常用CS、DS、ES以及SS用于确定代码段、数据段、附加段以及堆栈段的基地址。指令指针IP—InstructionPointer指令指针寄存器IP寄存器是一个专用寄存器,用来存储代码段中的偏移地址;程序运行过程中IP始终指向下一次要取出的指令偏移地址通常不能被直接访问,也不能直接赋值,指令中不会出现IP。它与代码段寄存器CS联用,确定下一条指令的物理地址计算机通过CS:IP寄存器来控制指令序列的执行流程总线控制逻辑处理器与外界总线联系的转接电路。包括三组总线:20位地址总线,16/8位双向数据总线,一组控制总线地址生成器CS左移4位20位+地址加法器CS16位物理地址20位IP或偏移地址三、EU与BIU的协同工作在一条指令的执行过程中可以取出下一条(或多条)指令,指令在指令队列中排队;在一条指令执行完成后,就可以立即执行下一条指令,减少CPU为取指令而等待的时间,提高CPU的利用率和整个运行速度。8086/8088的寄存器结构数据寄存器地址指针及变址寄存器控制寄存器组段寄存器组AXAHAL累加器BXBHBL基址寄存器CXCHCL计数寄存器DXDHDL数据寄存器通用寄存器组

SP堆栈指针BP基址指针SI源变址指针DI目的变址指针IP指令指针FLAG标志寄存器

CS代码段寄存器DS数据段寄存器SS堆栈段寄存器ES附加段寄存器

158702.2.38086/8088引脚信号AD0~AD15地址/数据复用引脚(双向、三态)A16/S3~A19/S6地址/状态复用引脚(输出、三态)12345678910111213141516171819204039383736353433323130292827262524232221GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCCAD15A16/S3A17/S4A18/S5A19/S6BHE/S7MN/MXRDHOLD*HLDA*WR*M/IO*DT/R*DEN*ALE*INTA*TESTREADYRESET8086

/S7总线高位允许/状态(输出,三态)读信号(输出,低电平有效,三态)测试信号(输入、低电平有效)一、通用信号READY准备就绪(输入、高电平有效)状态信号指示当前使用段S4S3当前正在使用的段寄存器00ES01SS10CS或未使用任何段寄存器11DS一、8086通用引脚信号INTR可屏蔽中断请求信号(输入、高有效)NMI非屏蔽中断请求(输入,上升沿触发)RESET复位信号(输入,高电平有效)CLK时钟输入端12345678910111213141516171819204039383736353433323130292827262524232221GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCCAD15A16/S3A17/S4A18/S5A19/S6BHE/S7MN/MXRDHOLD*HLDA*WR*M/IO*DT/R*DEN*ALE*INTA*TESTREADYRESET8086MN/最小/最大模式控制输入端复位后相关寄存器的初始状态寄存器初始状态寄存器初始状态状态标志寄存器清0IP0000HCSFFFFHDS0000HSS0000HES0000H指令队列寄存器清空其他寄存器0000H二、8086最小模式引脚信号12345678910111213141516171819204039383736353433323130292827262524232221GNDAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCCAD15A16/S3A17/S4A18/S5A19/S6BHE/S7MN/MXRDHOLD*HLDA*WR*M/IO*DT/R*DEN*ALE*INTA*TESTREADYRESET8086写信号(输出、低电平有效)中断响应信号(输出、三态、低电平有效)DT/数据发送/接收控制信号输出(输出、三态)数据允许信号(输出、三态、低电平有效)M/存储器/IO控制信号(输出、三态)ALE地址锁存允许信号(输出)HOLD总线保持请求信号(输入、高电平有效)HLDA总线保持响应信号(输出、高电平有效)三、8088/8086两种工作模式最小模式:系统只有8086或8088一个微处理器。所有控制信号直接由CPU提供最大模式:由两个或多个微处理器(主处理器和协处理器)组成中(大)规模系统,CPU并不直接向外界提供全部控制信号,而由S0S1S2通过Intel8288总线控制器提供不同的工作模式下,CPU有一部分引脚具有不同的功能由第33号引脚(MN/)控制2.38086系统的组成地址锁存器8282总线收/发器82868086最小模式下的系统组成两种模式的比较2.3.1地址锁存器8282内部结构8282DI1DI2DI3DI4DI5DI6DI7DO1DO2DO3DO4DO5DO6DO7DQDOCLKDI00STBOE地址锁存器8282引脚信号STBDI0DI1直通保持高阻DO0DO1DO0DO1DO2DO3DO4DO5DO6DO7STBVCC82821234567891020191817161514131211DI1DI2DI3DI4DI5DI6DI7OEGNDDI0OE74LS373的功能与8282相同地址锁存功能STB为高电平期间,输出等于输入;为下降沿时,输出锁存,与输入无关ALE为8088/8086地址锁存允许,高电平有效,输出,复用线上出现地址时为高电平锁存器的DI0-DI7与CPU的地址/数据复用线相连,STB与ALE相连。ALE为正脉冲时,输出地址;为低电平时,输出锁存,与数据无关OE为有效电平(低电平)时,正常输出;为无效电平(高电平)时,输出高阻双向数据收发器8286内部结构A0B08286OETA1A2A3A5A4A6A7B1B2B3B5B4B6B7OET传送方向01Ai→Bi00Bi→Ai11高阻状态10高阻状态功能表双向数据收发器8286引脚信号B0A1A2A3A4A5A6A7OEGNDB1B2B3B4B5B6B7TVCCA082861234567891020191817161514131211两方面的功能⑴、三态输出直接驱动总线⑵、具有数据收和发两个方向的传输、隔离控制功能。常用芯片:Intel8286,Intel8287和74LS2458286输入输出同相8287输入输出反相74LS245的功能与8286相同双向数据总线收发器最小模式总线连接8086最小工作模式下控制核心单元的组成地+5V读写控制读写控制读写控制CSH奇地址存储体8284时钟发生器RESETREADYCBD7~D0D15~D8DBCSL偶地址存储体CSI/O接口ABA0A1~A19BHE

STBOE8282锁存器8086CPUMN/MXINTARDCLKWRREADYM/IORESETALEBHEA19-A16AD15-AD0DENDT/RTOE8286收发器D15~D08086最大工作模式下控制核心单元的组成地地读写控制读写控制读写控制CSI/O接口

STBOE8282锁存器TOE8286TOE8286收发器8284时钟发生器RESETREADYA1~A19A0BHEABD7~D0D15~D8DBCBD15~D0CSH奇地址存储体CSL偶地址存储体8288S0INTAS1MRDCS2MWTCDENIORCDT/RIOWCALE8086CPUS0S1S2MN/MXCLKREADYRESET

BHEA19-A16AD15-AD02.4存储器组织8086有20条地址线,寻址能力为1MB字节地址:能存储一个字节的存储单元的地址字地址:占用两个相邻字节单元的地址数值较小的单元地址(低字节地址)字符串地址:存放在最低地址单元的第一个字节地址字的存储:低字节在较低地址单元,高字节在较高的相邻地址单元指针的存储:偏移地址在低地址字单元,段地址在较高地址单元内存单元既可以存放数据,也可以存放地址指针(包括偏移地址和段地址),此时地址也可以看成是数据2.4.1信息存放方式示意图地址内容19H 0CH1AH 1FH

1BH 01H1CH 23H1DH 74H1EH ABH1FH 41H20H 42H21H 43H22H 44H23H 45H地址为1AH的字节数据1FH1AH 1FH地址为1BH的非规则字数据2301H1BH 01H1CH 23H地址为1EH的规则字数据41ABH1EH ABH1FH 41H首地址为1FH的字符串“ABCDE”

21H43H23H45H20H42H22H44H1FH 41H地址为1AH的双字数据7423011FH;如解释为指针数据,则段基址为7423H,偏移量为011FH1AH 1FH1BH 01H1CH23H1DH74H8086奇偶存储器和总线连接a)存储器地址空间分配D7~D0D15~D8A0A19~A1DBABb)存储体与总线的连接地址内容内容地址00000H00001H00002H00003HFFFFEH偶地址存储体512K*8bitA0=0奇地址存储体512K*8bitBHE=0FFFFFHBHED7~D0奇地址存储体SELA18~A0D7~D0偶地址存储体SELA18~A0存储单元的访问A1-A19D15—D8D7—D0SELA0-A18高位(奇)库512KD0-D7SELA0-A18低位(偶)库512KD0-D7A0BHEA0读/写的字节00高低两个字节01奇数地址的高位字节10偶数地址的低位字节11不传送

、A0在每次读/写操作中都会出现低电平,即无论字节或字操作,总线上总是默认传送1个字,然后再按照指令进行数据的取舍。存储器中的数据存放规则存储单元中可以存放的内容包括:数据、地址指针(偏移地址和段地址)、程序代码。字节数据的存储:存储在1个存储单元中。字数据的存储:占用2个连续的字节单元,低字节在较低地址单元中,高字节在较高地址单元中。字的地址为低字节地址(较低的地址)。字地址为偶数——规则存放的字。字符串的存储:按字符顺序依次连续存放,整个串的地址为存放第一个字符的最低地址。地址指针(双字数据)的存储:地址偏移量存放在低地址字单元,段基址在较高地址单元。2.4.2存储器分段分段原因:8086有20根地址线,但其内部可以表示的地址最多只能是16位。为了能寻址1MB空间,8086对存储器进行逻辑分段,每个段最大为64KB,最小为16B(此时最多64K个段)。连续逻辑段A段B段C段D段E段00000H10000H20000H30000H40000H……实际(物理)存储器分离完全重叠部分重叠存储器的逻辑地址和物理地址加法器8086物理地址PA的形成,其中的16位偏移量也称为有效地址EA(出现在指令中)段寄存器15016位偏移量01520位物理地址019段基址1123H偏移量13H段基址1124H偏移量03H物理地址PA与逻辑地址LA的对应存储单元物理地址

11230H11231H11232H……1123FH11240H11241H11242H

11243H0000存储器段操作

四个段寄存器(CS、DS、SS、ES)指示四个现行段的段地址。段和段之间可以相互分离、连接、部分重叠或完全重叠。存储器操作默认段基址可使用段基址偏移地址取指令CS—IP堆栈操作SS—SP变量DSCS、ES、SS有效地址*源数据串DSCS、ES、SSSI目的数据串ES—DI堆栈中的变量SS—BP*由指令给的出寻址方式所指定的地址逻辑地址源物理地址的生成取指令时:由代码段寄存器CS,再加上IP的16位偏移量堆栈操作时:由堆栈段寄存器SS,再加上SP所决定的16位偏移量取数据:ES或DS再加寻址的偏移地址程序所需的存储空间不超过64KB(包括程序、堆栈和数据),可使CS、SS、DS、ES相等任务的程序、堆栈以及数据分别不超过64KB,CS,DS,SS可分别置初值,否则用子程序结构2.4.38086系统堆栈操作堆栈:后进先出(LIFO)的一段内存栈顶:永远由地址指针(SS:SP)指示栈底:最初始的地址指针(SS:SP)指示处堆栈深度:最大64KB堆栈的作用:调用子程序(或转向中断服务程序)时,把断点及有关的寄存器、标志位及时正确地保存下来,并保证逐次正确返回堆栈操作指令:入栈指令PUSH与出栈指令POP入/出栈操作数:是一个字,而不是一个字节子程序调用指令或中断响应自动完成时,恢复断点地址由返回指令(RET或IRET)完成堆栈初始化操作堆栈段起始地址栈底及初始栈顶地址存储单元10200H10202H10204H10206H10208H1020AH1020CH……10230H0011

SS1020SP初值0030入栈操作栈顶PUSHAX

1234PUSHBX

1AB110200H10202H10204H10206H10208H……1022CH1022EH10230H0011

SS1020

SP0030栈底002E0030堆栈段起始地址12341AB1002E002C出栈操作栈顶POPAXPOPBX10200H10202H10204H10206H10208H……1022CH1AB11022EH123410230H0011

SS1020

SP002C(栈底)堆栈段起始地址002E0030

1AB1

12342.4.4I/O端口组织存储单元地址00000H00001H……FF0FFHI/O端口地址FF100HFF101H……FFFFFH(a)存储器映像编址方式

特点:将端口看作存储单元,仅以地址范围的不同来区分两者。

优点:对端口的操作和对存储单元的操作完全一样,因此系统简单,并且对端口操作的指令种类较多。

缺点:CPU对存储单元和I/O端口的实际寻址空间都小于其最大寻址空间。存储单元地址00000H00001H……FF0FFHFF100HFF101H……FFFFFHI/O端口地址0000H0001H……F0FFHF100HF101H……FFFFH特点:系统视端口和存储单元为不同的对象。优点:系统中存储单元和I/O端口的数量可以达到最大。缺点:需要专门的信号来指示系统地址线上出现的是存储单元地址还是端口地址;专用的端口操作指令一般比较单一。X86的编址方式(b)I/O端口独立编址三、输入/输出8086系统通过I/O端口访问外部设备,既可以接收外部信息,又可以把信息送往外设,并可发出命令控制外部设备8086CPU具有读端口信息和写端口信息的专用I/O指令,可寻址216=64K个字节端口2.58086总线时序学习CPU时序的目的1.掌握时序有利于深入了解指令的执行过程。2.有利于提高所编程序的质量,减小程序空间,加快程序运行速度。3.帮助我们在构成微机系统时,考虑扩展的I/O端口、存储器等与CPU连接的时序配合。4.在微机实时控制应用中,精确计算程序运行时间,便于与控制过程相配合。一些基本概念:(1)指令周期—InstructionCycle一条指令从取出到执行完毕多需要的时间称为指令周期;一个指令周期由几个机器周期组成。(2)机器周期—MachineCycle一个机器周期就是完成某一独立操作所持续的时间;如:取指令操作码、写一次数据到存储器等。一个机器周期由几个时钟周期组成。(3)时钟周期—ClockCycleCPU时钟频率的倒数,也叫T状态。这是CPU的最小时间单位。(4)总线周期—BusCycle时序图:描述某一操作过程中,芯片/总线上有关引脚信号随时间发生变化的关系图总线周期:执行一个总线操作所需要的时间一个基本的总线周期通常包

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论