计算机硬件技术基础清华大学,清华大学-计算机硬件技术基础Cha

《清华大学-计算机硬件技术基础Cha》由会员分享,可在线阅读,更多相关《清华大学-计算机硬件技术基础Cha(35页珍藏版)》请在人人文库网上搜索。

1、1,第二章 8086/8088微处理器 第一节 8086/8088微处理器的结构 第二节 8086/8088的寻址方式 第三节 8086/8088的指令系统 第四节 DOS操作系统简介,2,第一节 8086/8088微处理器的结构 一、简介 二、8086/8088的编程结构 1. 总线接口部件 2. 执行部件 3. 工作原理 三、8086/8088的寄存器组 四、8086/8088的存储器组织 1. 内存物理地址的形成 2. 内存单元内容的存放及表示 五、8086/8088的I/O组织,3,一、8086/8088简介 Intel 系列 的16位CPU 双列直插式封装 40根引脚 工作频率为4.。

2、77MHz 10MHz 工作电源+5V,4,8086 : 对外有16根数据线,20根地址线 可寻址的内存单元数 220 = 1M 内存地址范围00000 FFFFFH 8088 : 内部寄存器、运算部件及 内部操作均按16位设计, 除对外数据线为8根外,其余与8086基本相同。 为与当时已有的8 位外设接口芯片兼容。 IBM PC、IBP PC/XT 采用8088CPU,5,二、8086/8088的编程结构 编程结构: 指从程序员和使用者的角度看到的结构。 与芯片内部的物理结构和实际布局有区别。,某CPU芯片内部实物图,6,1. 总线接口部件BIU (Bus Interface Unit) 运。

3、输部门 2. 执行部件EU (Execute Unit) 加工部门 3. 工作原理,7,1. 总线接口部件 BIU 构成部分 4个16位段寄存器: CS,DS,ES,SS 16位IP指令指针寄存器 地址加法器 4字节的指令队列 ( 8086的指令队列为6字节 ),主要功能 负责与存储器、I/O接口传递数据 具体完成: 1)从内存取指令,送到指令队列; 2)配合执行部件从指定的内存单元 或I/O端口取数据; 3)将执行部件的操作结果送到 指定的内存单元或I/O端口。,8,2执行部件EU 构成部分: 8个16位寄存器: AX、BX、CX、DX SP、BP、DI、SI 1个标志寄存器PSW 1个算术。

4、逻辑运算部件ALU 主要功能 执行部件负责指令的执行。 (包括算术、逻辑运算,控制命令等),9,3. 工作原理 计算机的工作过程是: 取指令, 执行指令,CPU 总线 内存,10,总线接口部件和执行部件 可并行工作,提高工作效率。 指令的提取和执行分别 由BIU和EU完成。 BIU和EU相互独立又相互配合 1) 当指令队列有一个空字节时, BIU自动把指令取到指令队列中 2) 执行部件总是从指令队列前部 提出指令去执行。 3) 如果在执行指令的过程中, 需要访问内存或I/O端口, EU会请求BIU去完成存取操作。,11,由于有指令队列的存在, 在EU执行指令的同时,BIU可取指令, 即BIU和。

5、EU可处于并行工作状态。,BIU EU,12,三、8086/8088的寄存器组 共有14个16位寄存器, 其中: AX、BX、CX、DX 又可分成两个 8 位寄存器。 其它10个只能作为16位寄存器。,13,14,状态标志寄存器PSW (Processor Status Word) 16位寄存器,包含9个标志 各标志在标志寄存器中的位置如下: 用了其中的9位,其它7位在8086/8088中无意义。,15,9个标志按其作用分状态标志和控制标志两类 状态标志:OF、SF、ZF、AF、PF、CF 共6个 记录指令运行过程或运算结果的状态信息。 常作为后续转移指令的控制条件,又称为条件码。 控制标志:。

6、 DF、IF、TF 共3个 作用是控制CPU 的操作。,16,各状态标志的含义:,CF:进位标志(Carry Flag) 反应运算过程中,最高位是否产生进位/借位。 (最高位,对字节操作指D7位 ,对字操作指D15位) 加法,最高有效位有进位CF1,否则CF0 减法,最高有效位有借位CF1,否则CF0 AF:辅助进位标志(Auxiliary Carry Flag) 反应运算过程中,对字节操作D3位 是否产生进位。 对字操作D7位 有进位或借位时,AF1,否则AF0。,17,ZF:零标志(Zero Flag) 反应运算结果是否为0。 运算结果为 0 时,ZF1,否则ZF0 SF:符号标志(Sig。

7、n Flag) 反应运算结果的符号位。 对字节操作 SFD7 对字操作SFD15,18,OF:溢出标志(Overflow Flag) 反应运算过程中是否产生溢出。 产生溢出,OF1,否则为0。 PF:奇偶标志(Parity Flag) 反应运算结果中“1”的个数情况。 有偶数个“1”时,PF1, 否则PF0。,19,1 0 1 1 0 1 0 1 被加数8位 + 1 0 0 0 1 1 1 1 加数8位 进位 1 1 1 1 1 1 1 0 1 0 0 0 1 0 0 和8位,PSW 标志寄存器,运 算 器,标志 寄存器,运 算 器,被加数,加数,和,进位,例 8位二进制加法如下,给出各状态标。

