当前位置:文档之家› 微机原理 第三章 微处理器

微机原理 第三章 微处理器


青岛理工大学琴岛学院
表3.1 通用寄存器的特定用法
寄存器 操作 寄存器 操作 在移位指令中作 移位次数计数器
AX
字乘,字除,字I/O
CL
AL
字节乘,字节除,字节I/O, 查表转换,十进制运算
字节乘,字节除
DX
字乘,字除指令 中作辅助累加器
堆栈操作,做堆 栈指针
AH
SP
BX
查表转换,做基址寄存器
SI
青岛理工大学琴岛学院
2)逻辑地址与物理地址
逻辑地址(LA)和物理地址(PA):
物理地址:就是存储器的实际地址,它是指CPU和存储器 进行数据交换时所使用的地址(20位)。
逻辑地址:是在程序中使用的地址,它由段基址和偏移地
址两部分组成(16位)。
物理地址=段基址(左移4位)+偏移量
形成20位段 起始地址 16位
青岛理工大学琴岛学院
2 . 8086/8088CPU的寄存器结构
8086/8088CPU中可供编程使用的有14个16位寄存器, 按其用途可分为3类:通用寄存器、段寄存器、指针和标 志寄存器,如所示。
AH BH CH DH SP BP SI DI FLAGS IP CS DS SS ES AL BL CL DL 累加器 基址寄存器 计数寄存器 数据寄存器 数据寄存器 通用寄存器 地址指针和 变址寄存器
2
3 4 5
6
存取一般变量(除3、4、5项外)
DS
有效地址EA
根据寻址方式计算出来的偏移量又叫操作数的有效地址EA
青岛理工大学琴岛学院
4. CPU对堆栈的设置与操作
堆栈的功能:用于暂存数据和现场保护 (特别是在过程调用或中断处理时暂存断 点信息) 堆栈的解释:实际上是由特定存储单元 构成的一个存储区,只是在这个存储区中 信息的出入严格按照“先进后出”或“后 进先出”的规则进行。
总线接口部件BIU
总线接口部件BIU内部设有四个16位段地址寄存器:代 码段寄存器CS、数据段寄存器DS、堆栈段寄存器SS和附 加段寄存器ES,一个16位指令指针寄存器IP,一个6字节指 令队列缓冲器,20位地址加法器和总线控制电路。 功能:根据执行部件EU的请求,负责完成CPU与存储 器或I/O设备之间的数据传送。
青岛理工大学琴岛学院
MPU 等待取指1 执行1 等待取指2 执行2
等待取指3 执行3
总线






传统微处理器的指令执行过程 (串行方式)
BIU EU 总线
取指1
取指2
取指3
取指4
取指5
取指6 执行6
执行1 忙 忙
执行2 忙
执行3 忙
执行4 忙
执行5 忙
8086/8088CPU的指令执行过程(并行方式)
ALU
指令队列 控制电路 1 2 3 4 5 6
状态标志寄存器 执行部件 EU 总线接口部件 BIU
图2-1 8086/8088CPU内部功能结构框图
青岛理工大学琴岛学院
执行部件EU
执行部件中包含一个 16位的算术逻辑单元(ALU), 8个16位的通用、专用寄存器,一个16位的状态标志寄存器, 一个数据暂存寄存器和执行部件的控制电路。 功能:从 BIU 的指令队列中取出指令代码,经指令译 码器译码后执行指令所规定的全部功能。执行指令所得结果 或执行指令所需的数据,都由 EU 向 BIU 发出命令,对存储 器或I/O接口进行读/写操作。

MOV AX , SS:[100H] 求1.操作数的PA? 已知:DS:3001H SS:2010H

青岛理工大学琴岛学院
例题:
MOV AX , [BX] MOV AX , [BP] 分别求:1.操作数的PA? 2.(AX)=? 已知:DS:2000H ES:1000H SS:3000H CS:5000H BX:10H BP:20H
PF= 0,因为低8位运算结果01011110是奇数个1; CF= 0,因为最高位无有进位;
AF= 0,因为D3位没有向D4位产生进位;
P31 例题3.2—3.4
OF= 0,由于D14位没向D15位产生进位,D15位也没有进位。
青岛理工大学琴岛学院
4).段寄存器 8086CPU共有4个16位的段寄存器,用来存放每一个 逻辑段的段起始地址。
青岛理工大学琴岛学院
3.1.2 8086微处理器内部结构组成
AX AH BH CH DH SP BP SI DI ALU 数据总线 ( 16 位) 暂存器 AL
BX
CX DX
BL
CL DL
地址加法器

