收藏 分享(赏)

微处理器与总线.ppt

上传人:hyngb9260 文档编号:7241264 上传时间:2019-05-10 格式:PPT 页数:66 大小:4.87MB
下载 相关 举报
微处理器与总线.ppt_第1页
第1页 / 共66页
微处理器与总线.ppt_第2页
第2页 / 共66页
微处理器与总线.ppt_第3页
第3页 / 共66页
微处理器与总线.ppt_第4页
第4页 / 共66页
微处理器与总线.ppt_第5页
第5页 / 共66页
点击查看更多>>
资源描述

1、本次课主要内容,2.2 8088/8086微处理器 (重点) 8088/8086CPU的功能结构 (书2.2.3) 8088/8086CPU的存储器组织 (书2.2.4),第2章 微处理器与总线,小结,第2章:教学要求,2.2 (重点) 8088/8086微处理器 8088/8086CPU功能结构 (书2.2.3) 8088/8086CPU存储器组织 (书2.2.4) 8088CPU外部引脚及其功能 (书2.2.2) 8088/8086CPU工作时序 (书2.2.5) 2.3 2.4 (一般了解) 80386, Pentium微处理器 2.5 总线,第2章 微处理器与总线,本章教学重点 808

2、8内部寄存器 、存储器组织 、最小组态下的引脚定义,上次课回顾 -与前面所学知识的衔接,汇编语言程序员看到的硬件,中央处理单元 CPU(Intel 80x86) 对汇编语言程序员,最关心其中的寄存器 内存(主存储器 ) 呈现给汇编语言程序员的,是主存储器地址 存储器地址是存储器中存储单元的编号 外部设备(接口电路) 汇编语言程序员看到的是端口(I/O地址),微型计算机的系统组成,CPU CPU MOV AL,DL CPU 内存 MOV AL,ES:5678H CPU I/O接口 IN AL,56H,上次课回顾结束,返回,一. 8086CPU功能结构, 8086的内部结构 8086的寄存器结构1

3、. 通用寄存器(8个)2. 指令指针寄存器 IP3. 标志寄存器 PSW,从应用角度(不是从内部工作原理)展开 为学习指令系统打好基础,例如:关心用户“可编程”寄存器, 不关心无法操纵的“透明”寄存器,1. 8086CPU内部结构,8088的基本组成8088的内部结构从功能上分成两个单元 1. 总线接口单元BIU 管理8088与系统总线的接口 负责CPU对存储器和外设进行访问 2. 执行单元EU 负责指令的译码、执行和数据的运算 两个单元相互独立,分别完成各自操作,还可以并行执行,实现指令预取(指令读取和执行的流水线操作),1.算术逻辑单元ALU(运算器) 2.寄存器组 3.指令处理单元(控制

4、器),图示,8086的内部结构,1 2 3 4 5 6,内部寄存器,IP,ES,SS,DS,CS,输入/输出控制电路,外部总线,执行部分控制电路,ALU,标志寄存器,AX AH AL,SP,BP,SI,DI,通用寄存器,地址加法器,指令队列,执行单元 (EU),总线接口单元 (BIU),16位,20位地址总线,16位,BX BH BL,DX DH DL,CX CH CL,ALU数据总线,2. 8088/8086的内部寄存器,8086的内部寄存器组有 数据寄存器 指针寄存器 通用寄存器 变址寄存器 指令指针寄存器 状态标志寄存器 段寄存器 他们均为16位!,图示,汇编语言程序员看到的处理器,就是

5、寄存器所以,一定要熟悉这些寄存器的名称和作用,(1)数据寄存器,AX称为累加器(Accumulator) 使用频度最高。用于算术、逻辑运算以及与外设传送信息等 BX称为基址寄存器(Base address Register) 常用做存放存储器地址 CX称为计数器(Counter) 作为循环和串操作等指令中的隐含计数器 DX称为数据寄存器(Data register) 常用来存放双字长数据的高16位,或存放外设端口地址 4个数据寄存器还可以分成高8位和低8位两个独立的寄存器,这样又形成8个通用的8位寄存器 AX: AH AL BX: BH BL CX: CH CL DX: DH DL,(2)指针

