微机原理课件第2章

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

6个状态标志(也称为条件码)----寄存ALU运算结果的 状态信息

3个控制标志----寄存CPU的工作状态信息
16
标志寄存器图示
符号标志SF用来反映运算 在运算过程中,如果发生低 中断允许标志IF位用来决定CPU是否响 奇偶标志 PF 用于标志运算 进位标志 CF主要用来反映运 结果的符号位,它与运 溢出标志位 OF 用于反映有符号数加减 方向标志 DF 位用来决定在“数据串操 4位向高4位的进位或借位 应 CPU 外部的可屏蔽中断发出的中 结果的低 8位中“1”的个 算是否产生进位或借位。 算结果的最高位相同。 运算所得结果是否溢出。如果运算 作”指令执行时的步进方向; DF=1 时,辅助进位标志 AF 的 断请求。但不管该标志为何值, 零标志ZF用来反映运算 数的奇偶性。如果“ 1” 状态控制标志 TF 位用来 如果运算结果的最高位产 对于有符号数就反映运 结果超过当前运算位数所能表示的 表示由高字节向低字节方向进行 — 值将被置为 1 CPU 都必须响应 CPU 外部的不可屏 结果是否为 0的个数为偶数,则 。如果运 PF的 控制 CPU是正常 (TF=0) 生了一个进位或借位,此 算结果的正负号。运算 范围,则称为溢出, OF 的值被置为 称为递减方式 蔽中断请求,以及 CPU 内部产生的 算结果为 0 ,则其值为 1 值为 1 执行,还是单步 (TF=1) 时其值为 1 结果为正数时, SF的值 1,否则, OF的值被清为 0 中断请求; IF=1表示开中断 执行 为0

需要存储在相邻两个存储单元中的数据称为一个“字”, 叫做字数据

字数据的存储:低字节存于低地址单元,高字节存于
高地址单元

存放该字数据低字节的存储单元的地址,叫做该字数 据的存储地址
22
存储器中数据的存储方式
存储单元地址 3CH ……
00A22H 00B06H 00B07H 03A03H 03A04H
但,入场卷上的编号只能是两位数
将全部座位先分为两个区域;各区域的编号用两 位数编制(如10、20) 各区域可容纳100人,编号为00---99 你的实际座位号应为:区域号*10+座位号
30

解决的办法


存储器的逻辑分段原则

逻辑段的划分原则上不受限制

各段之间可连续、可分开、可部分重叠、还可完全

7


指令队列缓冲器

指令队列缓冲器

8086 的指令队列为6个字节 8088 的指令队列为4个字节

指令队列缓冲器的指令存放状态

实现CPU的流水 线处理操作
顺序指令执行:指令队列存放紧接在执行指令后面的
那一条指令

执行转移指令:立即清除指令队列中的内容,从新的 地址取入指令,并立即送往执行单元,然后再从新单 元开始重新填满队列
物理地址 =段基地址× 10H+偏移地址
CS, DS, SS, ES 之一 存储单元实际地址 由基变地址或指针 寄存器以及其他的 指令寻址方式得到
37
逻辑地址到物理地址的变换例
BIU中的地址加法器,实现逻辑地址到物理地址的变换ቤተ መጻሕፍቲ ባይዱ
例:
假设 ( DS)=3200H 若指令中给出的偏移地址: 1050H
物理地址 = 3200H×10H +1050H = 33050H
8086/ 8088 的地址总线(AB)为20位 ∴ 直接寻址范围是 220 = 1 MB个存储单元
但是: 8086/ 8088 的寄存器、ALU都是16位,送出的也只
能是16位的地址数据 ∴ 最多表示 216 = 64 KB 个地址编号
就是说:16位的寄存器和ALU不能直接存放和处理20位 的地址数据
34
地址存储与寄存器
BX基址寄存器
基址或变址寄存器,
存储相应的偏移地址
BP基址指针寄存器 SP堆栈指针寄存器 IP指令指针寄存器 DI目的变址寄存器 SI源变址寄存器 CS代码段段基址寄存器 DS数据段段基址寄存器 ES附加段段基址寄存器
段寄存器,存储各
段的段基本地址
SS堆栈段段基址寄存器
35
存储器地址的两种表示方式
11
3. 地址指针寄存器