1.CPU功能结构
CS DS SS 总线控制逻辑 ES IP 内部通信 寄存器 8086/8088 总线
青岛理工大学琴岛学院
物理地址的算法
段基址
15 0
逻 辑 地 址
0915
19 15 0 0
每当CPU访问存储器时, 总线接口单元BIU把逻辑 地址转换成物理地址。 首先把逻辑地址中的段基 址(在段寄存器中)左移 4位,形成20位的段起始 地址(段基址),然后再 加上16位的偏移量,产生 20位的物理地址。
FFFFFH
图 3-10 存储器分段示意图
青岛理工大学琴岛学院
段寄存器
00000H
段基址
偏移量
段 寄 存 器
CS DS SS ES
代码段
段基址 数据段 堆栈段
段基址
CPU将存储器划分成若干 段,把将要运行的程序个 部分分别放在一个存储段 中。每个存储段用一个段 寄存器来指示它的首地址 (段基址)。 一个存储单元与它所在 段的段基址之间的距离 叫该存储单元的偏移量 (偏移地址)。
EU
堆栈指针寄存器 基址指针寄存器 源变址寄存器 目的变址寄存器
标志寄存器 指令指针寄存器 代码段寄存器 数据段寄存器 堆栈段寄存器 附加段寄存器
控制寄存器
BIU
段寄存器
8086/8088CPU内部寄存器结构
青岛理工大学琴岛学院
1).通用寄存器
通用寄存器分为数据寄存器、指针寄存器和变址寄存器 三组。 数据寄存器包括4个16位的寄存器AX、BX、CX和DX,一 般用来存放16位数据,故称为数据寄存器。其中的每一个又 可根据需要将高8位和低8位分成独立的两个8位寄存器来使 用,即AH、BH、CH、DH和AL、BL、CL、DL两组,用于存放8 位数据,它们均可独立寻址、独立使用。 指针和变址寄存器包括指针寄存器SP、BP和变址寄存器 SI、DI,都是16位寄存器, 一般用来存放地址的偏移量。 这8个16位通用寄存器都具有通用性,从而提高了指令 系统的灵活性。但在有些指令中,这些通用寄存器还各自有 特定的用法 ,见下表。
符号标志:和运算结果的最高位相同 奇偶标志 单步中断 中断允许标志 方向标志
1 允许CPU响应可屏蔽的中断请求
0 不允许CPU响应可屏蔽的中断请求
进借位标志
1 串操作过程中地址自动递减 0 串操作过程中地址自动递增 1 有溢出 0 无溢出
溢出标志
青岛理工大学琴岛学院
两个数进行加法运算,看标志位的变化情况。 0010 0011 0100 0101 + 0011 0010 0001 1001 0101 0101 0101 1110 SF= ZF= 0,因为最高位为0; 0,因为运算结果不为0;
0915 0
15 0
003 A
偏移量
+)
003 A
0918 A
物理地址
青岛理工大学琴岛学院
CS
IP
代码段
DS或ES
SI、BX或DI
数据段
SS
SP或BP
堆栈段
段寄存器和存放偏移地址的寄存器组合关系
青岛理工大学琴岛学院
例题:
MOV AX , [100H] 求1.操作数的PA? 2.(AX)=? 已知:DS:3001H SS:2010H
第3章 微处理器
青岛理工大学琴岛学院
3.1 8086/8088微处理器的内部结构
微型计算机是由具有不同功能的一些部件组成的,包含运 算器和控制器电路的大规模集成电路,称为“微处理器”,又称 “中央处理器(CPU)”,其职能是执行算术/逻辑运算,并负责 控制整个计算机系统,使之能自动协调地完成各种操作。 3.1.1 基本性能指标 16位微处理器(8088是准16位的); 采用高速运算性能的HMOS工艺制造,芯片上集成了2.9万只晶 体管; 使用单一的+5V电源,40条引脚双列直插式封装; 时钟频率为5MHz~10MHz,基本指令执行时间为0.3ms~0.6ms 16根数据线(8086)和20根地址线,可寻址的地址空间达1MB 共有14个16位寄存器:8个通用寄存器,2个控制寄存器,4个段 寄存器;
(1)代码段寄存器CS
(3)堆栈段寄存器SS
(2)数据段寄存器DS
(4)附加段寄存器ES
青岛理工大学琴岛学院
存储器分段
00000H 逻辑段 1 起点 逻辑段 2 起点 逻辑段 3 起点 ∶ ∶ 逻辑段 1 ≤64KB
逻辑段 2 ≤64KB 逻辑段 3 ≤64KB
逻辑段 4 ≤64KB ∶ ∶
逻辑段 4 起点
段基址
附加段
0FFFFFH
青岛理工大学琴岛学院
3. 8086/8088对存储器的访问
1)关于存储器的一些基本概念:



存储器是由若干存储单元组成的存储整体。 每个存储单元对应一个唯一的编号,即地址。 由于CPU有1M的寻址能力,所以1M的地址范围是 00…000(20个0)~11 …111(20个1)。用十六进 制也就是从:00000H ~0FFFFFH。 存储器最基本的单元是字节(Byte),但任何相邻两个 字节可以构成一个字(Word),一个字有16位二进 制码,其中低8位在地址较低的字节,高8位在地址 较高的字节。 “小端方式” 用地址值较小的哪个字节单元地址作为这个字单元 的地址。
相关主题