6、寄存器,指针寄存器用于寻址内存堆栈内的数据 SP为堆栈指针寄存器(Stack Pointer),指示堆栈段栈顶的位置(偏移地址) BP为基址指针寄存器(Base Pointer),表示数据在堆栈段中的基地址 SP和BP寄存器与SS段寄存器联合使用以确定堆栈段中的存储单元地址,堆栈(Stack)是主存中一个特殊的区域,采用“先进后出”或“后进先出”存取操作方式、而不是随机存取方式。 用8088/8086形成的微机系统中,堆栈区域被称为堆栈段,(3)变址寄存器,16位变址寄存器SI和DI 常用于存储器变址寻址方式时提供地址 SI是源地址寄存器(Source Index) DI是目的地址寄存器(De

7、stination Index) 在串操作类指令中,SI、DI还有较特殊的用法,现在不必完全理解,以后会详细展开,(4) 指令指针寄存器 IP,IP(Instruction Pointer)为指令指针寄存器,用来控制CPU指令执行顺序 随着指令的执行,IP将自动修改以指示下一条指令所在的内存地址。顺序执行时,CPU每取一个指令字节,IP自动加1,指向下一个要读取的字节 IP寄存器与CS段寄存器联合使用以确定下一条指令的内存地址。,(5) 状态标志寄存器 (PSW程序状态字),存放cpu工作过程中状态,即反映指令执行结果或控制指令执行形式 8088处理器的各种标志形成了一个16位(用9位)的状态

8、标志寄存器PSW 状态标志用来记录程序运行结果的状态信息,许多指令的执行都将相应地设置它 C Z S P O A 控制标志可由程序根据需要用指令设置,用于控制处理器执行指令的方式 D I T,程序设计需要利用标志的状态,进位标志C(Carry Flag),当运算结果的最高有效位有进位(加法)或借位(减法)时,进位标志置1,即C1;否则C0,3AH + 7CHB6H AAH + 7CH(1)26H,没有进位:C = 0,有进位:C = 1,奇偶标志P(Parity Flag),当运算结果低8位中“1”的个数为零或偶数时,P1;否则P0,3AH7CHB6H,P标志仅反映最低8位中“1”的个数是 偶

9、或奇,即使是进行16位字操作,10110110B,结果中有5个“1”,是奇数:P0,半加标志位(辅助进位)A(Auxiliary Carry Flag),这个标志主要用于对BCD运算结果的调整,由处理器内部使用,用户一般不必关心,运算时低半字节(D3向D4)有进位(加法)或借位(减法)时,A1;否则A0,零标志Z(Zero Flag),若运算结果为0,则Z1; 否则Z0,3AH7CH 84H7CH,注意:Z为1表示运算结果是0,B6H,结果不是零:Z 0,(1)00H,结果是零:Z1,符号标志S(Sign Flag),运算结果最高位为1,则S1;否则S0,3AH7CHB6H,最高位D71:S1

10、 84H7CH(1)00H,最高位D70:S0,有符号数据用最高有效位表示数据的符号 所以,最高有效位就是符号标志的状态,陷阱标志位T(Trap Flag)(单步标志位),用于控制CPU进入单步操作方式。通常用于程序调试。 设置TF0,处理器正常工作; 设置TF1,处理器单步执行指令,中断允许标志位I(Interrupt-enable Flag),控制CPU是否响应可屏蔽中断请求 设置I1,则允许中断; 设置I0,则禁止中断,CLI指令复位中断标志:I0 STI指令置位中断标志:I1,方向标志位D(Direction Flag),用于串操作指令,控制地址的变化方向: 设置D0,存储器地址自动增

11、加; 设置D1,存储器地址自动减少,CLD指令复位方向标志:D0 STD指令置位方向标志:D1,溢出标志位O(Overflow Flag),若算术运算的结果有溢出,则O1;否则 O0,?,什么是溢出 处理器内部以补码表示有符号数 8位有符号数表达的整数范围是:127 128 16位表达的范围是:32767 32768 如果运算结果超出这个范围,就产生了溢出 有溢出,说明有符号数的运算结果不正确,溢出举例,分析:3AH7CHB6H,就是58124182, 已经超出128127范围,产生溢出,故OF1;补码B6H表达真值是74,显然运算结果也不正确,B6H10110110B,最高位为1, 作为有符

