微机原理与嵌入式系统 第三章 微机原理与结构.ppt_第1页
微机原理与嵌入式系统 第三章 微机原理与结构.ppt_第2页
微机原理与嵌入式系统 第三章 微机原理与结构.ppt_第3页
微机原理与嵌入式系统 第三章 微机原理与结构.ppt_第4页
微机原理与嵌入式系统 第三章 微机原理与结构.ppt_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

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

文档简介

1、第三章 微机原理与8086CPU,一、术语 二、微机的工作原理 三、8086/8088微处理器的结构 四、8086/8088存储器和I/O的组织,内容要求:,1. 理解微机的基本结构和整机工作流程。 2. 掌握 Intel 8086 / 8088 CPU 的内部逻辑结构。 3. 掌握 Intel 8086 / 8088 CPU 的编程模型。 4. 理解总线周期。 5. 理解高档微机(Intel286Pentium)的内部结构特点。,重点和难点:,Intel 8086/8088 CPU内部逻辑结构 存储器分段访问的思想 逻辑地址和物理地址的概念,冯.诺伊曼结构:,(1)由运算器、控制器、存储器、

2、输入设备和输出设备五大部分组成。 (2)数据和程序以二进制代码形式不加区别的存放在存储器中,存放位置由地址指定,地址码也为二进制。 (3)控制器是根据存放在存储器中的指令序列即程序来工作的,并由一个程序计数器(即指令地址计数器)控制指令的执行。控制器具有判断能力,能以计算结果为基础,选择不同的动作流程。,一、术语 1.存储程序的概念 程序:计算机完成具体工作的一组指令。 指令:告诉计算机执行的操作。 2.计算机位、字节和字 位(bit):二进制信息的最小单位(0或1)。 字节(Byte):由8位二进制数组成,可以存放在一个存储单元中。 字(Word):计算机中作为一个整体来处理和运算的一组二进

3、制数,是字节的整数倍。通常它与计算机内部的寄存器、算术逻辑单元、数据总线宽度相一致。,3.微处理器(MPU) (1)算术逻辑运算单元(ALU):把传送到微处理器的数据进行算术或逻辑运算。 (2)累加器:是微处理机中最常用的寄存器。在算术和逻辑运算时,它具有双重功能。运算前,它保存一个操作数,运算后,它保存结果。 (3)地址寄存器:是保存正在执行的操作要用到的存储单元或I/O设备的地址的暂存单元。 (4)程序计数器:控制指令在程序中执行的顺序。任何时刻,它均指示要取的下一字节存储单元。,4.存储器: 是指内存储器(主存或内存)。它是微型计算机的存储和记忆装置,用来存放指令、原始数据、中间结果和最

4、终结果。,随机访问存储器,4.,6.取指执指,二、 微机的工作原理 (1)运行程序 (2)取指阶段 (3)执指阶段 (4)停机,取指执指,三、8086/8088微处理器的结构,1. 概述 (1)性能的提高 (2)采用的方法 2. 8086/8088内部结构 (1)执行单元 (2)总线接口单元 3. 分段访问内存,1.概述 (1)性能的提高 a.提高主频 Evolution of Intels Microprocessors,b.改变体系结构 (1)并行,(2)扩大寄存器的位数、增加寄存器的数量,(2)采用的方法 将8086/8088微处理器分为两部分 执行单元(EUExecution Unit

5、) 总线接口单元(BIUBus Interface Unit) 2. 8086/8088内部结构 执行单元(Execution Unit) 总线接口单元(Bus Interface Unit),执行单元(Execution Unit): 负责执行从BIU的指令队列中得到的指令。 (1)16位算术逻辑运算单元ALU (2)16位标志寄存器Flags,Example: Show how the flag register is affected by the addition of 38H and 2FH. Solution: MOVBH, 38H ADDBH, 2FH 38 0011 1000

6、+2F 0010 1111 67 0110 0111 CF=0 PF=0 AF=1 ZF=0 SF=0,Example: Show how the flag register is affected by MOVAL,9CH MOVDH,64H ADDAL,DH Solution: 9C1001 1100 +640110 0100 000000 0000 CF=1 PF=1 AF=1 ZF=1 SF=0,Example: Show how the flag register is affected by MOVAX,34F5H ADDAX,95EBH Solution: 34F50011 01