常用于存放段内寻址时的偏移地址

SP:堆栈指针寄存器,存放当前堆栈段中
栈顶的偏移地址

BP:基址指针寄存器,存放位于堆栈中的 某个存储单元的偏移地址

在寻址操作时一般均与SS搭配使用
12
4. 变址寄存器

SI:源变址寄存器 DI:目标变址寄存器 变址寄存器常用于指令的间接寻址或相对寻址;存放 当前数据段中某一个存储单元的偏移地址
际地址
5
执行部件EU的组成及作用
算术逻辑单元(运算器)
8个通用寄存器 1个标志寄存器 EU部分控制电路
取指令,指令译码 执行指令,完成运算
6
总线接口部件BIU的组成及作用
地址加法器 6字节指令队列缓冲器 4个16位段寄存器 计算20位的存储器地址 16位指令指针寄存器 完成CPU与内存间以及CPU与I/O接口间的信息传送 输入输出控制电路 分两种情况: 预取指令时:利用CPU执行指令而总线空闲,从 内存中取出指令放入指令队列(等待CPU取走) EU执行指令时:按EU的指令,向内存或I/O接口 写运算结果,从内存或I/O接口取数据 控制外部总线,保证各种信息的正确传送
10
2. 段寄存器
4个16位段寄存器,用于存放各逻辑段的段基地址;不 可互换的使用 CS(Code Segment ):代码段寄存器 用于存放当前执行程序所在段的段基地址 DS(Data Segment ):数据段寄存器 用于存放当前使用数据所在段的段基地址 ES(Extra Segment ):附加段寄存器 用于存放当前附加数据段的段基地址 SS(Stack Segment ):堆栈段寄存器 用于存放当前堆栈段的段基地址
26
8086存储器的分体结构

8086CPU是按16位结构设计,可以通过两个存储体 直接读/写一个字数据;也可以只从一个存储体中读 /写一个8位的字节数据

SEL为奇偶地址存储体的“片选”信号


奇偶地址存储体的选择由BHE信号和A0决定
所以读/写字数据或字节数据就会有几种不同的情况
27
存储器的分段和物理地址的形成

与DS配合使用 用SI存放源操作数的偏移地址 用DI存放目标操作数的偏移地址
13
5. 指令指针寄存器
IP寄存器 —— 指令指针寄存器,存放下一次要取
出执行的指令的偏移地址 •与CS结合使用构成真正的指令物理地址 (CS*16+IP) •用户不能直接更新使用,只能由系统自动更新
14
部分寄存器一般用途示意
28
存储器的逻辑分段

CPU对存储器实行“分段”管理
即将存储空间分为若干逻辑段,每个逻辑段长度≤64 KB; 16位的总线足可以管理和标记它

某存储单元的实际地址用段的基本地址(段基址)加该存储 单元在该段中的相对位置(偏移地址)共同表示
29
比喻

假设

教室内有200个座位,都编有3位数的号码 必须按号入座
17
标志寄存器置位问题

状态标志位由ALU运算的结果置位

控制标志位需要在程序中用专门的指令置位
18
运算对标志位的影响的例
19
第2主题问题 8086/8088的存储器组织
主要内容:
存储器组织 8086存储器的分体结构
存储器的分段和物理地址的形成
20
存储器的组织

在存储器中,以字节为单位存取数据 存储地址即为存储单元编号,称为地址
23
• 存储内容的表示:
(00A22H)=3CH
存储单元地址 字数据3A0DH的存 储地址为:00B06H
低字节 高字节 存储内容
0DH
3AH
…… 5EH 32H …
字数据325EH的存 储地址为:03A03H
规则字与非规则字

存放一个字数据的低字节地址如果是偶数地址,则
称为“规则字” 存放一个字数据的低字节地址如果是奇数地址,则 称为“非规则字” 存取“规则字”与“非规则字”,其操作过程不同
重叠

但要求:段的分配只能从地址低4位均为0的内存单 元开始
31
存储器分段图示
最大64KB,最小16B
32
存储器分段例
33
段首地址、段基地址和偏移地址
60000H 60002H 00H 12H
段首地址(20位)
××× ••• ×××
偏移地址 =0002H
0000 一定为0
段基地址(16位)
每个段都从低4位为0的存储单元开始 段首地址的高16位称为段基地址 偏移地址为相对于段首地址的偏移量
8086/8088提供20条地址总线,可寻址的存储空间为
220=1MB