12、号数是负数对B6H求反加1等于: 01001001B101001010B4AH74所以,B6H表达有符号数的真值为74,3AH + 7CH,B6H,产生溢出:OF1,溢出的简单判断法,只有当两个同符号数相加(包括不同符号数相减),而运算结果的符号与原数据符号相反时,产生溢出;因为,此时的运算结果显然不正确 其他情况下,则不会产生溢出,例1:3AH7CHB6H 例2:AAH7CH 例3:3AH7CH 例4:AAH7CH2DH,溢出,无溢出,无溢出,溢出,PSW小结,(6)段寄存器,8088有4个16位段寄存器 CS(代码段)指明代码段的起始地址 SS(堆栈段)指明堆栈段的起始地址 DS(数据段)

13、指明数据段的起始地址 ES(附加段)指明附加段的起始地址 每个段寄存器用来确定一个逻辑段的起始地址,每种逻辑段均有各自的用途,返回,二.存储器组织,问题一:寄存器、存储器(内存)、外存都用于存储信息,为何仅讨论CPU的存储器寻址? 解答:存储器可直接与CPU进行数据交换问题二:16位寄存器如何能寻址1M内存空间? 解答:内存空间分段,逻辑地址/物理地址转换 问题三: CPU如何实现存储器寻址?解答: CPU总线接口单元,?,?,?,1.存储器寻址功能 2.存储器的分段管理 3.物理地址和逻辑地址 4.段寄存器及逻辑段分配 5. CPU存储器结构 6. 存储器数据的存储格式,Memory Add

14、ressing存储器寻址 - CPU的存储器结构,问题1,问题2,问题3,1.存储器寻址的功能 (Function of Memory Addressing),功能 Addressing Data in MEMORY 存储器(内存)是计算机存储信息的地方。可直接与CPU进行数据交换。 掌握数据存储格式,以及存储器的分段管理对以后的汇编程序设计非常重要,寄存器,存储器,外存,CPU,寄存器、存储器和外存的区别,寄存器是微处理器(CPU)内部暂存数据的存储单元,以名称表示,例如:AX,BX.等 存储器也就是平时所说的主存,也叫内存,可直接与CPU进行数据交换。主存利用地址区别 外存主要指用来长久保

15、存数据的外部存储介质,常见的有硬盘、光盘、磁带、U盘等。外存的数据只能通过内存间接地与CPU交换数据 程序及其数据可以长久存放在外存,在运行需要时才进入主存,2. 存储器的分段管理,8088CPU访问内存有20条地址线 共 220B=1MB个存储单元FFFFFH,内存地址00000HFFFFFH 8088CPU将1MB空间分成许多段,有4个16位段寄存器,对应4种逻辑段. Code Segment 代码段 Stack Segment 堆栈段 Data Segment 数据段 Extra Segment 附加段每个段最大限制为64KB,内部寄存器16位如何寻址20条地址线2201MB?,物理地址

16、,逻辑地址,3.物理地址和逻辑地址,用户编程时采用逻辑地址,形式为段地址 : 偏移地址一个存储单元具有唯一物理地址(20位,地址线寻址)、多个逻辑地址(16位,编程用),逻辑地址 1460H:100H、1380H:F00H 物理地址 14700H 14700H,例:MOV AX, ES: 0100H ;AXES:0100H,逻辑地址(16位, 汇编语言编程时采用) 形式为段地址: 偏移地址 段地址 段寄存器 CS, DS, ES, SS内容 说明逻辑段在主存中的起始位置 偏移地址 说明主存单元距离段起始位置的偏移量物理地址(20位,地址线寻址,实际地址) 物理地址=段地址*16+偏移地址 一个

17、存储单元具有唯一物理地址(20位,地址线寻址)、多个逻辑地址(16位,编程用),主存储器物理地址和逻辑地址,例:MOV AX, ES: 0100H ;AXES:0100H,例:逻辑地址 1460H:100 1380:F00H物理地址 14700H 14700H,8086CPU引脚线-外部特性,CPU引脚是系统总线的基本信号 可以分成三类信号 16位数据线:D0 D7 20位地址线:A0 A19确定存储器物理地址 控制线CPU内部寄存器(编程用)确定存储器逻辑地址 一个存储单元具有唯一物理地址(20位,地址线寻址)、多个逻辑地址(16位,编程用),物理地址和逻辑地址的转换,物理地址=段地址*16