7、00 1111 0101 +95EB1001 0101 1110 1011 CAE01100 1010 1110 0000 CF=0 PF=0 AF=1 ZF=0 SF=1,Example: Show how the flag register is affected by MOVBX,AAAAH ADDBX,5556H Solution: AAAA1010 1010 1010 1010 +55560101 0101 0101 0110 00000000 0000 0000 0000 CF=1 PF=1 AF=1 ZF=1 SF=0,(3)通用寄存器组,通用寄存器组: 通用寄存器包括4个数据寄

8、存器、两个地址指针寄存器 和两个变址寄存器。 1)数据寄存器AX、BX、CX、DX 数据寄存器一般用于存放参与运算的操作数或运算结 果。每个数据寄存器都是16位的,但又可将高、低8位分别 作为两个独立的8位寄存器来用。 上述4个寄存器除了用来存放数据,它们各自都有自己 的特定用途:,AX(Accumulator)累加器:用该寄存器存放运算 结果可使指令简化,提高指令的执行速度。此外,所有的 I/O指令都使用该寄存器与外设端口交换信息。 BX(Base)基址寄存器:8086/8088CPU中有两 基址寄存器BX和BP。 BX用来存放操作数在内存中数据段 内的偏移地址,BP用来存放操作数在堆栈段内

9、的偏移地址。 CX(Counter)计数器:在设计循环程序时使用该 寄存器存放循环次数,可使指令简化,有利于提高程序的运 行速度。 DX(Data)数据寄存器:在寄存器间接寻址的I/O 指令中存放I/O端口地址。,2)地址指针寄存器SP、BP SP(Stack Pointer)堆栈指针寄存器:在使用堆栈操作指令PUSH或POP对堆栈进行操作时,每执行一次进栈或出栈操作,系统会自动将SP的内容减2或加2,以使其始终指向栈顶。 BP(Base Pointer)基址寄存器:作为通用寄存器,它可以用来存放数据,但更经常更重要的用途是存放操作数在堆栈段内的偏移地址。 3)变址寄存器SI、DI SI(So

10、urce Index)源变址寄存器: SI存放源串在数据段内的偏移地址。 DI(Destination Index)目的变址寄存器: DI存放目的串在附加数据段内的偏移地址。,总线接口单元(Bus Interface Unit): 负责完成CPU与存储器或I/O设备之间的数据传送。 (送出地址、从存储器取指令、从存储器或端口读数据以及 向端口或存储器写数据) (1)指令队列寄存器 (2)段寄存器(CS,DS,SS,ES) (3)指令指针寄存器(IP) (4)20位地址加法器 (5)逻辑地址 (6)物理地址,(2)段寄存器 8086/8088的4个段寄存器分别为: CS(Code Segment

11、)代码段寄存器:用来存储程序 当前使用的代码段的段地址。 CS的内容左移4位再加上指 令指针寄存器IP的内容就是下一条要读取的指令在存储器 中的物理地址。 DS(Data Segment)数据段寄存器:用来存放程序 当前使用的数据段的段地址。 DS的内容左移4位再加上按 指令中存储器寻址方式给出的偏移地址即得到对数据段指 定单元进行读写的物理地址。,SS(Stack Segment)堆栈段寄存器:用来存放程序 当前所使用的堆栈段的段地址。堆栈是存储器中开辟的按 “先进后出”原则组织的一个特殊存储区,主要用于调用子 程序或执行中断服务程序时保护断点和现场。 ES(Extra Segment )附

12、加数据段寄存器:用来存放 程序当前所使用的附加数据段的段地址。附加数据段用来存 放字符串操作时的目的字符串。 (3)控制寄存器 IP(Instruction Pointer)指令指针寄存器:用来存放 下一条要读取的指令在代码段内的偏移地址。用户程序不 能直接访问IP。,3.分段访问内存的思想 (1)段:偏置 的方法只要求一个16位的数来表示一个段的基地址,同时也只要求一个用来访问段内任一单元的16位的偏置。这意味着8086只处理和存储16位的值,而不是20位的值。这使得在8086中8位或16位存储器与16位的寄存器的接口变得容易实现了。 (2)存储器分段易于保持用户程序和数据的彼此分离,并且易

