微机原理与接口技术-1.4微处理器
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.专用寄存器组
专用寄存器组包括作为控制寄存器使用的 指令指针寄存器IP和状态标志寄存器F,此外还 有4个用于实现1MB存储器寻址的段寄存器CS、 DS、SS、ES。以上寄存器都是16位的寄存器。 8088指令中给出的地址最多只有16位,而与 寻址有关的寄存器也是16位的,由于16位地址 最多只能寻址64KB。
对于SI和DI寄存器也有类 似的情况,即在专用的串操作 指令中,指定SI作为源串的地 址指针,DI作为目标串的地址 指针,并在串指令执行时,自 动地改变SI或DI的值,因而称 SI、DI为变址寄存器。
来自百度文库
SP作为堆栈栈顶元素的指针,不 能指向栈顶以外的元素,为此,增 加了一个基址指针寄存器BP,使它 可以指向由SS作为堆栈段基址的栈 中的任意位置。BP与SP具有不同的 概念和用途,我们要注意将它们区别 开来。
BIU:负责与存储器接口, 8088与 BIU:负责与存储器接口,即8088与 负责与存储器接口 存储器之间的信息传送 负责指令的执行。 EU: 负责指令的执行。 CPU分为两个单元 分为两个单元, 将CPU分为两个单元,可以使取 指令和执行指令同时进行, 指令和执行指令同时进行,减少了 CPU为取指令而等待的时间 为取指令而等待的时间, CPU为取指令而等待的时间,从而提 高了CPU的利用率,提高了系统的运 高了CPU的利用率, CPU的利用率 行速度。 行速度。
BIU的组成4:指令队列(缓冲器)
指令队列缓冲器由6个8位(8086—6个, 8088—4个)的FIFO寄存器构成, 其工作流 程如下:
(1)BIU中的指令队列有2个或2个以上字节为空 时,BIU自动启动总线周期,取指填充指令队 列。直至队列满,进入空闲状态。 (2)EU每执行完一条指令,从指令队列队首取指。 系统初始化后,指令队列为空,EU等待BIU从 内存取指,填充指令队列。
例如,虽然通用寄存器都可作为 累加器使用,但在某些算术运算中(如 乘法运算、除法运算、十进制调整等), 还是指定了以AX作为累加器,这就使 AX与其它的通用寄存器有所区别,因 而在8088中,把AX称为累加器。 由于在变址寻址中,指定BX为基 址寄存器,因此,BX便被称为基址寄 存器。
在循环控制或重复操作的指令 中,常把循环或重复的次数放在 CX或CL中,因而称CX为计数寄存 器。在乘法、除法中,乘积或被除 数超过16位时,总是用DX与AX存 放,故DX便被称为数据寄存器。
8088CPU的内部寄存器
8088CPU内部共有14个16位的寄存器, 其中包括4个16位的数据寄存器AX、BX、 CX、DX;2个16位的指针寄存器SP、BP; 2个16位的变址寄存器SI、DI;2个16位 的控制寄存器IP、F及4个16位的段寄存 器CS、DS、ES、SS,如图2.1所示。
1.通用寄存器组 通用寄存器组包括4个数据寄存器AX、 BX、CX、DX;2个指针寄存器SP、BP及2个 变址寄存器SI、DI。 4个数据寄存器用来存放16位数据,也 可以将每个数据寄存器分为2个8位的寄存器, 用于存放8位数据。此时,AX可分为AH及 AL;BX可分为BH及BL;CX分为CH及CL; DX分为DH及DL,它们可作为8位寄存器单 独使用。这样既可以进行16位的算术运算和 逻辑运算,也可以进行8位的算术运算和逻辑 运算,这是8088指令系统的一个特点。
地址 加法 器
∑
20
总线接口BIU
段寄存器 CS、DS、 、 、 ES、SS 、 地址加法器 寄存器 IP
CS DS SS ES IP 内部暂存器
16
输入/输出 输入 输出 控制电路
外 部 总 线
12 3 4 5 6
8
总线控制
器
总线接口部
BIU)
2. BIU
BIU单元用来实现EU的所 有总线操作。它由地址加法器, 段寄存器CS、DS、SS、ES, 指令指针IP,指令队列缓冲器 和总线控制逻辑组成。BIU负责 CPU与存储器或外部设备之间 的信息交换。
不仅4个数据寄存器可以任意参 加算术运算和逻辑运算,而且 BP,SP,SI,DI也可以任意参 加算术运算和逻辑运算,因而 称以上寄存器为通用寄存器。
为了充分地利用这些通用寄存 器,在某些指令中又对其中的寄 存器作了特殊的约定,使这些寄 存器在通用的基础上附加了一点 特殊性。 这些特殊的约定虽然增加了 掌握指令的难度,但是当学完指 令系统后会发现,这点难度是不 大的,是容易克服的。
4个段基地址CS、DS、ES、SS仅 仅指出了段从哪个地址开始,但还不 能决定正在使用的具体的存储单元的 地址,因此我们把正在使用的存储单 元的地址与所在段的基地址的偏移量 称为段内偏移量或者称为有效地址EA, 真正的物理地址是由段寄存器值左移4 位与段内偏移量相加后的结果,如图 2.2所示。
例如取指令时,CS值为2000H,而IP值为3500H,则 被取指令的物理地址为: 20000H ——CS左移4位 +) 3500H ——段偏移 23500H ——物理地址 又如SS值为7900H,已知栈顶元素的物理地址 为7B450H,则堆栈指针SP的值为: 7B450H -) 79000H 2450H 即SP值为2450H.
(3)辅助进位标志AF 当指令执行的结果,若低半字节(低4位)向 高半字节进位或借位时,AF=1;否则AF=0。 该标志常用于十进制数运算结果的调整,以得 到十进制的结果。 (4)零标志位ZF 当指令执行的结果为0时,ZF=1;否则ZF= 0。
(5)符号标志位SF 当运算结果的最高位(字节操作时为D7位,字 操作时为D15位)为1时,SF=1;否则SF=0。因 SF与结果的最高位一致,故可用SF值反映结果是 正或负。 OF溢出标志:当补码运算有溢出时,OF为1;否 则为0。
微处理器
Intel8086/8088
1. 8086/8088的功能结构
8086是一种单片微处理器芯片,内外部数 据总线16位( 8088内部数据总线16位,外部数据 总线8位)对外40条引脚,主时钟5MHz、 8MHz、 10MHz等。20条地址引脚,直接寻址220 =1MByte, 可访问64K个I/O端口。
BIU的组成5:总线控制逻辑 的组成5 总线控制逻辑 的组成
提供系统总线的控制信号, 提供系统总线的控制信号,实 现数据、 现数据、地址和状态信息的分时传 送。 由于8086/8088仅有40pin, 而16 位的DB 及20位的AB若分离设置的 话将占用36pin, 故8086采取了 AB/DB分时复用的方法, 但这样增加 了总线控制的复杂程度.
表2.1 段寄存器使用约定
专用寄存器组中的指令寄存 器IP只能与CS寄存器相互 结合,才能形成指令的真 正的物理地址。
执行单元EU的组成1:标志寄存Flag
O
D
I
T
S
Z
A
P
C
标志寄存器F则用来反映系统的状态 及指令执行的结果,8088的F使用了9 个标志位,各位有不同的意义,如图 2.3所示。
1MB是16个64KB存储器的总和,但 这并不意味着1MB只能包括16个逻 辑段。因为这些段既可以首尾相连, 可以相互间隔开。也可以相互重叠 或者部分重叠,只要不影响程序的 正常执行(例如不会取错指令或数据 等)即行,所以,逻辑段个数可能多 于16个也可能少于16个。
此外,段寄存器如何与偏移量形 成相应的物理地址,这在8088中有个 基本约定。正常情况下一般按这个基 本约定形成所需的物理地址,但也允 许有特例情况,被称为段超越,即不 用约定的段基址,而是用可修改的段 基址与某偏移量来形成所需的物理地 址,见表2.1。
BIU的组成2:地址加法器 的组成2: 的组成
BIU的组成3:指令指针寄存器 IP •IP(Instruction Pointer): 为16位, 终始 保持着EU要执行的下一条指令的偏 移地址(其值自动增加),不能用指令 直接修改, 但可以用间接方法修改 (例如:中断, 返回, 转移, 调用等等)。
(3)EU取得指令,译码并执行指令。若指令需要取 操作数或存操作结果,需访问存储器或I/O, EU向BIU发出访问总线请求。 (4)当BIU接到EU的总线请求,若正忙(正在执行 取指总线周期),则必须等待BIU执行完当前 的总线周期,方能响应EU请求;若BIU空闲, 则立即执行EU申请总线的请求。 (5)EU执行转移、调用和返回指令时,若下一条指 令不在指令队列中,则队列被自动清除,BIU 根据本条指令执行情况重新取指和填充指令队 列。
将取指令部分和执行指令部分 分开的好处是,在EU执行指令的 过程中,BIU可以取出多条指令放 入指令流队列中。当EU执行完一 条指令后,就可以立即执行下一条 指令,从而减少了CPU为取指令而 等待的时间,提高了运算的速度。 这是8088CPU的一大优点。
BIU的组成1:段寄存器 的组成1:段寄存器 的组成1: 段寄存器 CS、DS、ES、SS 、 、 、
通用 寄存 器
AH BH CH DH
AL BL CL DL SP BP SI DI
16位 位
1)执行单元EU
数据寄存器 AX、 BX、CX、DX 专用寄存器 SP、 BP、SI、DI 标志寄存FLAG
8位 位
ALU
标志寄存器
执行部分 控制电路
算数逻辑部件 ALU EU控制逻辑单元
执行部件 (EU)
两个指针寄存器中的SP是堆栈指 两个指针寄存器中的 是堆栈指 针寄存器, 它和堆栈段寄存器一起就 针寄存器 , 可以确定堆栈在内存中的位置。 是 可以确定堆栈在内存中的位置。BP是 基数指针寄存器, 基数指针寄存器 , 通常用来存放基地 使得8088的寻址更加灵活。 的寻址更加灵活。 址,使得 的寻址更加灵活 两个变址寄存器: 是源变址寄 两个变址寄存器 : SI是源变址寄 存器, 是目的变址寄存器 是目的变址寄存器, 存器, DI是目的变址寄存器,均用于 指令的变址寻址。 通常指向源操作 指令的变址寻址 。 SI通常指向源操作 通常指向目的操作数。 数,而DI通常指向目的操作数。 通常指向目的操作数
8086 CPU按功能可分为两大部分: 一部分为BIU(BUS Interface Unit) 专门负责取指令和存取操作数。 它与BUS打交道。 一部分为EU(Execution Unit) EU Execution Unit 专门负责分析指令与执行指令。 它不与系统BUS打交道。
1.EU
EU单元负责指令的执行,由算术逻辑 单元负责指令的执行, 单元负责指令的执行 单元ALU、 标志寄存器 、 通用寄存器及 单元 、 标志寄存器F、 EU控制器等组成 , 主要进行 位的各种 控制器等组成, 控制器等组成 主要进行16位的各种 运算及有效地址的计算。 不与计算机 运算及有效地址的计算 。 EU不与计算机 系统总线(外部总线 相关, 而从BIU中的 外部总线)相关 系统总线 外部总线 相关 , 而从 中的 指令队列取得指令。这个指令队列中, 指令队列取得指令。这个指令队列中,存 放着BIU预先由存储器中取出的若干个字 放着 预先由存储器中取出的若干个字 节的指令(8088为 4个字节 , 8086为 6个字 个字节, 节的指令 为 个字节 为 个字 节长队列)。 节长队列 。
执行单元EU的组成2: 算数逻辑部件 ALU
1)所有的逻辑/算术运算 2)计算16位的偏移地址送到BIU,以形成 20 位的物理地址,以便对 1 兆空间的存储 器寻址。 3)影响标志位Flag
EU控制逻辑单元 控制逻辑单元
8086CPU的中心控制单元 是 的中心控制单元,是 的中心控制单元 定时与状态逻辑电路。 控制 定时与状态逻辑电路。接 受指令队列缓冲器送来的指令 代码, 代码 用于控制执单元中各部件 按制定的要求协调工作。 按制定的要求协调工作。
(1)进位标志CF 当指令执行的结果在最高位出现进位或借 位时,CF=1;否则CF=0。8088中,字节操作 的最高位为D7;字操作的最高位为D15。在执 行加、减、比较、移位等指令时,将根据结果 改变CF标志位的状态。 (2)奇偶标志PF 当指令执行的结果中1的个数为偶数时,PF =1;否则PF=0。在执行逻辑运算的指令时, 将根据结果改变PF标志位的状态。