18、+偏移地址 将逻辑地址中的段地址左移4位,加上偏移地址就得到20位物理地址 一个物理地址可以有多个逻辑地址,逻辑地址 1460H:100H 1380H:F00H 物理地址 14700H 14700H,4. 段寄存器及逻辑段分配,8088有4个16位段寄存器 CS (Code Segment Register) 指令 SS (Stack Segment Register) 堆栈 DS (Data Segment Register) 数据 ES (Extra Segment Register) 数据 每个段寄存器用来确定一个逻辑段的起始地址,每种逻辑段均有各自的用途,如何分配各个逻辑段,程序的指令

19、序列必须安排在代码段CS 程序使用的堆栈一定在堆栈段SS 程序中的数据默认是安排在数据段DS,也经常安排在附加段ES,尤其是串操作的目的区必须是附加段 数据的存放比较灵活,实际上可以存放在任何一种逻辑段中 没有指明时,一般的数据访问在DS段;使用BP访问主存,则在SS段,演示,逻辑段的分配,代码段寄存器CS(Code Segment),代码段用来存放程序的指令序列 代码段寄存器CS存放代码段的段地址 指令指针寄存器IP指示下条指令的偏移地址 处理器利用CS:IP取得下一条要执行的指令,逻辑地址,堆栈段寄存器SS(Stack Segment),堆栈段确定堆栈所在的主存区域 堆栈段寄存器SS存放堆

20、栈段的段地址 堆栈指针寄存器SP指示堆栈栈顶的偏移地址 处理器利用SS:SP操作堆栈顶的数据,逻辑地址,数据段寄存器DS(Data Segment),数据段存放运行程序所用的数据 数据段寄存器DS存放数据段的段地址 各种主存寻址方式(有效地址EA)得到存储器中操作数的偏移地址 处理器利用DS:EA存取数据段中的数据,逻辑地址,附加段寄存器ES(Extra Segment),附加段是附加的数据段,也保存数据: 附加段寄存器ES存放附加段的段地址 各种主存寻址方式(有效地址EA)得到存储器中操作数的偏移地址 处理器利用ES:EA存取附加段中的数据 串操作指令将附加段作为其目的操作数的存放区域,逻辑

21、地址,8086/8088的地址产生小结,若CS=2000H, IP=2200H,求当前指令的物理地址?,逻辑地址 段地址: 偏移量 段地址:CS, DS, ES, SS段基址寄存器 偏移地址:SP, BP, DI, SI, IP等指针寄存器 上述寄存器都是16位的 物理地址 20位实际地址=段地址*16+偏移量,演示,5. CPU存储器结构,CPU总线接口单元 (BIU) 负责CPU对存储器和外设进行访问 地址加法器 16位 逻辑地址寄存器 16位 CPU地址线:A0 A19 20位 物理地址,完成物理地址、逻辑地址转换,8086的内部结构,1 2 3 4 5 6,内部寄存器,IP,ES,SS

22、,DS,CS,输入/输出控制电路,外部总线,执行部分控制电路,ALU,标志寄存器,AX AH AL,SP,BP,SI,DI,通用寄存器,地址加法器,指令队列,执行单元 (EU),总线接口单元 (BIU),16位,20位,16位,BX BH BL,DX DH DL,CX CH CL,8088指令执行过程示意,例:MOV AX,0064H 机器代码 B8H 64H 00H 执行该指令时CS=1000H,IP=100H 物理地址? 段地址 CS=1000H 偏移地址 IP=100H 逻辑地址 1000H:100H 物理地址 1000H16+100H=10100H,8088指令执行过程示意(例:MOV

23、 AX,0064H;机器代码B8H 64H 00H 执行该指令时CS=1000H,IP=100 ),8088指令执行过程示意(例:MOV AX,0064H;机器代码B8H 64H 00H 执行该指令时CS=1000H,IP=100 ),6.存储器数据的存储格式,计算机中信息的单位 二进制位Bit:存储一位二进制数:0或1 字节Byte:8个二进制位,D7D0 字Word:16位,2个字节,D15D0 双字DWord:32位,4个字节,D31D0 最低有效位LSB:数据的最低位,D0位最高有效位MSB:数据的最高位,对应字节、字、双字分别指D7、D15、D31位 每个存储单元都有一个编号 存储单