13、于从一个用户程序切换到另一个用户程序。 (3)与8085完全兼容。,四、8086/8088存储器和I/O的组织,8086/8088存储器的组织: 1、8086/8088存储空间 2、存储器的段结构 3、逻辑地址于物理地址 4、堆栈操作 5、8086/8088存储器结构 8086/8088的I/O组织,1、8086/8088存储空间,8086/8088有20条地址线,可直接对1M个存储单元 进行访问。每个存储单元存放一个字节型数据,且 每个存储单元都有一个20位的地址,这1M个存储单 元对应的地址为00000HFFFFFH。 一个存储单元中存放的信息称为该存储单元的内 容。00001H单元的内容

14、为9FH,记为: (00001H)=9FH。,2、存储器的段结构,8086/8088 CPU中有关可用来存放地址的寄存器如IP、SP等都是16位的,故只能直接寻址64 KB。为了对1 M个存储单元进行管理,8086/8088采用了段结构的存储器管理方法。 8086/8088将整个存储器分为许多逻辑段,每个逻辑段的容量小于或等于64 KB,允许它们在整个存储空间中浮动,各个逻辑段之间可以紧密相连,也可以互相重叠。 用户编写的程序(包括指令代码和数据)被分别存储在代码段、数据段、堆栈段和附加数据段中,这些段的段地址分别存储在段寄存器CS、DS、SS和ES中,而指令或数据在段内偏移地址可由对应的地址

15、寄存器或立即数给出。,如果从存储器中读取指令,则段地址来源于代码段寄存器CS,偏移地址来源于指令指针寄存器IP。 如果从存储器读/写操作数,则段地址通常由数据段寄存器DS提供(必要时可通过指令前缀实现段超越,将段地址指定为由CS、ES或SS提供),偏移地址则要根据指令中所给出的寻址方式确定,这时,偏移地址通常由寄存器BX、SI、DI以及立即数等提供,这类偏移地址也被称为“有效地址”(EA)。如果操作数是通过基址寄存器BP寻址的,则此时操作数所在段的段地址由堆栈段段寄存器SS提供(必要时也可指定为CS、SS或ES)。,如果使用堆栈操作指令(PUSH或POP)进行进栈或出栈操作,以保护断点或现场,

16、则段地址来源于堆栈段寄存器SS,偏移地址来源于堆栈指针寄存器SP。 如果执行的是字符串操作指令,则源字符串所在段的段地址由数据段寄存器DS提供(必要时可指定为CS、ES或SS),偏移地址由源变址寄存器SI提供;目的字符串所在段的段地址由附加数据段寄存器ES提供,偏移地址由目的变址寄存器DI提供。 以上这些存储器操作时段地址和偏移地址的约定是由系统设计时事先已规定好的,编写程序时必须遵守这些约定。,缺省段和偏置:,3、逻辑地址与物理地址 逻辑地址: 在CPU内部对RAM 或 I/O 地址的表示方式。(段基址:偏置) 偏置: 表示所需代码或数据到段基地址的位移量。其范围从0000H0FFFFH。

17、物理地址: 由CPU 的20位引脚输出的实际对RAM 或 I/O 地址的表示方式。其范围从00000H0FFFFFH。 例如,代码段:要执行的下一条指令的地址在CPU内部的表示为(CS:IP)。,假设CS=24F6H,IP=634AH,则: 逻辑地址为 24F6:634A 偏置为 634A 物理地址为 PA=24F6*10H+634A=24F60+634A=2B2AA 数据段:指令要操作的数据的地址在CPU内部的表示方式为(DS:offset) 假设DS=7FA2H,offset=438EH,则: 逻辑地址为 7FA2:438E 偏置(offset)为 438E 物理地址为PA=7FA2*10

18、H+438E=7FA20+438E=83DAE,堆栈段: 假设SS=3500H,SP=0FFFEH,则: 逻辑地址为 SS:SP 即 3500:0FFFE 偏置为 0FFFEH 物理地址为 SS*10H+SP 即 PA=3500H*10H+0FFFEH=35000H+0FFFEH=44FFEH 缺省段和偏置:,4、堆栈操作 堆栈段: CPU用来临时存储信息的RAM区域。其特点是先进后出。 假设:SP=1236, AX=24B6, DI=85C2, DX=5F93 执行指令 PUSH AX PUSH DI PUSH DX . POP DX POP DI POP AX,5、8086/8088存储器结构,8086的1

温馨提示

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

评论

0/150

提交评论