8086微处理器的内部结构解析
ch02-8086微处理器内部结构
20
0FFFF h
0FFFE h 0FFFD h
220=FFFFF h+1
00001 h 00000 h
FFFFF h FFFFE h FFFFD h FFFFC h
0FFFF h 00001 h 00000 h
段&内存
四、指令运行
HYPer
操作 : 将内存中2000h单元内容加2,结果在AL中. CS=1000h, DS=3000h.
02h
HLT
1111 0100
F4h
CPU运行
A0h 00h 20h MOV AL,[2000]
04h 02h
ADD AL,02
F4h
HLT
五、指令执行时间
HYPer
• 指令周期 ——执行一条指令所需的时间称为指令周期。 在8088/8086中,由于它的并行处理的特点,一条指令的执行时间为: 取操作数+执行指令+传送结果
状 溢出标志O(Overflow Flag)——在算术运算中,带符号数的运算结果超出了8位或16位
态
带符号数能表达的范围,则O=1,否则O=0。
标
8位(字节)运算 --1768 —— +32767 志
符号标志S(Sign Flag)—— 结果的最高位(D15或D7)为1,则S=1,否则 S=0。
代码段
数据段
DS
堆栈段
SS
附加段
分
段Rs
三 类
ES
二、 功能结构
HYPer
8088从功能上来说分成两大部分,总线接口单元 BIU(Bus Interface Unit)
和执行单元 EU(Execution Unit). • BIU:负责与存储器接口,即8088与存储器之间的信息传送,都是由BIU负责进 行的,
1 80868088微处理器的内部结构
微机原理第2章8086/8088系统结构8086/8088微处理器的内部结构微机原理8086是Intel系列的16bit微处理器,属第三代。
它有16bit数据总线和20bit地址线,可寻址1M空间。
8088有8bit数据总线和20bit地址线,可寻址1M空间。
其内部有16bit数据总线。
AH AL BH BL SI ALU 运算数暂存器标志寄存器EU控制电路16位CSDSSS ES IP 内部暂存器8位1 2 3 4 5 6执行部件(EU )总线控制电路 指令队列缓冲器总线接口部件(BIU )通用寄存器加法器80888086累加器基址寄存器计数寄存器数据寄存器堆栈指针基址指针目的变址源变址AX BX CX DX微机原理CPUEUBIU •16位通用寄存器组(AX、BX、CX 、DX、SP、BP、SI、DI)•算术逻辑单元—ALU•暂存器•EU控制器•标志寄存器—FLAG•段寄存器组(CS,DS,SS,ES),指令指针—IP •地址加法器•指令队列•总线接口控制逻辑微机原理EU 部件不直接与外部总线相连。
它从BIU的指令队列中取指令和数据。
EU 负责指令的执行。
BIU 根据EU 的请求,完成CPU 与存储器或I/O 之间的数据传送。
功能:符号名称高8位符号低8位符号AX累加器AH AL BX基址寄存器BH BL CX计数寄存器CH CL DX数据寄存器DH DL这里的寄存器可以8位或16位参与操作。
符号名称SP堆栈指针寄存器BP基址指针寄存器SI源变址寄存器DI目的变址寄存器这里的寄存器只能以16位参与操作。
符号名称CS代码段寄存器DS数据段寄存器ES附加段寄存器SS堆栈段寄存器IP指令指针寄存器D15D14D13D12D11D10D9D8 x x x x OF DF IF TF D7D6D5D4D3D2D1D0 SF ZF x AF x PF x CF符号名称定义CF进位标志运算中,最高位有进位或借位时CF=1,否则CF=0 PF奇偶标志运算结果低8位“1”个数为偶数时PF=1,否则PF=0 AF辅助进位D3有向D4进(借)位时AF=1,否则AF=0ZF零标志运算结果每位均为“0”时ZF=1, 否则ZF=0SF符号标志运算结果的最高位为1时SF=1,否则SF=0OF溢出标志运算中产生溢出时OF=1, 否则OF=0符号名称功能TF陷阱标志TF=1将使CPU进入单步执行指令IF中断标志IF=1允许CPU响应可屏蔽中断DF方向标志DF=1将从高地址向低地址处理字符串所以:CF=0PF=1AF=1ZF=0SF=1OF=0微机原理下次课见。
8086结构组成
8086结构组成8086是一款16位微处理器,它的结构组成非常复杂。
本文将从以下几个方面来详细介绍8086的结构组成。
一、总体结构8086由三个主要部分组成:执行单元(EU)、总线接口单元(BIU)和寄存器组。
1.执行单元:负责执行指令并进行算术和逻辑运算。
2.总线接口单元:负责与外部设备通信并控制数据传输。
3.寄存器组:包括通用寄存器、段寄存器和指令指针寄存器等。
二、执行单元1.指令队列指令队列是执行单元中的一个重要部分,它可以存储多条指令,以便快速地进行取指令操作。
当EU需要执行一条新的指令时,它会从队列中取出下一条指令并开始执行。
2.算术逻辑单元算术逻辑单元(ALU)是执行单元中的核心部分,它可以进行各种算术和逻辑运算,如加、减、乘、除、与、或等操作。
ALU还可以处理条件跳转和无条件跳转等控制操作。
3.状态标志寄存器状态标志寄存器(FLAGS)用于记录ALU运算的结果,以便EU进行下一步操作。
FLAGS寄存器包括零标志位、进位标志位、溢出标志位等。
三、总线接口单元1.地址加法器地址加法器(AFA)是BIU的核心部分,它可以将内部地址转换为外部地址,并控制数据传输。
2.指令缓存器指令缓存器(IC)用于存储从内存中读取的指令。
当EU需要执行一条新的指令时,BIU会从IC中取出相应的指令并传输给EU。
3.数据缓存器数据缓存器(DC)用于暂时存储从内存中读取或写入的数据。
当EU 需要访问内存时,BIU会将相应的数据传输到DC中,EU再从DC中读取或写入数据。
四、寄存器组1.通用寄存器8086有8个16位通用寄存器,分别命名为AX、BX、CX、DX、SI、DI、BP和SP。
这些寄存器可以用于保存临时数据和计算结果等。
2.段寄存器8086有4个16位段寄存器,分别命名为CS、DS、ES和SS。
这些寄存器用于保存程序和数据在内存中的位置信息。
3.指令指针寄存器指令指针寄存器(IP)用于保存下一条指令在内存中的地址。
8086微处理器微处理器的基本结构8086
对某些I/O操作DX可用来存放I/O的端口地址(口地址 256)。
例: 例:
MUL BX IN AL , DX
; (AX)(BX)(DX)(AX)
(2)地址指针与变址寄存器: 段起始地址
SP、BP、SI、DI 四个16位寄存器。
以字为单位在运算过程中存放操作数,
…
经常用以在段内寻址时提供偏移地址。
寄存器组 AH AL AX BH BL BX CH CL CX DH DL DX
SI DI BP SP
运 算 器
(3) 如果在执行指令的过程中,
需要访问内存或I/O端口, EU
EU会请求BIU去完成存取操作。
PSW标志 寄存器
DS
BIU
ES
地
SS
址
CS
加
法
IP
器
数据暂存器
指
总线
令
接口
队
控制
列
电路
指令译码器
1、通用寄存器 (1)数据寄存器
AX、BX、CX、DX 作为通用寄存器。
用来暂存计算过程中所用到的操作数,结果或其它信息。 访问形式:可以用16位的访问;
或者可以用字节(8位)形式访问, 它们的高8位记作 : AH 、 BH 、 CH 、 DH 。 它们的低8位记作 : AL 、BL 、CL 、DL 。
二、8086/8088的编程结构 编程结构:
指从程序员和使用者的角度看到的结构。 与芯片内部的物理结构和实际布局有区别。
某CPU芯片内部实物图
12
8086 编程结构:
1. 总线接口部件BIU (Bus Interface Unit)
→ 运输部门
2. 执行部件EU
第2章-8086微处理器及其体系结构
执行部件EU功能: 从BIU的指令队列中取 出码规指令向储写执1(用状数部A执6指器定令所B器操行寄态据件位LI行U令译的所需或作U部存标暂的的发)部代码全得的I。,/件器志存控算O出件8部数码后结E,寄寄制接术个命中一U功据,执果存存电口逻1经令包个能,行或6器器路进辑位都指,含1。指执,和。对行单6的由令执一一令行位执存读元通译行E个个所 指的行U/
2.2.2 8086微处理器内部结构组成
总线接口部件BIU 内部设有四个16位段地 址寄存器:代码段寄存 器CS、数据段寄存器 DS、堆栈段寄存器SS 和附加段寄存器ES,一 总根负或个I缓器P线 据 责 I/O,和1冲接执完6一设器总位口行成个备,线指部部C62之控P令字0件件间U位制指节BE与的地电UI针指U存数的址路功寄令储据请加。能存队器传求法:器列, 送。
物理地址:就是存储器的实际地址,它是指CPU和存储器进行数据 交换时所使用的地址(20位)。
逻辑地址:是在程序中使用的地址,它由段地址和偏移地址两部分 组成(16位)。逻辑地址的表示形式为“段地址∶偏移地址”。
段基地址:把段的起始单元的物理地址除以16的结果为段地址,段 的起始单元的物理地址为16的整数倍,即:XXXX0H
DF—方向标志位,若该位置1,则串操作指令的地址修 改为自动减量方向,反之,为自动增量方向。
3.段寄存器
8086CPU共有4个16位的段寄存器,用来存放每一 个逻辑段的段起始地址。
(1)代码段寄存器CS (3)堆栈段寄存器SS
(2)数据段寄存器DS (4)附加段寄存器ES
这些段寄存器的内容与有效的地址偏移量一起,可确 定内存的物理地址。
只晶体管;
使用单一的+5V电源,40条引脚双列直插式封装; 时钟频率为5MHz~10MHz,基本指令执行时间为.3ms~0.6ms 16根数据线和20根地址线,可寻址的地址空间达1MB 8086可以和浮点运算器、I/O处理器或其他处理器组成多处
8086的内部结构
8086的内部结构
1.寄存器:
8086包含了8个16位的通用寄存器,分为AX、BX、CX、DX、SI、DI、BP和SP。
其中AX寄存器又被分为两个8位的子寄存器AH和AL。
这些寄
存器用于存储数据、地址和控制信息,可以进行各种算术和逻辑操作。
此外,8086还有一些特殊的寄存器,如标志寄存器FLAGS用于存储标志位,IP指令指针寄存器用于存储下一条指令的地址。
2.执行单元:
8086的执行单元包括指令执行单元、算术逻辑单元(ALU)和控制单元。
指令执行单元负责从内存中读取指令,并根据指令的操作码执行相应
的操作。
ALU用于进行算术和逻辑操作,如加减、与或非等。
控制单元用
于控制指令的执行顺序和分支跳转。
3.数据总线和地址总线:
8086有一个16位的数据总线,用于传输数据。
它还有一个20位的
地址总线,用于寻址内存中的数据和指令。
通过这两条总线,8086能够
与外部存储器、输入输出设备等进行数据的读写和通信。
4.总线控制器:
5.输入输出控制器:
6.内存管理单元(MMU):
7.控制信号产生器:
总的来说,8086的内部结构是一个复杂的系统,包括寄存器、执行单元、数据总线和地址总线、总线控制器、输入输出控制器、内存管理单元和控制信号产生器等组件。
这些组件相互协作,使得8086能够进行数据的处理和存储,实现指令的执行和数据的输入输出。
微机原理第三章:8086微处理器结构
4.8086 和8088 二者的指令系统完全兼容
(1)有24 种寻址方式,具有乘、除法指令等。 (2)取指令和执行指令的操作并行运行,运行速度大大提高。
(3)具有最小模式和最大模式,应用领域宽广,适应性强。
(4)可方便地和数据处理器8087、I/O 处理器8089 或其它处理器 组成多处理机系统,提高数据处理能力和输人输出能力。
代码段寄存器 CS 标 志 寄 存 器
数据段寄存器 DS
堆栈段寄存器 SS
附加段寄存器 ES
由于8086/8088 CPU 可直接寻址的存储器空间是1M字节,直接寻址需要 20位地址码,而所有的内部寄存器都是16位的,用这些寄存器只能寻址 64K字节,为此需要采取分段技术来解决这个问题。
表3.1
通用寄存器的隐含使用
程序调试过程中。
3.1.2 8086/8088 的寄存器结构
四、指令指针寄存器 IP ★ 16 位的指令指针寄存器 IP 用来存放将要执行的下一条 指令在代码段中的偏移地址。 ★ 在程序运行过程中,BIU 可修改 IP 中的内容,使它始终 指向将要执行的下一条指令。 ★ 程序不能直接访问 IP,但可通过某些指令修改 IP 内容。 ★ 如遇到转移类指令,则将转移目标地址送人IP中,以实 现程序的转移。
★ 规则字的读/写操作可以一次完成。由于两个存储体上的地址
线 A19~A1 是连在一起的,只要使 A0=0,BHE=0,就可 以实现一次在两个存储体中对一个字的读/写操作。 ★ 读写的是从奇地址开始的字(高字节在偶体中,低字节在奇体 中),这种字的存放规则称为“非规则字”或“非对准字”。 ★ 非规则字的读/写,需要两次访问存储器才能完成。 第一次访问存储器读/写奇地址中的字节;
三、标志寄存器 FR
8086CPU的结构与功能
8086CPU 的结构与功能CPU 结构与功能不管什么型号的CPU ,其内部均有这四⼤部件1. ALU :算术逻辑单元2. ⼯作寄存器:分为数据寄存器和地址寄存器⼯作寄存器的⽬的是为了提⾼运算速度,希望参与运算的数据不从外部存储器去取数据,⽽是在CPU 内部取,所以要有能暂存少量数据的寄存器。
数据寄存器是专门存放数据的,地址寄存器是专门存放地址,进⾏间接寻址⽅式,但当地址寄存器不提供地址时,也可以⽤来暂存数据。
3. 控制器:中央指挥机关4. I/O 控制逻辑电路⼀般CPU 执⾏存储器(按字节组织)⾥⾯指令过程如下:1. CPU 通过控制器部件⾥⾯的程序计数器(PC )给外部存储器的地址引脚输出地址(通过地址总线AB ),同时CPU 给存储器发送读操作命令;2. 在读操作下,就把这个地址单元的指令代码通过数据总线(DB ),取回来放在指令寄存器⾥⾯(IR ),注意此时因为指令没有执⾏完,所以PC 还不能去往下⼀条指令,IR 没有地⽅放数据。
3. 指令译码器(ID )不断检测指令寄存器有没有数据,有的话就把指令取⾛放在ID ⾥⾯,取来的指令就被ID 译码分析,就知道这个指令希望CPU 做什么,怎么做;4. ID 通知控制逻辑部件,在相应的控制引脚发出相应的有效命令(读,写等);5. 此条指令执⾏完,IR 为空,PC ⾃动增加到下⼀条指令的地址,执⾏下⼀条指令流程。
如果指令为n 字节,PC ⾃动增n 。
因为在取指令时候,不能执⾏指令,在执⾏指令时候,不能取指令,因此这种架构CPU 是取指令->执⾏指令->取指令...这样循环下去。
CPU 执⾏效率不⾼。
堆栈由先进后出原则组织的存储器区域,称为堆栈。
单⽚机应⽤中,堆栈是个特殊存储区,堆栈属于RAM 空间的⼀部分,堆栈⽤于函数调⽤、中断切换时保存和恢复现场数据(临时数据)。
对于8006 CPU ⽽⾔,堆栈操作是按字操作。
堆栈单元的地址指针由堆栈指针寄存器SP 的内容提供。
8086-8088微处理器的内部结构
3 段寄存器与指令指针寄存器
微机原理
CS:代码段寄存器 DS:数据段寄存器 SS:堆栈段寄存器 ES:附加段寄存器 IP:指令指针寄存器
注意:DS、SS和ES寄存器的内容可由程序 设置,而CS寄存器的内容不能用程序设置
4.标志寄存器FLAG
微机原理
用于存放CPU工作过程中的状态,其中9位有
定义, 9位中6位表示状态,3位表示控制标志。 (1)状态标志位
OF:溢出标志位(Overflow Flag )。 当两个带符号数进行运算产生溢出时, OF=1;否则OF=0。
微机原理
例:十六进制数0CCCCH与十六进制数5115H相加, 请写出运算后六个标志状态位的值。 解: 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 (0CCCCH)
+ 0 1 0 1 0 0 0 1 0 0 0 1 0 1 0 1 (5115H) 10 0 0 1 1 1 0 1 1 1 1 0 0 0 0 1
1.2 8086/8088 内部寄存器
寄存器
AX BX CX DX
运算器
状态寄存器
控制器
处理器
指
控制逻辑
令 寄
存 器
寄存器
IP
CS
BP
DS
SI
SS
DI
ES
SP
主存
取指
微机原理
微 处 理 器 一 般 编 程 结 构
通用寄存器组
微机原理
AX:累加器。可分成两个八位寄存器AH、 AL使用。
BX:基址寄存器。可分成两个八位寄存 器BH、BL使用。
与•标外志部寄总存器线—相—连FLAG
CPU
•段寄存器组
(CS、DS、SS、ES)
微机原理2-1:8088CPU内部结构、寄存器组、存储器组织
逻辑地址
地址加法器
将16位的逻辑地址转换为20位的物 理地址,具体操作过程为:先将段寄存 器提供的16位段地址左移四位,低位补0,
恢复为20位地址,然后与由各种寻址方
式提供的16位偏移地址相加,即得到20 位的物理地址。
26
逻辑地址
• 物理地址: • 逻辑地址: 20 位 段基址 (段寄存器的内容)16位 偏移地址(字节距离)16位
控制 累加器 标志寄存器
暂存器
ALU
2
8088/8086的功能结构
16位微处理器也具有以上结构中的基本单元, 但更为复杂。 以8088为例讲解16位微处理器的功能结构。 8088是8086的简化版本。
3
地址加法器
AH AL BL CL DL SP B P DI SI 数据总线 暂存寄存 器
用于串操作指令中,控制地址的变化方向:
设置DF=0,串操作后存储器地址自动增量(增址) ; 设置DF=1,串操作后存储器地址自动减量(减址) 。 串:存储器中一序列字或字节单元
串操作——对序列字或字节单元中的内容进行某种操作 , 比如:将一个字符串从源区传送到目的区 。
MOVS——串传送指令 CMPS——串比较指令 SCAS— —串扫描指令 LODS——装入串指令 STOS——存储 串指令
外存主要指用来长久保存数据的外部存储介质, 常见的有硬盘、光盘、磁带、U盘等。外存的数据 只能通过主存间接地与CPU交换数据
3AH + 7CH=B6H AAH + 7CH=(1)26H 没有进位:CF=0 有进位:CF=1
例如(以8位运算为例,8088中为16位):
10
溢出标志OF(Overflow Flag)
项目1:知识点2典型处理器及体系结构
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
8086 CPU
40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21
VCC AD15 A16/ S3 A17/ S4 A18/ S5 A19/ S6 BHE/ S7 MN/MX RD HOLD (RQ/GT0) HLDA (RQ/GT1) WR (LOCK) M/IO (S2) DT/R (S1) DEN (S0) ALE (QS0) INTA (QS1) TEST READY RESET
(8) ALE地址锁存允许信号 (输出) 高电平有效,此信号在 T1 状态有效,为 地址码锁存的选通信号,送地址锁存器。 (9) READY准备就绪信号 (输入) 高电平有效,是从所寻址的存储器或 I/O 电路来的响应信号,用于解决CPU与慢速存储 器或 I/O 电路的同步问题。 CPU 在 T3 周期开始 采样 READY 线,若为低电平,则 T3 之后插入 TW等待周期直到READY为高电平,进入T4完 成数据传送。
2.2 8086的引脚信号及工作模式
一、8086的两种工作模式
最小模式:即由 8086 组成的单处理器系 统,所有的总线控制信号由 8086 直接产生, 系统中的总线控制逻辑电路被减到最少。
最大模式:即由 8086 组成的中等规模或
者大型的系统。包含两个或多个微处理器,
8086为主处理器,其它的为协处理器。
(2) 地址/状态信号线A19/S6~A16/S3(输出、三态)
在总线周期的第一个时钟周期(T1)用于输出 地址信号的最高4bit并锁存。
其它时钟周期中用来输出状态信号S6~S3, 其中: S6——低电平,表示8086当前与总线相连。 S5——表示标志寄存器中“中断允许位”的状态 (IF)。 S4, S3的组合指出了分段情况。如下表所示。
计算机原理_2 8086微处理器
READY RDY1 AEN1 RDY2 AEN 2
3 复位信号产生 输入RES经过斯密特触发器分频以后,在时钟同频下产生RESET信号 送给CPU的RESET引脚,进行复位。 通常有以下两种情况会产生硬件复位信号: a 电源开关打开 b 按下机箱上的Reset按钮 电路如下所示:
例:CS的内容是89ABH,IP 的内容是0201H,则生成的地
址是89AB0H+0201H=89CB1H
20位的地址加法器 段地址左移4位+偏移量 → 20位的实际物理地址 段地址*16+偏移量 → 20位的实际物理地址 6个字节的指令队列
执行部件(EU)
16位的算术逻辑单元ALU 4个16位的通用寄存器 AX,BX,CX,DX,它们又可以分成8个8位的寄存器使用 AH,AL,BH,BL,CH,CL,DH,DL AL AH 4个16位的专用寄存器 SP——堆栈指针寄存器 BP——基址指针寄存器 SI ——源变址寄存器 DI ——目的变址寄存器
(二)时钟发生电路8284A 1 产生时钟信号 OSC 内部时钟同频信号 CLK 内部时钟三分频信号,占空比1/3 PCLK 内部时钟六分频信号,占空比1/2 CSYNC 外部时钟的同频信号 X1、X2 外接晶体,供内部振荡器产生震荡频率 EFI 外接时钟入端 F/C 时钟输入选择 PC机中14.31818MHz的外接晶体 CLK=4.77MHz 2 准备就绪信号 ASYNC为低电平时,表示READY输出时插入一个时钟周期延时。
三、常用的数据管理方式
堆
栈
LIFO FIFOቤተ መጻሕፍቲ ባይዱ
1
2
堆栈:按照后进先出(LIFO)的原则组织的存储器空间(栈)。
8086微处理器的内部结构
各个逻辑段允许重叠
例如,如果代码段中的程序占有8KB(2000H)存储区, 数据段占有2KB(800H)存储区,堆栈段占有256个字 节的存储区。此时分段情况如图所示。
代码段的区域本可为 02000H ~ 11FFFH (64KB),由于程序 区只需要8KB,所以 程序区结束后的地址 就可作为数据段的起 始地址(04000H) 注意:这里所谓的重叠只是指每个区段的大小允许根据 实际情况分配,而不一定非要占有64KB的最大段空间。
程序设计过程中必须遵守的系统内部约定:
如果访问存储器要求读/写操作数,则通常由DS给 出段地址(必要时可修改为CS、ES或SS),而其偏移 地址要由CPU的指令执行部件根据指令中所给定的寻 址方式来进行计算,通常将这样计算得到的偏移地址称 为有效地址(EA)。
如果所采用的寻址方式是通过基址指针BP寻址,则 段地址要由SS提供(必要时可以修改为CS、DS或ES)。
数据总线
通用寄存器
8086 暂存寄存器
ALU数据总线 (16位)
CS DS SS ES IP 内部通信 寄存器
(16位)
总线 控制 逻辑
8086 总线
ALU
EU 控制 系统
Q总线 16位
指令队列
1 2 3 4 5 6
总线接口部件 (BIU)
标志
指令执行部 件(EU)
1. 指令执行部件EU 由算术逻辑单元(ALU)、标志寄存器、通用寄存 器组和EU控制器等部件组成。 主要功能是执行指令: ○一般顺序执行,EU不断地从指令队列中取指令连 续执行,而省去访问存储器取指令的时间。 ○需要访问存储器取操作数时,EU将访问地址送给 BIU后,将要等待操作数到来后才能继续操作; ○遇到转移类指令时,要将指令队列中的后续指令 作废,等待BIU重新从存储器取出目标地址中的指令代 码进入指令队列后,EU才能继续执行指令。
8086微处理器
2021年1月30日星期六
2021年1月30日星期六
1.3 8086系统存储器的组织
8086系统在实模式下允许的最大寻址空间是1 MB,8086工 作在实模式,其地址宽度为20位,采用存储器地址分段的方法 来解决16位字长机器提供20位地址的问题。
1.存储器地址分段 2.逻辑地址与物理地址的计算
2021年1月30日星期六
1.4 8086/8088微处理器的引脚功能
总线控制逻辑。
4 6字节的指令队列。
2021年1月30日星期六
2.执行部件EU
算术逻 辑单元ALU
标志 寄存器
通用寄 存器组
EU控制器
2021年1月30日星期六
பைடு நூலகம்
1.2 8086的寄存器
1.通用寄存器 通用寄存器除了可以存放通用数据以外,都还有自己的特定功能。 2.专用寄存器 8086及以前的机器专用寄存器包括IP、SP和FLAGS 3个16位寄存器。 3.段寄存器 8086有4个16位段寄存器。
8086微处理器
8086微处理器是Intel系列的16位微处理器,它采用HMOS 工艺制造,双列直插,有40个引脚。8086微处理器的电源为单 一5V,主时钟频率为5 MHz~10 MHz。它的外部数据总线为16 位,地址线为20根。因为可用20位地址,所以可寻址的地址空 间达1 MB。
2021年1月30日星期六
SS(stack segment)
8086CPU结构
零标志ZF (Zero Flag) ---反映运算结果是否为零, 若是,则该位置“1”,否则置“0”。 符号标志SF (Sign Flag) ---反映运算结果最高位的 状态,并与运算结果最高位状态相同。表明了本次运 算的结果是正还是负。 溢出标志OF (Overflow Flag) --- 反映带符号数进行 算术运算后是否有溢出,有则为“1”,无则为“0”。
3
指令和程序
机器指令 操作码 + 操作数
若干条指令构成程序
MOV B8H AX, 1234H 34H 12H
4
指令解释方式
CPU解释一条指令的步骤为如下两个阶段: 取指:从内存中取出指令,明确指令规定的功能; 执行:分析指令要求实现的功能,读取所需要的操作 数,执行指令规定的操作,并保存执行结果。
执行部件EU
功能:执行指令并暂时存储运算结果 结构: (1)16位算术逻辑单元ALU; (2)16位标志寄存器F; (3)数据暂存寄存器(与编程无关,不对用户开放) (4)通用寄存器组: AX、BX、CX、DX---数据寄存器 SP、BP---指针寄存器 SI、DI---变址寄存器 (5)EU控制电路:内部电路,不对用户开放
时 间
顺序解释
取指1
执行1
取指2
执行2
取指3
执行3
取指4
执行4
取指5
执行5
执行1
执行2
执行3
执行4
执行5
重叠解释
取指1 取指2 取指3 取指4 取指5
指令和程序的解释过程
5
8086微处理器的内部结构
地址总线 AH BH 通用 寄存 器 CH DH SP BP SI DI ALU数据总线 (16位) 暂存寄存器 总线控制 8086 逻辑 总线 ALU EU 控制系统 标志寄存器 执行部件(EU) 图2-2 8086 CPU内部结构 总线接口部件(BIU) 6 队列 总线 (8位) 指令队列缓冲器 1 2 3 4 5 6 段寄 存器 AL BL CL DL AX BX CX DX CS DS ES SS IP 内部通信 寄存器 指令指 针 地址 形成器 (20位) 数据 总线 (16位)
8086系统结构
单步执行指令——处理器在每条指令执行结 处理器在每条指令执行结 单步执行指令 处理器在 便产生一个编号为1 束时,便产生一个编号为1的内部中断 这种内部中断称为单步中断 这种内部中断称为单步中断 所以TF也称为单步标志 TF也称为 所以TF也称为单步标志 利用单步中断可对程序进行逐条指令的调试 这种逐条指令调试程序的方法就是单步调试 这种逐条指令调试程序的方法就是单步调试
数据寄存器特有的习惯用法
变址寄存器
变址寄存器常用于存储器寻址时提供 地址
SI是源变址寄存器 SI是源变址寄存器 DI是目的变址寄存器 是目的变址寄存器
串操作类指令中, 和 具有特别的 串操作类指令中 , SI和DI具有特别的 功能
指针寄存器(SP、BP)
指针寄存器用于寻址内存堆栈内的数据 SP:堆栈指针寄存器,其内容为栈顶的 :堆栈指针寄存器, 偏移地址; 偏移地址; BP:基址指针寄存器,常用于在访问内 :基址指针寄存器, 存时存放内存单元的偏移地址 偏移地址。 存时存放内存单元的偏移地址。
DF IF TF
标志寄存器
进位标志CF(Carry Flag) )
当运算结果的最高有效位有进位(加法)或 当运算结果的最高有效位有进位(加法) 借位(减法) 进位标志置1, 借位(减法)时,进位标志置 ,即CF = 1; ; 否则CF = 0。 否则 。
49H + 6DH=B6H, = ,
没有进位: 没有进位:CF = 0
图2-2 8086CPU寄存器组 寄存器组
1. 8086的通用寄存器
8086的16位通用寄存器是: 的 位通用寄存器是 位通用寄存器是: AX BX CX DX SI DI BP SP 其中前4个数据寄存器都还可以分成高 个数据寄存器都还可以分成高8位 其中前 4 个数据寄存器都还可以分成高 8 位 和低8位两个独立的寄存器 和低8位两个独立的寄存器 8086的8位通用寄存器是: 的 位通用寄存器是: 位通用寄存器是 AH BH CH DH AL BL CL DL 对其中某8位的操作 并不影响另外对应8 位的操作, 对其中某 位的操作 , 并不影响另外对应 位的数据
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
专门用来完成由逻辑地址变换成物理地址的功能。实际 上是进行一次地址加法,将两个16位的逻辑地址转换为 20位的物理地址,以达到可寻址1M字节的存储空间。
➢总线控制电路
将 8086CPU 的 内 部 总 线 与 外 部 总 线 相 连 , 是 8086CPU 与外部交换数据的必经之路。包括16条数据总线、20条 地址总线和若干条控制总线。
(1)数据寄存器
通用寄存器AX、BX、CX和DX称为数据寄存器, 可用来存放16位的数据或地址。也可把它们当作八个8 位寄存器(AH、AL、BH、BL、CH、CL、DH、DL) 来使用,这时只能存放8位数据,而不能用来存放地址。
寄存器名
特殊用途
在输入/输出指令中作数据寄存器用 AX,AL 在乘法指令中,存放被乘数或乘积
2.1 8086微处理器的内部结构
2.1.1 8086基本组成部件BIU(Bus Interface Unit) ➢指令执行部件EU(Execution Unit)
通用寄存器 8086
AH AL BH BL CH CL DH DL
SP BP SI DI
ALU数据总线 (16位)
暂存寄存器
地址总线(20位)
Σ
数据总线
CS
(16位)
DS
SS
ES
8086
IP
总线 总线
内部通信
控制
寄存器
逻辑
ALU 标志
EU 控制 系统
Q总线 16位
指令执行部 件(EU)
指令队列
123456
总线接口部件 (BIU)
1. 指令执行部件EU
由算术逻辑单元(ALU)、标志寄存器、通用寄存 器组和EU控制器等部件组成。
总之,汇编程序一般将源程序分成四个逻辑段,即 代码段CS、数据段DS、堆栈段SS和附加段ES。
•CS:存放代码段的段基地址。 •DS:存放数据段的段基地址。 •SS:存放堆栈段的段基地址。 •ES:存放附加段的段基地址。
条指令的功能。
➢通用及标志寄存器 单独详细说明
2. 总线接口部件BIU
由地址加法器、专用寄存器组、指令队列缓冲器和 总线控制电路等部件组成;
主要功能是形成访问存储器的物理地址,负责与外 部(存储器或I/O接口)打交道。
正常情况下,BIU通过地址加法器形成指令的物理地 址,从给定存储器地址中取出指令代码送指令队列缓冲 器中等待执行(指令队列缓冲器中出现一个空字节, BIU将自动进行读指令的操作填满队列)
设置段寄存器的原因:
由于8086CPU可直接寻址的存储器空间是1M字节, 需要20位地址码。而CPU所有的内部寄存器都只有16 位,用这些寄存器只能直接寻址64K字节。
为此把1M字节的存储空间分成许多逻辑段,每段最 长为64k字节,这些逻辑段可在整个存储空间中浮动。 于是用段寄存器给定各个逻辑段的首地址的高16位,被 称为段地址。
SI(Source Index)源变址寄存器和DI(Destination Index)目的变址寄存器:它们一般与DS联用,用来确 定数据段中某一存储单元的地址。
寄存器名
特殊用途
SI 在字符串处理指令中作源变址寄存器用
在间接寻址中作变址寄存器用
DI 在字符串处理指令中作目标变址寄存器用
在间接寻址中作变址寄存器用
在除法指令中,存放被除数或商数
AH 在LAHF指令中,作目标寄存器用
AL 在十进制运算指令中作累加器用
在XLAT指令中作基址寄存器用
BX 在间接寻址中作基址寄存器用
在XLAT指令中作基址寄存器用
CX 在串处理和LOOP指令中作计数器用
CL 在移位/循环移位指令中作移位次数计数器用
DX 字乘法/除法指令中存放乘积高位或被除数高位或余数
由于EU和BIU可相互独立工作,大部分的取指令和执 行指令操作可以重叠进行,故大大减少了等待取指令的 时间,提高了微处理器的利用率和整个系统的执行速度。
2.1.2 8086内部寄存器 8086CPU中有14个16位的寄存器,其结构如下图。
1. 通用寄存器组 通用寄存器(8个)可分为两组: •数据寄存器(4个); •地址指针和变址寄存器(4个)。
➢算术逻辑单元(ALU) • 完成16位或8位的二进制运算; • 16位暂存寄存器用来暂存参加运算的操作数。 • 运算结果通过内部总线送到通用寄存器组或BIU的内
部寄存器中等待写入存储器。 • 经ALU运算后的结果特征置入标志寄存器中保存。
➢EU控制器 • 负责从BIU的指令队列中取指令,并对指令译码; • 根据指令要求向EU内部各部件发出控制命令以完成各
BP 在间接寻址中作基址指针用
SP 在堆栈操作中作堆栈指针用
2. 段寄存器组
8086CPU的BIU中设置4个16位段寄存器: •代码段寄存器CS(Code Segment) •数据段寄存器DS(Data Segment) •附加数据段寄存器ES(Extra Segment) •堆栈段寄存器SS(Stack Segment)
收到EU送来的操作数地址,BIU将立即形成操作数 的物理地址,完成读/写操作数或运算结果功能。遇到 转移类指令,BIU将指令队列缓冲器中的尚存指令作废, 重新从存储器目标地址中取指令送指令缓冲器中。
➢指令队列 可存放6字节的指令代码。一般情况下指令队列中总是 填满指令,使EU可不断地得到执行的指令。
在间接寻址的输入/输出指令中作地址寄存器用
(2)地址指针和变址寄存器
包括SP、BP、SI、DI四个16位寄存器。
• 可以在运算过程中存放操作数,但只能以字(16位) 为单位使用。
• 常用在段内寻址时提供偏移地址:
SP ( Stack Pointer ) 称 为 堆 栈 指 针 寄 存 器 , BP (Base Pointer)称为基址指针寄存器,它们都可以与 SS寄存器联用确定堆栈段中的某一存储单元的地址。 SP用来指示栈顶的偏移地址,BP可作为堆栈区中的一 个基地址以便访问堆栈。
主要功能是执行指令:
○一般顺序执行,EU不断地从指令队列中取指令连 续执行,而省去访问存储器取指令的时间。
○需要访问存储器取操作数时,EU将访问地址送给 BIU后,将要等待操作数到来后才能继续操作;
○遇到转移类指令时,要将指令队列中的后续指令 作废,等待BIU重新从存储器取出目标地址中的指令代 码进入指令队列后,EU才能继续执行指令。