24、元地址(或内存地址、存储器地址) 每个存储单元存放一个字节(8位二进制数)的内容 存储单元内容,例:00002H单元存放有一个数据34H 表达为 00002H34H,8086存储,主存储器(内存),存放cpu执行的程序及数据 读出:cpu从内存中取出程序及数据过程 写入:将程序及数据存放于内存的过程 主存储器由许多存储单元组成 每个存储单元存放8位二进制数(1字节)-存储单元内容 每个存储单元编不同号码-存储单元地址(或内存地址、存储器地址) 8086cpu访问内存有20位地址线,内存地址00000HFFFFFH共 220B=1MB个存储单元 存储器地址(Address) 存储器由大量存储单元

25、组成,需要用编号区别每个单元:编号地址 存储器地址是存储器中存储单元的编号 Intel 8086具有1兆字节(1MB)存储器容量 存储器地址表示为:00000H FFFFFH 采用十六进制H数来表达地址,内存 MOV AX, ES:5678H,多字节数据存放方式,多字节数据在存储器中占连续的多个存储单元: 存放: 低字节存入低地址,高字节存入高地址 表达: 用它的低地址表示多字节数据占据的地址空间。 同一个存储器地址可以是字节单元地址、字单元地址、双字单元地址等等(视具体情况来确定),80x86处理器采用“低对低、高对高”的存储形式,被称为“小端方式Little Endian”。相对应还存在“

26、大端方式Big Endian”。,8086存储,8088CPU的存储格式-小端存储方式,低地址,LSB,MSB,00002H单元的内容为: 00002H = 34H 00002H“字”单元的内容为: 00002H = 1234H 00002H号“双字”单元的内容为: 00002H = 78561234H,多字节数据在存储器中占连续的多个存储单元 存放:低字节存入低地址,高字节存入高地址 表达:用低地址表示多字节数据占据的地址空间 同一个存储器地址可以是字节单元地址、字单元地址、双字单元地址等等,设DS=0 00002H“双字”单元 MOV EAX,0002H 00002H“字”单元 MOV A

27、X,0002H 00002H单元 MOV AH,0002H,高地址,存储单元,存储器地址,数据的地址对齐,同一个存储器地址可以是字节单元地址、字单元地址、双字单元地址等等 字单元安排在偶地址(xxx0B)、双字单元安排在模4地址(xx00B)等,被称为“地址对齐(Align)” 对于不对齐地址的数据,处理器访问时,需要额外的访问存储器时间 应该将数据的地址对齐,以取得较高的存取速度,内存(存储器)一般图示方法,若段地址=28E9H,两种方法表同一存储区,方法一,方法二,返回,8086的内部结构,1 2 3 4 5 6,内部寄存器,IP,ES,SS,DS,CS,输入/输出控制电路,外部总线,执行

28、部分控制电路,ALU,标志寄存器,AX AH AL,SP,BP,SI,DI,通用寄存器,地址加法器,指令队列,执行单元 (EU),总线接口单元 (BIU),16位,20位,16位,BX BH BL,DX DH DL,CX CH CL,8086的寄存器组,状态标志寄存器 (PSW程序状态字),存放cpu工作过程中状态,即反映指令执行结果或控制指令执行形式 8088处理器的各种标志形成了一个16位(用9位)的状态标志寄存器PSW 状态标志用来记录程序运行结果的状态信息,许多指令的执行都将相应地设置它 C Z S P O A 控制标志可由程序根据需要用指令设置,用于控制处理器执行指令的方式 D I