8、志位的值,最高位D7位产生进位: CF = 1 D3位产生进位: AF = 1 相加的结果为44H, 不为0: ZF = 0 结果的最高位为0: SF = 0 两负数相加结果为正,溢出: OF = 1 结果中有2个1,偶数个1: PF = 1,1 0 0 1 1 1,20,各控制标志作用(以后用到再介绍):,DF:方向标志 在串操作指令中控制地址变化的方向。 当DF1时,地址递减;当DF时,地址递增。 IF:中断标志 当IF1时,允许CPU响应可屏蔽中断申请。 当IF时,禁止CPU响应可屏蔽中断申请。 TF:跟踪标志 为调试程序设置的一个控制标志。 当TF1时,CPU按单步方式执行指令。,21。

9、,四、8086/8088的存储器组织 1. 内存物理地址的形成 2. 内存单元内容的存放及表示,22,1.内存物理地址的形成 取指令、取数、存数时,都要访问内存, 被访问内存单元的地址由CPU提供。,23,8086/8088有20根地址线, 可寻址220 =1M个内存单元, 而CPU内部寄存器均为16位, 故: 20位的地址需由 一个附加部件完成。 这个部件就是地址加法器。,24,地址加法器的工作原理 可表示为: 物理地址PA = 段地址 偏移地址 = ( 段寄存器 ) 16 + 偏移地址 = ( 段寄存器 ) 10H + 偏移地址 即段寄存器的内容左移4位,加上偏移地址,25,物理地址PA 。

10、= 段地址 偏移地址 = ( 段寄存器 ) 10H + 偏移地址 段寄存器有4个: DS、ES、CS、SS 偏移地址由 IP、SP、BX、BP、SI、DI 或一个8位或16位二进制数得到。 这种存储器管理方式叫分段编址。,26,物理地址PA = 段地址 偏移地址 = ( 段寄存器 ) 10H + 偏移地址 或段寄存器的内容左移4位,加上偏移地址 例:某内存单元的段地址由DS、偏移地址由BX给出。 若( DS) = 2000H, ( BX) = 1000H,计算其物理地址。 PA = ( DS ) 10H + ( BX ) = 2000H 10H + 1000H = 21000H,27,要点:,。

11、(段地址由16位的段寄存器给出,可将段地址直接用16位表示),物理地址20位,段地址20位,偏移地址16位。,物理地址PA = 段地址 偏移地址 = ( 段寄存器 ) 10H + 偏移地址,由16位段寄存器决定有216 = 64 K个段值 由16位偏移地址决定每个段的大小为0 64K 每个段最大64 K,但不一定是64 K,可据需要分配。,28,用( )表示内存单元的内容: ( 21000H ) = 0FH ( 2000:1000H ) = 0FH ( DS:BX ) = 0FH,29,每个内存单元有唯一的物理地址, 但可由不同的段地址和偏移地址构成。(实验二内容),例 某内存操作的段值由 D。

12、S 给出,偏移值由BX给出。,若 ( DS ) = 1000H ,( BX ) = 0150H, 则: PA = ( DS ) 10H + ( BX ) = 1000 H 10H + 0150H = 10150H,若 ( DS ) = 1010H ,( BX ) = 0050H, 则: PA = ( DS ) 10H + ( BX ) = 1010 H 10H + 0050H = 10150H,物理地址相同,就选中同一单元,30,2内存单元内容的存放及表示,表示为: ( 01000H ) = 1EH ( 01001H ) = 2FH,31,8086/8088是16位CPU,可对内存进行字节或字。

13、操作,例 将字数据1234H写入从02000H开始的内存单元,当往内存写一个字数据时,写入规则是:,写入的结果: ( 02000H ) = 34H ( 02001H ) = 12H,低字节到低地址单元 高字节到高地址单元,32,取入的结果: ( AL ) = 34H ( AH ) = 12H 或表示为 ( AX ) =1234H,将内存的某一字数据取至CPU内的寄存器时,,取入规则是: 低字节到低8位寄存器 高字节到高8位寄存器,33,34,五、8086/8088的I/O组织,I/O端口1,I/O端口2,I/O端口3,地址 译码,数据 缓冲,控制 电路,外 设,AB,DB,CB,C P U,CPU通过I/O接口电路与外设连接。 各I/O接口内部有一个或若干I/O寄存器( I/O端口 ) CPU对I/O端口可进行读/写操作。,35,8086/8088可寻址216= 64 K个I/O端口 I/O端口范围0000 FFFFH,8086/8088设有专用的指令对I/O端口进行读写操作, 即 IN 和 OUT指令 (在第五章详细介绍。

你可能感兴趣的:(计算机硬件技术基础清华大学)