已阅读5页,还剩70页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章8086微处理器与汇编语言(上) 学习目标1、识记 8086微处理器的基本结构、系统总线周期、基本工作原理。2、理解通用寄存器、段寄存器、标志和指针寄存器、基址和变址寄存器的功能和作用。3、理解 8086存储器的地址分段和结构,数据和程序地址的计算方法。4、识记 8086系统最大和最小模式,及其在不同方式下的工作时序要求。5、理解 80X86寻址方法的区别和应用要求。第第 4页页 *上海第二工业大学上海第二工业大学 丁新民丁新民第二章微处理器与汇编语言(上)2.1 8086系统结构2.2 寻址方式第第 5页页 *上海第二工业大学上海第二工业大学 丁新民丁新民一、 8086系统结构1. 8086内部结构2. 寄存器组3. 引脚及其功能4. 总线周期5. 存储器组织6. 输入 /输出组织7. 最小与最大模式系统 第一节8086内部结构8086分为总线接口部件分为总线接口部件 BIU和执行部件和执行部件 EU两个部分两个部分 , 如图如图 2-1-1所示。所示。内部通讯ESIPSSDSCSAH ALCH CLSPSIDIBPDH DL标志位ALU EU控制器1 2 3 4 5 6指令队列执行部件 总线接口部件图 2-1-1 8086 CPU内部结构暂存器16位 ALU数据线总线控制逻辑8086总线BH BL16位数据线20位地址线寄存器1总线接口部件总线接口部件 BIU 提供提供 16位双向数据总线和位双向数据总线和 20位地址总线。具位地址总线。具体功能是:取指令、指令排队、读操作数和写体功能是:取指令、指令排队、读操作数和写操作数、地址形成和总线控制。操作数、地址形成和总线控制。 BIU由段寄存由段寄存器和指令指针器和指令指针 IP, 指令队列缓存器,地址加法指令队列缓存器,地址加法器和总线控制逻辑部件等组成。器和总线控制逻辑部件等组成。( 1)段寄存器)段寄存器 8086最大可寻址最大可寻址 1MB存储空间,将存储空间,将 1MB空空间划分成若干个逻辑段,每个段最大为间划分成若干个逻辑段,每个段最大为 64KB, 用段寄存器来存放段起始地址。内设用段寄存器来存放段起始地址。内设 CS、DS、 SS和和 ES段寄存器,分别用来存放代码段段寄存器,分别用来存放代码段、数据段、堆栈段和扩展数据段的基地址。、数据段、堆栈段和扩展数据段的基地址。 1总线接口部件总线接口部件 BIU ( 2)指令指针)指令指针指令指针(指令指针( IP) 的功能类似于程序计数器的功能类似于程序计数器 PC, 用来存放下一条要执行指令的偏移地址。指用来存放下一条要执行指令的偏移地址。指令地址由令地址由 CS和和 IP构成。但是,程序是不能直接构成。但是,程序是不能直接访问访问 IP, 只能由只能由 BIU自动修改。自动修改。( 3)地址加法器)地址加法器地址加法器用来计算地址加法器用来计算 20位存储地址。当执行位存储地址。当执行部件计算出寻址单元的偏移量后,就与左移部件计算出寻址单元的偏移量后,就与左移 4位后的段寄存器内容一起送地址加法器进行相位后的段寄存器内容一起送地址加法器进行相加,得到一个加,得到一个 20位的存储地址。寻址单元的偏位的存储地址。寻址单元的偏移地址可以来自移地址可以来自 IP, 也可以来自其他寄存器。也可以来自其他寄存器。 1总线接口部件总线接口部件 BIU ( 4)指令队列缓存器)指令队列缓存器指令队列缓存器是用来暂存从存储器中取出指令队列缓存器是用来暂存从存储器中取出的指令。指令队列缓存器为的指令。指令队列缓存器为 6个字节。指令队个字节。指令队列采用列采用 FIFO的管理方式,预取的管理方式,预取 6字节的指令代字节的指令代码。在执行指令的同时,从存储器中取下一条码。在执行指令的同时,从存储器中取下一条指令或几条指令,填充指令队列缓存器。这样指令或几条指令,填充指令队列缓存器。这样, CPU的取指令和执行指令操作是并行的。的取指令和执行指令操作是并行的。当指令队列中有一条指令或填满指令时,执当指令队列中有一条指令或填满指令时,执行部件行部件 EU就从该队列中取出指令执行。就从该队列中取出指令执行。 EU从从指令队列的输出端取出指令后,指令队列的输出端取出指令后, BIU自动调整自动调整指令队列输出端指针,并作指令预取操作。指令队列输出端指针,并作指令预取操作。1总线接口部件总线接口部件 BIU ( 4)指令队列缓存器(续)指令队列缓存器(续)EU从指令队列取出指令,经指令译码分析从指令队列取出指令,经指令译码分析后,向后,向 BIU申请从存储器或申请从存储器或 I/O端口读写操作数端口读写操作数。只要收到。只要收到 EU送来的逻辑地址,送来的逻辑地址, BIU就通过专就通过专用的地址加法器,以现行的段寄存器和逻辑地用的地址加法器,以现行的段寄存器和逻辑地址产生一个址产生一个 20位的存储地址送地址总线。当位的存储地址送地址总线。当EU执行转移、调用或返回指令时,执行转移、调用或返回指令时, BIU将自动将自动清除指令队列中原有的内容,重新填充指令队清除指令队列中原有的内容,重新填充指令队列。列。( 5)总线控制逻辑)总线控制逻辑总线控制逻辑用于产生存储器读总线控制逻辑用于产生存储器读 /写、写、 I/O读读 /写控制信号。写控制信号。 2执行部件执行部件 EU EU的主要功能是完成指令译码和执行指令的主要功能是完成指令译码和执行指令的工作。由的工作。由 ALU、 标志寄存器、通用寄存器组标志寄存器、通用寄存器组、暂存器、控制部件等组成。、暂存器、控制部件等组成。 ( 1) ALU16位的位的 ALU用来对用来对 8位或位或 16位操作数进行算位操作数进行算术或逻辑运算。另外,术或逻辑运算。另外, 16位的暂存器也可以参位的暂存器也可以参加运算。加运算。( 2)标志寄存器)标志寄存器16位标志寄存器用来表示位标志寄存器用来表示 ALU运算后的结果运算后的结果特征,为下一条指令的执行提供操作信息。特征,为下一条指令的执行提供操作信息。 2执行部件执行部件 EU ( 3)通用寄存器组)通用寄存器组通用寄存器组共有八个通用寄存器组共有八个 16位寄存器。其中,位寄存器。其中,四个寄存器可用作存放数据或地址,四个为指四个寄存器可用作存放数据或地址,四个为指针和变址寄存器。这些都可以参加算术和逻辑针和变址寄存器。这些都可以参加算术和逻辑运算,具体内容将在下一节介绍运算,具体内容将在下一节介绍 。( 4)控制部件)控制部件主要用于取指令的控制和时序控制。主要用于取指令的控制和时序控制。 第二节寄存器组2寄存器组寄存器组如图如图 2-1-2所示为所示为 8086的寄存器结构,共分为的寄存器结构,共分为四组四组 16位寄存器,它们分别是通用寄存器、指位寄存器,它们分别是通用寄存器、指针和变址寄存器、段寄存器和标志位寄存器。针和变址寄存器、段寄存器和标志位寄存器。通用寄存器: 段寄存器:15 8 7 0 15 0AXBXCXDXAH AL 累加器 CS 代 码 段寄存器数据段寄存器堆 栈 段寄存器附加段寄存器BH BL 基址寄存器 DS CH CL 计 数寄存器 SS DH DL 数据寄存器 ES 指 针 和 变 址寄存器: 指令指 针 和 标 志寄存器:15 0 15 0SPBPSIDI堆 栈 指 针 IP 基址指 针 FLAGS 源 变 址寄存器目 标变 址寄存器图 2-1-2 8086寄存器结构 2寄存器组寄存器组( 1)通用寄存器组)通用寄存器组通用寄存器组由八个通用寄存器组由八个 16位寄存器构成,按用位寄存器构成,按用途可分为数据寄存器和指针途可分为数据寄存器和指针 /变址寄存器两大类变址寄存器两大类 。它们都可以参加算术和逻辑运算。它们都可以参加算术和逻辑运算。 数据寄存器数据寄存器由四个由四个 16位的位的 AX、 BX、 CX和和 DX寄存器组寄存器组成。每个寄存器可作为一个独立的成。每个寄存器可作为一个独立的 16位寄存器位寄存器使用,也可以分别编址成两个使用,也可以分别编址成两个 8位寄存器使用位寄存器使用。这样,每个数据寄存器对应的高。这样,每个数据寄存器对应的高 8位寄存器位寄存器是是 AH、 BH、 CH和和 DH; 低低 8位寄存器是位寄存器是 AL、BL、 CL和和 DL。 2寄存器组寄存器组 数据寄存器(续)数据寄存器(续)表 2-1-1 8086通用寄存器的特殊用法寄存器 操 作 隐含性质 隐含使用AX、 AL在输入输出指令中作数据寄存器 不能隐含 DS在乘法指令中存放被乘数或积 隐含在除法指令中存放被除数或商 隐含AH 在 LAHF指令中作目标寄存器 隐含 DSAL在 XLAT指令中作累加寄存器 隐含DS在 BCD码运算指令中作累加寄存器 不能隐含在 ASC 运算指令中作累加寄存器 不能隐含BX 在间接寻址中作基址寄存器 不能隐含 DS在 XLAT指令中作基址寄存器 隐含CX 在串指令和 LOOP指令中作计数寄存器 隐含 DSCL在位移 /循环位移指令中作计数寄存器 不能隐含 DS在乘法指令中存放乘积 隐含在除法指令中存放被除数高位或余数 隐含在间接寻址中作变址寄存器 不能隐含SP 在堆栈寻址中作堆栈指针 隐含 SSBP 在间接寻址中作基址指针 不能隐含 SSSI 在字符串操作指令中作源变址寄存器在间接寻址中作变址寄存器 隐含不能隐含 DSDI 在字符串操作指令中作目标变址寄存器在间接寻址中作变址寄存器 隐含不能隐含 DS2寄存器组寄存器组 指针和变址寄存器指针和变址寄存器由四个由四个 16位的寄存器位的寄存器 SP、 BP、 SI和和 DI组成组成。这些寄存器存放段内的偏移量,用来形成操。这些寄存器存放段内的偏移量,用来形成操作数的存储地址。作数的存储地址。 SP为堆栈指针、为堆栈指针、 BP为基址为基址指针、指针、 SI为源变址、为源变址、 DI为目标变址。为目标变址。SP和和 BP使用使用 SS堆栈段。若不特别指明某个堆栈段。若不特别指明某个段,则被认为使用现行堆栈段。段,则被认为使用现行堆栈段。 SP始终指向栈始终指向栈顶。顶。 BP可指向堆栈段的任意单元。可指向堆栈段的任意单元。SI和和 DI称为变址寄存器,通常与称为变址寄存器,通常与 DS数据段一数据段一起使用。串操作指令中,起使用。串操作指令中, 规定规定 SI使用使用 DS数据数据段,段, DI使用使用 ES扩展数据段。扩展数据段。2寄存器组寄存器组( 2)段寄存器组)段寄存器组段寄存器组由段寄存器组由 CS、 DS、 SS和和 ES四个四个 16位的位的寄存器构成。寄存器构成。表 2-1-2 段寄存器和现行段的对应关系寄存器 含 义 隐含识别的现行段CS 代码段寄存器 现行代码段DS 数据段寄存器 现行数据段SS 堆栈段寄存器ES 附加段寄存器 现行附加段现行堆栈段2寄存器组寄存器组( 2)段寄存器组(续)段寄存器组(续)8086通过通过 CS得到执行指令的段基地址,加上得到执行指令的段基地址,加上指令指针指令指针 IP中的指令偏移量,产生中的指令偏移量,产生 20位的存储位的存储器地址。例如器地址。例如 CS 4000H、 IP 004AH。 那么那么, 20位物理地址应该是位物理地址应该是 4004AH单元。单元。40000 CS代码段内容左移代码段内容左移 4位位 004A IP的段内偏移量的段内偏移量4004AH 下一条指令的存储地址下一条指令的存储地址操作数所在段,可以在指令前加段前缀,若操作数所在段,可以在指令前加段前缀,若缺省前缀,则规定使用缺省前缀,则规定使用 DS。 对于对于 BP和和 SP, 系系统默认使用统默认使用 SS。2寄存器组寄存器组( 3)指令指针)指令指针16位的指令指针位的指令指针 IP, 用来存放下一条指令在用来存放下一条指令在CS中的偏移量。中的偏移量。 IP的内容由总线接口部件的内容由总线接口部件 BIU自动修改。指令顺序执行时,存放下一条待执自动修改。指令顺序执行时,存放下一条待执行指令的偏移量;发生中断或调用时,行指令的偏移量;发生中断或调用时, BIU自自动将动将 IP的偏移量压入堆栈保存。程序不能直接的偏移量压入堆栈保存。程序不能直接访问访问 IP。( 4) 标志寄存器标志寄存器16位的标志寄存器含有九个有效标志位,分位的标志寄存器含有九个有效标志位,分为条件标志位为条件标志位 /程序状态字和控制标志位两个部程序状态字和控制标志位两个部分。分。2寄存器组寄存器组( 4)标志寄存器(续)标志寄存器(续)15 12 11 10 9 8 7 6 4 2 0OF DF IF TF SF ZF AF PF CF图 2-1-3 8086 标 志寄存器 条件标志位条件标志位 CF进位标志位:运算中发生进位或借位时进位标志位:运算中发生进位或借位时, CF为为 “1”;否则,;否则, CF为为 “0”。用。用 STC指令可指令可设置设置 CF为为 “1”、 CLC指令置指令置 CF为为 “0”、 CMC指指令对令对 CF求反;循环指令也会影响该标志位状态求反;循环指令也会影响该标志位状态。 2寄存器组寄存器组( 4)标志寄存器(续)标志寄存器(续) 条件标志位(续)条件标志位(续) AF辅助进位标志位:在运算结果的低辅助进位标志位:在运算结果的低 4位位向高向高 4位有进位或借位时,位有进位或借位时, AF为为 “1”;反之,;反之,AF为为 “0”。 OF溢出标志位:运算结果超出机器表示溢出标志位:运算结果超出机器表示范围时,范围时, OF为为 “1”;否则,;否则, OF为为 “0”。带符号。带符号数的操作,若字节运算结果超过数的操作,若字节运算结果超过 -128+127范范围或者字运算结果超过围或者字运算结果超过 -32768+32767范围时范围时, OF为为 “1”。2寄存器组寄存器组( 4)标志寄存器(续)标志寄存器(续) 条件标志位(续)条件标志位(续) ZF零标志位:运算结果为零时,零标志位:运算结果为零时, ZF为为 “1”;否则,;否则, ZF为为 “0” 。 SF符号标志位:运算结果负数时,符号标志位:运算结果负数时, SF为为“1”;否则,;否则, SF为为 “0”。 PF奇偶标志位:运算结果的低奇偶标志位:运算结果的低 8位中有偶位中有偶数个数个 “1”时,时, PF为为 “1”;否则,;否则, ZP为为 “0” 。2寄存器组寄存器组( 4)标志寄存器(续)标志寄存器(续) 控制标志位控制标志位 DF方向标志位:方向标志位: DF为为 “0”时,变址地址指时,变址地址指针针 SI、 DI自动作增量操作,字节操作增量为自动作增量操作,字节操作增量为 1,字操作增量为,字操作增量为 2; DF为为 “1”时,作减量操作。时,作减量操作。可用可用 STD、 CLD指令设置指令设置 DF。 IF中断允许标志位:中断允许标志位: IF为为 “1”时,允许时,允许CPU响应中断请求;响应中断请求; IF为为 “0”时,禁止响应。时,禁止响应。用用 STI 、 CLI指令设置指令设置 IF。 TF陷阱标志位:陷阱标志位: TF为为 “1”时,时, CPU每执行每执行完一条指令就产生一个内部中断。完一条指令就产生一个内部中断。第三节引脚及其功能3引脚及其功能引脚及其功能 8086微处理器芯微处理器芯片采用双列直插式片采用双列直插式40条引脚的封装结条引脚的封装结构,设有构,设有 20条的地条的地址线和址线和 16条的数据条的数据线,如图线,如图 2-1-4 所所示。为了减少芯片示。为了减少芯片的引线,部分引脚的引线,部分引脚具有双重功能,采具有双重功能,采用分时复用方式工用分时复用方式工作。作。 3引脚及其功能引脚及其功能( 1)数据和地址总线)数据和地址总线 AD15 AD0 地址地址 /数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论