每个存储单元的地址均为20位(但一般用5个十六进制 数书写)

地址范围为:00000H--0FFFFFH
21
字节数据与字数据的存储

存储在一个存储单元中的数据称为字节数据


字节数据的存储:按顺序存放
其存储单元的地址,叫做该字节数据的存储地址
主要内容: 8086/8088CPU的内部结构
8086/8088CPU的寄存器结构
3
8086/8088CPU的内部结构
8086/8088 CPU的内部结构基本相同
均由两个独立的工作部件组成 一个称为执行部件(EU) 一个称为总线接口部件 (BIU)
4
8086/8088CPU的内部结构
指令队列的设置使指令的取 8088CPU外部数据 寄存器是中央处理器内的组成部份 总线为8位、指令 寄存器是有限存贮容量的高速存 出与执行并行进行,以提 队列为4字节 取指令、指令译码、产生 贮部件,它们可用来暂存指令、 高了程序的运行速度 并传送操作信号 地址加法器的作用是根据 数据和地址。 输出输入控制电路实现总指令:确定运算与操作 段寄存器存放的段基地 线控制,决定读或写、数据:运算或读写操作的对象 址与EU送出的16为偏移 地址:标记和确定内存空间中具体 对内存或对I/O接口 地址计算得到20位的实 的存储位置
段基地址CS 段基地址SS 段基地址DS或ES
某数据地址SI 栈内某数据地址BP 某指令地址IP 某数据地址DI 堆栈顶地址SP 代码段 堆栈段 数据段或附加数据段
15
6. 标志寄存器

FR(FLAGS) —— 状态标志寄存器

8086/8088CPU设有一个16位的状态标志寄存器;使用
其中的9位作为状态标志位和控制标志位

物理地址和逻辑地址是两种存储单元地址的表示和标 记方法

物理地址:存储单元所具有的实际地址

由20位二进制代码构成 由两部分构成 段基地址 :偏移地址

逻辑地址:在程序中(指令中)书写和使用的地址

36
物理地址的形成方式
由逻辑地址(即段基地址和偏移地址)通过计算,转换得到
(20位) (16位) (16位)
8
8086/8088CPU的内部(编程用)寄存器

包括14个16位的寄存器
4个数据寄存器(AX,BX,CX,DX)
4个段寄存器(CS,DS,ES,SS) 2个地址指针寄存器(BP,SP) 2个变址寄存器(SI,DI) 2个控制寄存器(IP,FLAGS)
9
1. 数据寄存器
含4个16位寄存器,也可分别作为 2个8位的字节寄存器 使用;常用来存放参与运算的操作数或运算结果 • AX(Accumulator)(AH、AL)——累加寄存器 常用于数据运算或与外设交换数据 • BX(Base)(BH、BL)——基址寄存器 在间接寻址中用于存放内存的基地址 • CX(Count)(CH、CL)—— 计数寄存器 在循环、移位等操作中用于计数 • DX(Data)(DH、DL)—— 数据寄存器 常用于数据的传送或配合AX进行双字节运算


(即所使用的总线周期数不同)
24
8086存储器的分体结构
在8086系统中,将其可寻址的1 MB存储器分为
两个存储体;即奇地址存储体和偶地址存储体, 各为512 KB
25
8086存储器的分体结构
◆奇地址存储体与系统高8位数据总线相连,偶地址存储体 与系统低8位数据总线相连 奇高偶低 ◆读/写偶地址体时,数据从低8位数据总线上传送 ◆读/写奇地址体时,数据从高8位数据总线上传送 特别提示:关注BHE、A0和SEL信号
微机原理及应用
张元涛 重庆科技学院电气与信息工程学院
1
第2章 微型计算机中的微处理器
重点掌握的知识
(1)掌握8086/8088CPU的内部结构
(2)掌握寄存器结构 (3)掌握存储器的组织特点以及物理地址的计算方法
(4)掌握I/O端口的编址方式
(5)掌握最大最小两种工作模式配置
2
第1主题问题 8086/8088CPU的编程结构
相关文档
最新文档