




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本章学习目的本章学习目的2022-1-141.掌握微处理器的编程结构掌握微处理器的编程结构;2.掌握标志寄存器掌握标志寄存器F各位的含义、作用及各位的含义、作用及DEBUG运行后标志位的表示方法运行后标志位的表示方法;3.掌握掌握8086微处理器的主要引脚功能微处理器的主要引脚功能;4.掌握掌握8086系统的系统的存储器组织结构存储器组织结构及及堆栈堆栈的活动的活动情况情况;5.掌握掌握8086的时钟及其发生电路的时钟及其发生电路, ,记住系统记住系统复位复位后各寄存器的状态。后各寄存器的状态。第一节第一节 8086微处理器内部结构微处理器内部结构一、指令和程序的解释方式一、指令和程序的解释方
2、式机器指令机器指令操作码操作码操作数操作数 +若干条指令构成程序若干条指令构成程序在微机中在微机中, ,微处理器解释一条指令的完整步骤可以微处理器解释一条指令的完整步骤可以归纳为如下两个阶段归纳为如下两个阶段:v 取指取指 从内存中取出指令从内存中取出指令, ,明确指令规定的功能明确指令规定的功能;8位机顺序解释位机顺序解释8086重叠解释重叠解释VSv 执行执行 分析指令要求实现的功能分析指令要求实现的功能, ,读取所需要的操读取所需要的操 作数作数, ,执行指令规定的操作执行指令规定的操作, ,并保存执行结果。并保存执行结果。8086的内部结构的内部结构总体结构总体结构NEXT8086/
3、/8088 CPU的内部是由两个独立的工作部的内部是由两个独立的工作部件构成件构成,分别是总线接口部件分别是总线接口部件BIU( (Bus Interface Unit) )和执行部件和执行部件EU( (Execution Unit) )。图中虚。图中虚线右半部分是线右半部分是BIU,左半部分是左半部分是EU。两者并行操。两者并行操作作,提高了提高了CPU的运行效率。的运行效率。 下面分别介绍下面分别介绍BIU和和EU两者的功能两者的功能:返回任务任务: ( (1) )从内存取指令从内存取指令指令队列缓冲器指令队列缓冲器; ( (2) ) 取数据到运行单元进行运算并将运算结果送取数据到运行单元
4、进行运算并将运算结果送到目的单元到目的单元( (内存或外设端口内存或外设端口) ); 总线接口部件总线接口部件BIU功能功能: 实现实现8086CPU与存储器和外部设备之与存储器和外部设备之 间的数据传送。间的数据传送。( (3) )重叠实现取指令与执行指令!重叠实现取指令与执行指令!返回设立指令队列缓冲器的目的是为了实现重叠解释指设立指令队列缓冲器的目的是为了实现重叠解释指令。令。工作原理工作原理:缓冲器中只要有一条指令缓冲器中只要有一条指令, ,EU就开始执行就开始执行;缓冲器中只要有两个字节为空缓冲器中只要有两个字节为空, ,BIU便自动执行取指便自动执行取指操作操作;缓冲器缓冲器结构结
5、构: 指令队列缓冲器为指令队列缓冲器为6字节字节( (8088只有只有4字节字节) ) 容量的容量的FIFO。当当EU执行执行完转移、调用和返回等切换程序流程的完转移、调用和返回等切换程序流程的指令时指令时, ,缓冲器中原来的内容将被清除缓冲器中原来的内容将被清除, ,BIU从内存从内存中新的位置开始重新预取指令填入队列中。中新的位置开始重新预取指令填入队列中。返回设立地址加法器的目的设立地址加法器的目的: 8086 CPU地址总线有地址总线有20位位, ,而内部地址寄存器都是而内部地址寄存器都是16位位, ,需要加法器形需要加法器形成成20位地址。位地址。地址发生器地址发生器组成组成: 地址
6、加法器、指令指针地址加法器、指令指针IP和段寄存器。和段寄存器。工作原理工作原理: 段寄存器内容段寄存器内容16 + 偏移地址偏移地址( (IP或或指令中的操作数地址给出指令中的操作数地址给出) )。返回执行部件执行部件EU结构结构: ( (1) )16位算术逻辑单元位算术逻辑单元ALU;( (2) )16位标志寄存器位标志寄存器F;( (3) )数据暂存寄存器数据暂存寄存器( (与编程无关与编程无关, ,即不对用户开放即不对用户开放) )( (4) )通用寄存器组:通用寄存器组: AX、BX、CX、DX-数据寄存器数据寄存器 SP、BP-指针寄存器指针寄存器 SI、DI-变址寄存器变址寄存器
7、功能功能: 执行指令并暂执行指令并暂存运算结果存运算结果( (5) )EU控制电路控制电路: 内部电路内部电路, ,不对用户开放不对用户开放返回8086 CPU的编程模型的编程模型程序设计者所看到程序设计者所看到( (或程序可见或程序可见) )的的8086CPU即即为该为该CPU的编程模型。包括三个部分的编程模型。包括三个部分:编程模型编程模型寄存器组寄存器组存储器存储器I/O资源资源三、三、8086的寄存器结构的寄存器结构通用寄存器通用寄存器段寄存器段寄存器AH AL AX 累加器累加器BH BL BX 基址寄存器基址寄存器CH CL CX 计数寄存器计数寄存器DH DL DX 数据寄存器数
8、据寄存器 SP 堆栈指针堆栈指针 BP 基址指针基址指针 SI 源变址寄存器源变址寄存器 DI 目的变址寄存器目的变址寄存器 CS 代码段寄存器代码段寄存器 DS 数据段寄存器数据段寄存器 ES 附加段寄存器附加段寄存器 SS 堆栈段寄存器堆栈段寄存器 IP 指令指针指令指针 F 标志寄存器标志寄存器 专用寄存器专用寄存器1. 通用寄存器通用寄存器( (1) )数据寄存器数据寄存器数据寄存器可以用于存放数据寄存器可以用于存放8位或位或16位的二进制操作位的二进制操作数数,这些操作数可以是参加操作的原始数据、运算这些操作数可以是参加操作的原始数据、运算得到的中间结果得到的中间结果,也可以是操作数
9、的地址。大多数也可以是操作数的地址。大多数算术和逻辑运算指令都可以使用这些寄存器算术和逻辑运算指令都可以使用这些寄存器。在在8086微处理器中微处理器中, ,数据寄存器有数据寄存器有4个个, ,累加器累加器AX( (Accumulator) )、基址寄存器基址寄存器BX( (Base) )、计数计数寄存器寄存器CX( (Count) )、数据寄存器数据寄存器DX( (Data) )。 通用寄存器共有通用寄存器共有8个个, ,又可分为两组。又可分为两组。每个每个16位数据寄存器可分为高位数据寄存器可分为高8位位( (AH、BH、CH和和DH) )和低和低8位位( (AL、BL、CL和和DL),)
10、,可分别寻址可分别寻址, ,独立操作。独立操作。 指针寄存器和变址寄存器一般用来存放地址偏移量指针寄存器和变址寄存器一般用来存放地址偏移量,用于堆栈操作和变址运算中计算操作数的有效地址用于堆栈操作和变址运算中计算操作数的有效地址。指针寄存器指的是堆栈指针寄存器指针寄存器指的是堆栈指针寄存器SP( (Stack Pointer) )和基址指针寄存器和基址指针寄存器BP( (Base Pointer) ),其中其中SP用来指用来指示堆栈顶部单元的位置示堆栈顶部单元的位置,实现堆栈操作实现堆栈操作,而而BP用来存用来存放在现行堆栈段中的一个数据区的基地址。放在现行堆栈段中的一个数据区的基地址。 (
11、(2) )指针寄存器和变址寄存器指针寄存器和变址寄存器变址寄存器包括源变址寄存器变址寄存器包括源变址寄存器SI( (Source Index) )和目和目的变址寄存器的变址寄存器DI( (Destination Index) ),分别用来存放分别用来存放源操作数和目的操作数的偏移地址。源操作数和目的操作数的偏移地址。寄寄 存存 器器 操操 作作AX 1) ) 在字乘字除指令中作累加器; 2) ) 在字I/O操作时作数据寄存器。AH 1) ) 在字节乘字节除指令中存放结果; 2) ) 在LAHF中作目的寄存器。AL 1) ) 在字节乘字节除指令中作累加器; 2) ) 在字节I/O操作时作数据寄存
12、器; 3) ) BCD、ASCII码数据运算时作累加器; 4) ) 在XLAT指令中作累加器。BX 1) ) 间接寻址时作地址寄存器和基址寄存器; 2) ) 在XLAT指令中作基址寄存器。CX 1) ) 串操作时作串长计数器; 2) ) 循环操作时作循环次数计数器。 CL 移位操作时作移位次数计数器。 DX 1) ) 字乘字除指令中作辅助寄存器; 2) ) I/O指令间接寻址时作端口地址寄存器。 SP 堆栈操作时作堆栈指针。 SI 1) ) 间接寻址时作地址寄存器和变址寄存器; 2) ) 串操作时作源变址寄存器。 DI 1) ) 间接寻址时作地址寄存器和变址寄存器; 2) ) 串操作时作目的变
13、址寄存器。 在 某 些 指在 某 些 指令中令中, ,以上以上各 通 用 寄各 通 用 寄存 器 具 有存 器 具 有特 定 的 用特 定 的 用途途, ,称为寄称为寄存 器 的 隐存 器 的 隐含用法。含用法。指令指针指令指针IP是一个是一个16位专用寄存器位专用寄存器, ,程序运行时程序运行时, ,它它始终指向始终指向EU要执行的下一条指令所在单元。当要执行的下一条指令所在单元。当EU执行本条指令时执行本条指令时, ,IP中的内容自动增量中的内容自动增量, ,以指向下一以指向下一条指令所在的内存单元。条指令所在的内存单元。2. 指令指针指令指针IP( (Instruction Pointe
14、r) )需要注意的是需要注意的是, ,程序中不能随意对程序中不能随意对IP进行存取操进行存取操作作, ,只有转移指令、子程序调用和返回指令以及只有转移指令、子程序调用和返回指令以及中断处理时才能对中断处理时才能对IP的内容进行修改和设置。的内容进行修改和设置。代码段寄存器代码段寄存器CS( (Code Segment),),指向当前代码段指向当前代码段;数据段寄存器数据段寄存器DS( (Data Segment),),指向当前数据段指向当前数据段;附加段寄存器附加段寄存器ES( (Extra Segment),),指向当前附加段指向当前附加段;堆栈段寄存器堆栈段寄存器SS( (Stack Se
15、gment),),指向当前堆栈段指向当前堆栈段。8086系统对内存实行分段管理系统对内存实行分段管理, ,在在BIU中有中有4个个16位位的段寄存器的段寄存器, ,专门用于存放各段在内存中的起始地址专门用于存放各段在内存中的起始地址( (段基址段基址) )。这这4个段寄存器是个段寄存器是:1M字节的地址是分段寻字节的地址是分段寻址的址的, ,分段是个动态概分段是个动态概念。段基址与具体程序念。段基址与具体程序无关无关。标志寄存器位于标志寄存器位于EU中, ,它是一个它是一个16位的寄存器位的寄存器, ,但但实际上只用了其中实际上只用了其中9位。位。D15D0 OF DF TF IF SF ZF
16、 AF PF CF4. 标志寄存器标志寄存器F( (Flag Register) )( (1) )状态标志位状态标志位 用于反映用于反映EU执行算术或逻辑运算以后的结果特征执行算术或逻辑运算以后的结果特征,指令执行时由指令执行时由EU根据指令的执行结果设置这些位根据指令的执行结果设置这些位的状态的状态,并进一步影响或控制某些后继指令并进一步影响或控制某些后继指令( (如条如条件转移指令、循环指令等件转移指令、循环指令等) )的执行。不同指令对各的执行。不同指令对各状态标志位的影响是不同的。状态标志位的影响是不同的。根据各位的作用和含义根据各位的作用和含义, ,各标志位又分为状态标志各标志位又分
17、为状态标志位和控制标志位两大类。位和控制标志位两大类。状态标志位共有状态标志位共有6位位, ,它们分别是它们分别是:v 进位标志进位标志CF( (Carry Flag) ) 反映算术运算后最高反映算术运算后最高位是否出现进位或借位位是否出现进位或借位,有则为有则为“1”, ,无则为无则为 “0”。v 奇偶标志奇偶标志PF( (Parity Flag) ) 反映指令执行结果反映指令执行结果低低8 位位数据中数据中1的个数是否为偶数的个数是否为偶数, ,若是则该位置若是则该位置“1”, ,否则置否则置“0”。v 辅助进位标志辅助进位标志AF( (Auxiliary Flag) ) 反映运算结果反映
18、运算结果的的低低4位位是否向高位产生进位或借位是否向高位产生进位或借位, ,有则为有则为“1”, ,无则为无则为“0”。v符号标志符号标志SF( (Sign Flag) ) 反映运算结果最高位的反映运算结果最高位的状态状态, ,并与运算结果最高位状态相同。表明了本并与运算结果最高位状态相同。表明了本次运算的结果是正还是负。次运算的结果是正还是负。v零标志零标志ZF( (Zero Flag) ) 反映运算结果是否为零反映运算结果是否为零,若是若是,则该位置则该位置“1”,否则置否则置“0”。v溢出标志溢出标志OF( (Overflow Flag) ) 反映带符号数进行反映带符号数进行算算 术运算
19、后是否有溢出术运算后是否有溢出, ,有则为有则为“1”, ,无则为无则为“0”。 用于对用于对CPU的某些操作实施控制的某些操作实施控制, ,并可在程序中用并可在程序中用相应的指令来设置其状态。相应的指令来设置其状态。3位控制标志分别是位控制标志分别是:v方向标志方向标志DF( (Direction Flag) ) 用于控制串操作指令用于控制串操作指令执行时的步进方向执行时的步进方向, ,该位为该位为“1”, ,则串操作指令按地则串操作指令按地址递减的顺序对串进行操作址递减的顺序对串进行操作, ,否则按地址递增的顺否则按地址递增的顺序进行操作。序进行操作。( (2) )控制标志位控制标志位v中
20、断允许标志中断允许标志IF( (Interrupt Flag) ) 指示是否允许系指示是否允许系 统响应外部的可屏蔽中断请求统响应外部的可屏蔽中断请求, ,该位为该位为“1”,”,表示表示允许允许( (开中断开中断),),否则表示禁止否则表示禁止( (关中断关中断) )v陷阱标志陷阱标志TF( (Trace Flag) ) 当该位为当该位为“1”时时,CPU每执行完一条指令便自动产生一个内部中断每执行完一条指令便自动产生一个内部中断,并转并转去执行一个中断服务程序去执行一个中断服务程序,可以借助该中断服务程可以借助该中断服务程序来检查每条指令的执行情况序来检查每条指令的执行情况,称为称为“单步
21、工作方单步工作方式式”,常用于程序的调试。常用于程序的调试。DEBUG中标志的表示中标志的表示 NV等价于等价于 OF=0,OV等价于等价于OF=1; UP等价于等价于 DF=0,DN等价于等价于DF=1; DI 等价于等价于 IF =0,EI 等价于等价于 IF =1; PL等价于等价于 SF=0,NG等价于等价于SF=1; NZ等价于等价于 ZF=0,ZR等价于等价于ZF=1; NA等价于等价于 AF=0,AC等价于等价于AF=1; PO等价于等价于 PF=0,PE等价于等价于 PF=1; NC等价于等价于 CF=0,CY等价于等价于CF=1。Intel 8088是是准准16位位CPU,其
22、内部采用其内部采用16位结构位结构,与与8086基本相同基本相同,外部数据总线宽度为外部数据总线宽度为8位位。8088内内部也包括两大功能部件部也包括两大功能部件,其中其中EU与与8086完全一样完全一样,只是只是BIU略有区别略有区别: 8086指令队列是指令队列是6字节长字节长,而而8088指令队列只指令队列只有有4字节长字节长; 四、四、8088与与8086在内部结构上的比较在内部结构上的比较 对于对于8086微处理器微处理器,当指令队列缓冲器中有当指令队列缓冲器中有2个字节变空时个字节变空时,BIU便自动执行取指操作便自动执行取指操作;而而对于对于8088,只要指令队列缓冲器中有只要指
23、令队列缓冲器中有1个字节个字节变空便自动执行取指操作变空便自动执行取指操作。第二节第二节8086微处理器引脚功能微处理器引脚功能采用采用40引脚引脚的的DIP( (双列双列直插直插) )封装封装 采用采用分时复用分时复用技术技术, ,在不同时刻通过相同引脚传在不同时刻通过相同引脚传送不同的信息送不同的信息, ,从而减少了引脚数量。从而减少了引脚数量。 在两种不同的工作方式下在两种不同的工作方式下, ,部分引脚具有两种不部分引脚具有两种不同的功能定义。同的功能定义。 8086是是Intel公司的第三代微处理器公司的第三代微处理器16位微处理位微处理器器。它具有如下特点它具有如下特点:一、引脚功能
24、一、引脚功能 8086的的40条引脚信号按功能分为条引脚信号按功能分为4部分部分,即地址总即地址总线、数据总线、控制总线以及其它线、数据总线、控制总线以及其它( (时钟和电源时钟和电源) )引引脚。脚。数据总线用来在数据总线用来在CPU和内存和内存( (或或I/O设备设备) )之间传递之间传递数据数据,地址总线用于传送地址总线用于传送 CPU产生的内存单元产生的内存单元( (或或I/O端口端口) )的地址的地址。前者为前者为16位双向三态总线位双向三态总线, ,后者后者为为20位输出三态总线位输出三态总线, ,其中其中:1. 地址总线和数据总线地址总线和数据总线 AD15AD0为为地址地址/
25、/数据数据。在每个在每个总线周期的开始总线周期的开始, ,用作地址总线的低用作地址总线的低16位位, ,以给出以给出内存单元内存单元( (或或I/O端口端口) )的地址。其它时间作为数据的地址。其它时间作为数据总线总线, ,用于传输数据。用于传输数据。 A19A16/ /S6S3为为地址地址/ /状态状态分时复用总线。分时复用总线。在每个总线周期开始在每个总线周期开始, ,用作地址总线的高用作地址总线的高4位位, ,以给以给出内存单元的高出内存单元的高4位地址位地址;在在I/O操作时操作时, ,这这4位置位置“0”。在总线周期的其它时间在总线周期的其它时间, ,这这4条信号线指示条信号线指示C
26、PU的状态信息的状态信息, ,其中其中, ,S6恒为低电平恒为低电平;S5反映标志反映标志寄存器中寄存器中IF的当前值的当前值;S4和和S3表示正在使用哪个段寄存器。表示正在使用哪个段寄存器。 S4S3状态状态( (所使用的寄存器所使用的寄存器) ) 0 0ES0 1SS1 0CS1 1DSBHE/ /S7为为地址高允许地址高允许/ /状态状态分时复用引脚分时复用引脚。在总在总线周期的开始线周期的开始, ,作为数据总线高半部分允许信号作为数据总线高半部分允许信号, ,当当BHE/ /S7为低电平时为低电平时, ,将读将读/ /写的写的8位数据与位数据与AD15AD8接通接通, ,该信号与地址总
27、线的最低位该信号与地址总线的最低位A0配合以决定配合以决定传送的数据字中高字节是否有效传送的数据字中高字节是否有效, ,传送的是传送的是16位还位还是是8位数据。在总线周期的其它时间位数据。在总线周期的其它时间, ,该引脚输出备该引脚输出备用状态信号用状态信号S7。2. 控制总线控制总线 控制总线是传送控制信号的一组信号线控制总线是传送控制信号的一组信号线, ,其中有些其中有些是输出线是输出线, ,用来传送用来传送CPU送至其它部件的控制命令送至其它部件的控制命令;有些是输入线有些是输入线, ,由外部向由外部向CPU输入状态及请求信号输入状态及请求信号( (复位、中断请求等复位、中断请求等)
28、)。8086的控制总线中有一条的控制总线中有一条MN/ /MX线线,即即最小最小/ /最大最大方式控制线方式控制线, ,用于决定用于决定8086的工作方式的工作方式。当其接当其接+5V时时, ,8086处于最小方式处于最小方式;当其接地时当其接地时, ,8086处于处于最大方式。最大方式。以下几条不受以下几条不受MN/ /MX影响的控制线影响的控制线: 读控制信号读控制信号RD, ,三态三态, ,输出。输出。 准备就绪信号准备就绪信号READY, ,输入。输入。 可屏蔽中断请求信号可屏蔽中断请求信号INTR, ,输入。输入。 非屏蔽中断请求信号非屏蔽中断请求信号NMI, ,输入。当该引脚上产输
29、入。当该引脚上产 生从低电平到高电平的正跳变时生从低电平到高电平的正跳变时, ,表示外部向表示外部向CPU发出非屏蔽中断请求。发出非屏蔽中断请求。 等待测试控制信号等待测试控制信号TEST, ,输入。输入。 复位信号复位信号RESET, ,输入。当其为高电平时输入。当其为高电平时, ,系统系统进入复位状态。进入复位状态。 时钟信号时钟信号CLK, ,输入输入, ,该信号为该信号为8086提供提供基本的定时脉冲。基本的定时脉冲。 电源电源Vcc, ,输入。要求接输入。要求接+5 V10%。 地线地线GND。3. 其它信号其它信号8086有有最小最小和和最大最大两种基本的工作方式两种基本的工作方式
30、, ,最小方式最小方式一般用于构成一个小型的一般用于构成一个小型的单处理机系统单处理机系统, ,而而最大方最大方式式一般用于一般用于多处理机系统多处理机系统。 在在最小方式下最小方式下, ,8086微处理器微处理器提供系统所需的全部提供系统所需的全部控制信号控制信号;二、二、8086的工作方式及信号定义的工作方式及信号定义在最大方式下在最大方式下, ,由由总线控制器总线控制器8288提供系统的总线提供系统的总线控制信号。控制信号。vM/ /IO为存储器为存储器/ /输入输出控制信号输入输出控制信号, ,输出输出, ,三态。三态。用于指示当前用于指示当前CPU是访问存储器是访问存储器( (M/
31、/IO为高电平为高电平) )还是还是I/O端口端口( (M/ /IO为低电平为低电平) )。v DEN为数据允许信号为数据允许信号, ,输出输出, ,三态。在三态。在CPU访问访问存存储器或储器或I/O端口的总线周期的后一段时间端口的总线周期的后一段时间, ,该信号该信号有效有效, ,用作系统中总线收发器的允许控制信号。用作系统中总线收发器的允许控制信号。v DT/ /R为数据发送为数据发送/ /接收信号接收信号, ,输出输出, ,三态。用于三态。用于指示指示CPU是进行读操作是进行读操作( (DT/ /R为低电平为低电平) )还是写还是写操作操作( ( DT/ /R为高电平为高电平) )。v
32、WR 写控制信号写控制信号,输出输出, ,三态三态。用于指示用于指示 CPU在进在进行对存储器或行对存储器或I/O进行写操作进行写操作。vALE 为地址锁存允许信号为地址锁存允许信号( (输出输出) )。8086在总线周在总线周期的开始通过地址总线输出地址的同时期的开始通过地址总线输出地址的同时,通过该引通过该引脚输出一个正脉冲脚输出一个正脉冲,其下降沿用于将地址信息打入其下降沿用于将地址信息打入外部的地址锁存器中外部的地址锁存器中。vINTA 为中断响应信号为中断响应信号( (输出输出, ,三态三态) )。当当8086响应响应来自来自INTR引脚的可屏蔽中断请求时引脚的可屏蔽中断请求时,通过
33、该引脚输通过该引脚输出连续的两个负脉冲出连续的两个负脉冲。三、最小方式下的基本配置三、最小方式下的基本配置时时 钟钟发生器发生器CLKREADYRESETMN/ /MXRDWRM/ /IOALEBHEA19A16AD15AD0地地 址址锁存器锁存器总总 线线收发器收发器DENDT/ /R存储器存储器I/O接口接口VCC8086 CPU数据总线数据总线地址总线地址总线BHE控制控制总线总线v常用的地址锁存器有常用的地址锁存器有Intel 8282、Intel8283、74LS273、74LS373等。对等。对8086系统来说系统来说,由于由于要锁存的信息共有要锁存的信息共有21位位, ,所以至少
34、需要所以至少需要3片锁存器片锁存器芯片芯片, ,每片锁存每片锁存8位信息。位信息。v总线收发器用来对总线收发器用来对AD15AD0上的数据进行缓冲上的数据进行缓冲和驱动和驱动,常用的总线收发器还有常用的总线收发器还有74LS245、Intel 8287、8286等。等。v时钟发生器为时钟发生器为8086( (8088) )以及其它外设芯片提以及其它外设芯片提供所需的时钟信号。常用的时钟发生器供所需的时钟信号。常用的时钟发生器/ /驱动器驱动器芯片为芯片为8284。 8088的的地址地址/ /数据复用总线数据复用总线只有只有8条条, ,即即AD7AD0,而而A15A8为单一功能的地址总线。为单一
35、功能的地址总线。四、四、8088与与8086在引脚和系统配置上的区别在引脚和系统配置上的区别 8088无无BHE/ /S7信号。信号。在系统配置上在系统配置上, ,8088同样有最大模式和最小模式两同样有最大模式和最小模式两种工作方式种工作方式,可以构成单处理机系统可以构成单处理机系统, ,也可构成多处也可构成多处理机系统。只需要一片数据总线收发器用于形成理机系统。只需要一片数据总线收发器用于形成8位系统数据总线。在小规模系统中位系统数据总线。在小规模系统中, ,如只需要用到如只需要用到16根地址总线根地址总线 , ,地址锁存器也只需要地址锁存器也只需要2片。片。 8088的存储器的存储器/
36、/输入输出控制线为输入输出控制线为 IO/ /M,当其为当其为高电平时表示访问高电平时表示访问I/O端口端口;为低电平时表示访问存为低电平时表示访问存储器。储器。8086微处理器内部数据通路和寄存器均为微处理器内部数据通路和寄存器均为16位位, ,内内部部ALU只能进行只能进行16位数据的运算位数据的运算, ,在程序中也只能在程序中也只能使用使用16位地址位地址, ,寻址范围局限在寻址范围局限在21665536( (64 K) )字节字节, ,为了能寻址为了能寻址1 M字节地址空间字节地址空间, ,必须对内存实必须对内存实行分段管理。行分段管理。第三节第三节 8086系统的存储器组织系统的存储
37、器组织 一、存储器的分段管理一、存储器的分段管理为什么要分段管理为什么要分段管理?分段方法分段方法8086程序将程序将1 M字节的存储空间视为一组存储段字节的存储空间视为一组存储段, ,各各段的功能由具体用途而定段的功能由具体用途而定, ,分为分为代码段代码段、堆栈段堆栈段、数据段数据段和和附加段附加段。一个存储段是存储器的一个逻辑单位一个存储段是存储器的一个逻辑单位, ,每个段由连每个段由连续的若干存储单元构成续的若干存储单元构成( (最多最多64 K个个),),并且都是存并且都是存储器中独立的、可分别寻址的单位。储器中独立的、可分别寻址的单位。各段在空间上可以完全重叠各段在空间上可以完全重
38、叠、部分重叠部分重叠, ,可以连续可以连续紧邻紧邻, ,也可分开。也可分开。00000H10000H20000H30000H40000HA段段B段段C段段E段段D段段连续紧邻连续紧邻部分重叠部分重叠完全重叠完全重叠分开分开实际存储器实际存储器逻辑段逻辑段每个段第一个字节的位置称为每个段第一个字节的位置称为“段起始地址段起始地址”, ,段段起始地址是一个能被起始地址是一个能被16整除的数整除的数, ,即二进制数的最即二进制数的最后后4位必须是位必须是0。段起始地址中的。段起始地址中的高高16位位( (段基值段基值) )存放于相应的存放于相应的段寄存器段寄存器中。中。2. 逻辑地址逻辑地址是程序员
39、在程序中使用的地址。每个内存是程序员在程序中使用的地址。每个内存单元的逻辑地址由段基值和段内偏移量两部分构成单元的逻辑地址由段基值和段内偏移量两部分构成, ,其中段基值确定需要访问的单元在哪一个段其中段基值确定需要访问的单元在哪一个段, ,段内段内偏移量确定需要访问的单元相对于该段起始单元的偏移量确定需要访问的单元相对于该段起始单元的距离。距离。段基值段基值和和段内偏移量段内偏移量都是都是16位二进制无符位二进制无符号数号数, ,合称为合称为32位地址指针位地址指针。由这两部分就可唯一。由这两部分就可唯一确定一个内存单元。确定一个内存单元。物理地址物理地址又称又称实际地址实际地址PA( (Ph
40、ysical Address),),是是CPU和存储器进行数据交换时所采用的地址。和存储器进行数据交换时所采用的地址。3. 物理地址的形成方法物理地址的形成方法给出需要访问的内存单元的逻辑地址后给出需要访问的内存单元的逻辑地址后, ,必须首先必须首先由由CPU中的中的BIU将其转换为物理地址将其转换为物理地址, ,才能通过系才能通过系统地址总线送至存储器。统地址总线送至存储器。由于段基值代表的是需要访问的单元所在段的起始由于段基值代表的是需要访问的单元所在段的起始单元地址的单元地址的高高16位位, ,而偏移地址代表需要访问的单而偏移地址代表需要访问的单元与段起始单元的元与段起始单元的距离距离,
41、 ,所以在形成指定单元的所以在形成指定单元的20位物理地址时位物理地址时, ,只需将段基值只需将段基值左移左移4位位再加上再加上16位的位的偏移地址即可。偏移地址即可。怎么确定要访问的单元怎么确定要访问的单元?16位段基值位段基值16位段内偏移量位段内偏移量 16位段基值位段基值 000020位物理地址位物理地址例如例如, ,假设某内存单假设某内存单元 的 逻 辑 地 址 为元 的 逻 辑 地 址 为1234H:5678H, ,则该则该单元的物理地址为单元的物理地址为: PA=1234H16 +5678H=179B8H。同一个物理地址可对应同一个物理地址可对应多个多个逻辑地址逻辑地址, ,但一
42、个逻辑地但一个逻辑地址址只只对应一个物理地址。对应一个物理地址。操作类型操作类型隐含的段基值隐含的段基值可替换的段基址可替换的段基址偏移地址偏移地址取指令取指令CS无无IP堆栈操作堆栈操作SS无无SPBP用作基址寄存器用作基址寄存器SSCS、DS、ESEA通用数据读写通用数据读写DSCS、SS、ESEA字符串操作字符串操作( (源地址源地址) )DSCS、SS、ESSI字符串操作字符串操作( (目的地址目的地址) )ESCS、SS、DSDI在程序执行过程中在程序执行过程中, ,需要访问内存时需要访问内存时, ,必须提供其逻必须提供其逻辑地址。各种访问内存单元的操作中辑地址。各种访问内存单元的操
43、作中, ,逻辑地址的逻辑地址的来源可归纳下表所示。来源可归纳下表所示。EA( (Effective Address) )为有效地址为有效地址, ,相当于段内偏相当于段内偏移量。移量。二、存储器组织二、存储器组织在某些情况下在某些情况下, ,8086系统还需要在内存单元中存储系统还需要在内存单元中存储32位的地址指针位的地址指针, ,此时此时, ,32位地址指针中的段基值和位地址指针中的段基值和偏移地址作为两个偏移地址作为两个16位字数据分别存入连续的位字数据分别存入连续的4个内个内存单元存单元, ,其中其中, ,偏移地址偏移地址存入存入地址较小地址较小的单元的单元, ,段基值段基值存入存入地址
44、较大地址较大的单元的单元。8086系统地址总线有系统地址总线有20条条, ,可以寻址可以寻址1 M( (220) )字节字节的内存空间的内存空间, ,内存空间都按内存空间都按字节字节组织组织, ,每个内存单元每个内存单元存储一个存储一个字节字节的数据的数据, ,并具有一个并具有一个唯一的唯一的20位地址位地址编号编号, ,称为字节地址称为字节地址。如果存放。如果存放16位的字数据位的字数据, ,则需则需要占用连续的两个单元要占用连续的两个单元,其中其中高字节存放在高地址高字节存放在高地址, ,低字节存放在低地址低字节存放在低地址, ,并并以该单元地址以该单元地址作为该作为该字数据字数据的字地址
45、的字地址。数据类型包括数据类型包括:字节数据字节数据: 8 位二进制数位二进制数;字字 数数 据据: 16位二进制数位二进制数;双字数据双字数据: 32位二进制数位二进制数;地址指针地址指针: 32位逻辑地址。位逻辑地址。20000H20001H20002H20003H字节数据字节数据12H字数据字数据3412H地址指针地址指针7856H:3412H20000H20001H20002H20003H12H20000H20001H20002H20003H12H34H12H34H56H78H规则字与非规则字规则字与非规则字8086CPU读写读写16位字数据时位字数据时, ,总是从低位库开始。总是从低
46、位库开始。定义从低位库地址开始存放的字数据为定义从低位库地址开始存放的字数据为规则字规则字;即即从高位库开始存放字数据为从高位库开始存放字数据为非规则字非规则字。CPU读写内存中的规则字只需读写内存中的规则字只需一个一个总线周期总线周期, ,而读而读写非规则字则需要写非规则字则需要两个两个总线周期。总线周期。8086系统中将系统中将1 M字节的内存单元均分为两个存储字节的内存单元均分为两个存储分体分体, ,每个分体包括每个分体包括512 K个单元个单元, ,分别称为分别称为高位库高位库和和低位库低位库。低位库低位库中的所有单元地址为中的所有单元地址为偶数偶数, ,高位库高位库中中的所有单元地址
47、为的所有单元地址为奇数奇数。每个分体的数据线分别与。每个分体的数据线分别与系统数据总线的系统数据总线的高高8位位和和低低8位位相连。相连。 为了不影响程序的执行速度为了不影响程序的执行速度, ,字数据在内存中应尽字数据在内存中应尽量按规则字格式存放。量按规则字格式存放。20001H20003H20005H20000H20002H20004H高位库高位库 低位库低位库规则字规则字1234H34H12H20001H20003H20005H高位库高位库 低位库低位库非规则字非规则字1234H12H34H用作堆栈的区域称为堆栈段最多包含用作堆栈的区域称为堆栈段最多包含64 K个单元。个单元。堆栈段在内存中的位置由堆栈段寄存器堆栈段在内存中的位置由堆栈段寄存器SS和堆栈指和堆栈指针针SP来指示。来指示。SS中存放堆栈段的首地址中存放堆栈段的首地址, ,SP中存放中存放栈顶单元的偏移地址。栈顶单元的偏移地址。 8086CPU规定堆栈操作总是按字进行规定堆栈操作总是按字进行。入栈和出
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 第四章 6 光的偏振 激光-2025版高二物理选择性必修一
- 采购一周述职报告
- 特许金融分析师考试研究报告题试题及答案
- 水变干净流程图
- 2025届陕西省菁师联盟高三下学期3月联考(一模)历史试题(解析版)
- 政教处工作总结3
- 金融市场趋势分析与试题及答案
- CFA各级别考试内容对比试题及答案
- CFA考试深度备考策略与试题及答案
- 通过特许金融分析师考试的心理建设与试题及答案
- 小学 三年级 心理健康《最好的老师-兴趣的作用》教学设计
- 间歇经口管饲法 课件
- 导电胶rohs2.078中文深圳市华测检测技术股份市浦东新区新金桥路1996号
- 9 短诗三首 生字笔顺课件(共10张PPT)
- 无线射频识别技术外文翻译参考文献
- 电力负荷曲线与用电负荷预测课件
- 钢支撑、围檩专项施工方案
- 【2021部编版语文】-四年级下册第六单元教材解读--PPT课件
- 压力管道安装许可证换证自评报告
- 起重机械定期检验规则概述
- 环网电缆35KV中间接头制作技术交底(共4页)
评论
0/150
提交评论