29、T,程序设计需要利用标志的状态,8086CPU引脚线-外部特性,CPU引脚是系统总线的基本信号 可以分成三类信号 16位数据线:D0 D7 20位地址线:A0 A19确定存储器物理地址 控制线CPU内部寄存器(编程用)确定存储器逻辑地址 一个存储单元具有唯一物理地址(20位,地址线寻址)、多个逻辑地址(16位,编程用),逻辑地址(16位, 汇编语言编程时采用) 形式为段地址: 偏移地址 段地址 段寄存器 CS, DS, ES, SS内容 说明逻辑段在主存中的起始位置 偏移地址 说明主存单元距离段起始位置的偏移量物理地址(20位,地址线寻址,实际地址) 物理地址=段地址*16+偏移地址 一个存储

30、单元具有唯一物理地址(20位,地址线寻址)、多个逻辑地址(16位,编程用),主存储器物理地址和逻辑地址,例:MOV AX, ES: 0100H ;AXES:0100H,例:逻辑地址 1460:100 1380:F00物理地址 14700H 14700H,段寄存器及逻辑段分配,8088CPU访问内存有20条地址线 共 220B=1MB个存储单元FFFFFH,内存地址00000HFFFFFH 8088CPU将1MB空间分成许多段,有4个16位段寄存器,对应4种逻辑段.每个段最大限制为64KB Code Segment 代码段 Stack Segment 堆栈段 Data Segment 数据段 E

31、xtra Segment 附加段 8088有4个16位段寄存器 CS (Code Segment Register) 指令 SS (Stack Segment Register) 堆栈 DS (Data Segment Register) 数据 ES (Extra Segment Register) 数据 每个段寄存器用来确定一个逻辑段的起始地址,每种逻辑段均有各自的用途 程序的指令序列必须安排在代码段CS 程序使用的堆栈一定在堆栈段SS 程序中的数据默认是安排在数据段DS,也经常安排在附加段ES,尤其是串操作的目的区必须是附加段,8088CPU的存储格式-小端存储方式,低地址,LSB,MSB

32、,00002H单元的内容为: 00002H = 34H 00002H“字”单元的内容为: 00002H = 1234H 00002H号“双字”单元的内容为: 00002H = 78561234H,多字节数据在存储器中占连续的多个存储单元 存放:低字节存入低地址,高字节存入高地址 表达:用低地址表示多字节数据占据的地址空间 同一个存储器地址可以是字节单元地址、字单元地址、双字单元地址等等,设DS=0 00002H“双字”单元 MOV EAX,0002H 00002H“字”单元 MOV AX,0002H 00002H单元 MOV AH,0002H,高地址,存储单元,存储器地址,例题:,设指令执行前

33、,DS=8493H, BX=7A3BH, 执行完 MOV AX,BX+1指令后 AX=? 分析: BX+1内存操作数 段地址 DS=8493H 偏移地址 BX+1=7A3CH 逻辑地址 8493H:7A3CH 物理地址 8493H16+7A3CH=8C36CH 执行完MOV AX,BX+1指令后AX=7856H,内存 物理地址,逻辑地址:,例题:,设指令执行前,ES=8492H,DS=8493H, BX=7A33H,求指令MOV ES:BX+1DH,BX内存操作数的逻辑地址? 偏移地址?段地址?物理地址?指令执行完内存有何变化?BX=?ES=?DS=? 分析:内存 ES:BX+1DH 逻辑地址

34、 8492H:7A50H 偏移地址=BX+1DH=7A33H+1DH=7A50H 段地址=ES=8492H 物理地址=8492H16+7A50H=8C370H 执行完该指令后 物理地址为8C370H单元内容为33H, 8C371H单元内容为7AH BX、ES、DS不变,内存 物理地址,作业,1.8086CPU的CL、CS、CX、DS、DI、DX、DH、SS、SI、SP、IP这些寄存器中,哪些是8位寄存器?段寄存器?堆栈指针寄存器? 2.处理器利用CS:IP取得下一条要执行的指令,若CS=5677H, IP=0019H,求存放下一条要执行的指令内存的逻辑地址和物理地址?汇编语言编程时采用逻辑地址还是物理地址? 3.总线信号中决定系统直接寻址存储器范围的是什么总线? 4.请将下述逻辑地址转化为物理地址 3017H:000AH 3015H:002AH 3010H:007AH,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报