2章 8086cpu(最新)
合集下载
第二章 8086 CPU[2-3]
除了74LS373,还有74LS273、74LS374等
应用例子:发光二极管接口
+5V
D0~D7 A0~A15
IOW
20:49
D|0 Q0
1
R
D7
...
...
...
...
译
码
CP
器
R
Q7
1
74LS273
12
§2-4 8086的工作模式和总线操作
3、时钟发生器8284A
产生CLK信号,作为8086CPU的内部和外部的时间基准信号 提供系统时钟(CLK)、READY同步和RESET同步信号
第二章 8086 CPU
内容提要
引言 8086 CPU的内部结构 8086/8088 CPU的引脚功能 8086的存储器组织 8086的工作模式和总线操作
20:49
2
§2-4 8086的工作模式和总线操作
1、电源要求
8086/8088微处理器都是用+5.0V电源电压,其允许偏差为±10%。
OE
地址总线
存储器
I/O芯片
20:49
T 74LS245 /8286/82 87
OE
数据总线
15
§2-4 8086的工作模式和总线操作
2.4.3 总线操作时序
相关概念介绍
➢时钟周期
➢总线周期
➢指令周期
➢时序 ➢时序图
时序就是指系统中各总线信号(即地址、 数据和控制信号)产生的先后次序。
20:49
16
在8086/8088CPU中,一个总线周期至少包括4个时钟周期。
1~2个
若干个
T1 T2 T3 T4 Ti Ti T1 T2 T3 Tw Tw Tw T4 Ti Ti
应用例子:发光二极管接口
+5V
D0~D7 A0~A15
IOW
20:49
D|0 Q0
1
R
D7
...
...
...
...
译
码
CP
器
R
Q7
1
74LS273
12
§2-4 8086的工作模式和总线操作
3、时钟发生器8284A
产生CLK信号,作为8086CPU的内部和外部的时间基准信号 提供系统时钟(CLK)、READY同步和RESET同步信号
第二章 8086 CPU
内容提要
引言 8086 CPU的内部结构 8086/8088 CPU的引脚功能 8086的存储器组织 8086的工作模式和总线操作
20:49
2
§2-4 8086的工作模式和总线操作
1、电源要求
8086/8088微处理器都是用+5.0V电源电压,其允许偏差为±10%。
OE
地址总线
存储器
I/O芯片
20:49
T 74LS245 /8286/82 87
OE
数据总线
15
§2-4 8086的工作模式和总线操作
2.4.3 总线操作时序
相关概念介绍
➢时钟周期
➢总线周期
➢指令周期
➢时序 ➢时序图
时序就是指系统中各总线信号(即地址、 数据和控制信号)产生的先后次序。
20:49
16
在8086/8088CPU中,一个总线周期至少包括4个时钟周期。
1~2个
若干个
T1 T2 T3 T4 Ti Ti T1 T2 T3 Tw Tw Tw T4 Ti Ti
第二章-8086微处理器
答案:A
思考题
8086/8088的状态标志有 A)3 B)4 C)5 答案:D 个。 D)6
思考题
8086/8088的控制标志有 A)3 B)4 C)5 答案:A 个。 D)6
三、引脚信号和功能(图2-5 )
8086总线周期的概念: 为了取得指令或传送数据,就需要CPU的总线接 口单元(BIU)执行一个总线周期。 一个最基本的总线周期由4个时钟周期组成。 习惯上将4个时钟周期分别称为4个状态,即T1状 态、T2状态、T3状态和T4状态。 图2-17
2.方向标志DF(Direction Flag) 用于串操作指令中的地址增量修改(DF =0)还是减量修改(DF=1)。 STD使DF=1 CLD使DF=0
(三)标志寄存器-控制标志(续)
3.跟踪标志TF(Trap Flag) 若TF=1,则CPU按跟踪方式(单步方式) 执行程序,否则将正常执行程序。
思考题
指令队列的作用是 A)暂存操作数地址 。 B)暂存操作数
C)暂存指令地址
D)暂存预取指令 答案:D
思考题
8086的指令队列的长度是 A)4个 B)5个 C)6个 D)8个 字节。
答案: C
思考题
8088的指令队列的长度是 A)4个 B)5个 C)6个 D)8个 字节。
答案:A
思考题
第二章 8086/8088微处理器
8086/8088微处理器的结构 8086/8088典型时序分析
简 介
8086:16位微处理器 数据总线宽度16位:可以处理8位或16位数据 地址总线宽度20位:可直接寻址1MB存储单元和 64KB的I/O端口 8088:准16位处理器 内部寄存器及内部操作均为16位,外部数据总线8位 8088与8086指令系统完全相同,芯片内部逻辑结构、芯片引 脚有个别差异。 设计8088的目的主要是为了与Intel原有的8位外围接口芯片 直接兼容
第2章 8086 微处理器
存储器交叉编址结构示意图
返回本节
2.2.2 物理地址的形成
1. 存储器的段结构 2. 物理地址的形成
1. 存储器的段结构
将1MB 的存储器空间分成若干个逻辑段,每个 段的容量 ≤ 64KB ,段内地址是连续的,因此 1MB 的存储空间可分成 16 个逻辑段( 0 ~ 15 )。 这样,一旦所需访问的段被确定以后,就采用 16位寻址方法在段内寻找要访问的存储单元。 段与段之间允许在整个空间浮动,即段与段之 间可以部分重叠、完全重叠、连续排列、断续 排列,编程人员使用起来非常灵活。
段基址在存储器中对应的分段情况
2. 物理地址的形成
为了得到20位的物理地址,先利用 存储器的分段技术得到逻辑地址,再 由逻辑地址变换为物理地址(又称绝 对地址)。逻辑地址一般表示为段基 址:偏移地址(如3000H:0200H)。 转换公式计算: 物理地址=段基址×16+偏移地址
8086物理地址的形成
1.总线接口部件BIU 总线接口部件的主要功能负责CPU与存储器、 I/O接口之间的信息传送。主要由4个段地址寄 存器 、指令指针寄存器IP 、20位地址加法器 、 6个字节的指令队列组成。 2.执行部件EU 执行部件的主要功能负责指令的执行。主要 由4个通用寄存器 、 4个专用寄存器 、 算术 逻辑单元ALU 、标志寄存器FR 组成。
非规则存放和规则存放
非规则存放: 对存放的字,其低位字节从奇数地址开始存放,其存放 的字称为字不对准存放。 规则存放: 对存放的字,其低位字节从偶数地址开始存放,其存放 的字称为字对准存放。
返回本节
THANK YOU VERY MUCH !
本章到此结束,谢谢!
结 束
第2章_8086微处理器
1) 每当队列中有两个字节的空间时,BIU就自动 地顺序预取后续指令代码,并填入指令队列中。 2) 如果指令队列已满,且EU又无请求时,BIU不 执行任何总线周期,进入空闲状态。 3) 当EU在执行中须向BIU申请从内存或I/O口读 写操作数时,若此时BIU空闲,则会立即完成EU 请求;否则BIU先完成取指令操作,然后再进行 操作数的读写总线周期(执行EU)。 4) 如果EU执行转移指令,则BIU清除队列机构, 从新地址取得指令,并立即送给EU去执行。然后 从后续指令序列中取指令填满队列。
GND A14 A13 A12 A11 A10 A9 A8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GND
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21
20位地址加法器
AH AL BH BL CH CL DH DL SP BP SI DI
运算寄存器
∑
16位
CS DS SS ES IP
内部总线 内部暂存器
输入 / 输出 控制 电路
外部 总线
ALU
标志寄存器
执行 部件 控制 电路
指令队列
EU
BIU
8086用20位地址寻址, 但内部的寄存器均为16 位,所以要由段寄存器 和其他寄存器相加形成 20位地址进行寻址。 8086在执行指令的同 时,从内存中取出下一 条或下几条指令放在指 令队列中,这样,取指和 执值分开操作,可以节 省时间,连续执行指令
IP:控制CPU指令的执行 顺序,存放指令代码在 内存中的相对地址,顺 序执行时,CPU每取一个 指令字节,IP自动加1。
第二章 8086微处理器
执行都将相应地设置它。 CF ZF SF PF OF AF 控制标志——可由程序根据需要用指令设置,用于控制处理 器执行指令的方式。 DF IF TF
2.2 8086CPU的寄存器
四. 控制寄存器 (2)标志寄存器(FLAGs)
D15
D0
OF DF IF TF SF ZF
方 向 标 志 单 步 中 断 符 号 标 志
统工作而接收和输出必要的信号,如输入时钟脉冲、复位信号、
电源和接地等 (2)分类 数据总线(Data Bus);地址总线(Address Bus);控制
总线(Control Bus)
2.1 8086CPU的结构
二. 外部结构
2. 地址总线与寻址空间 存储器通常由几个模块组成,每个模块有几千个单元,每 个存储单元有唯一的存储器地址与其对应。 I/O接口——保证数据、控制与状态信息在CPU和I/O设备 之间正常传送的电路。I/O和CPU之间的通信利用称为I/O端口
的寄存器来完成。
对应一个I/O设备的I/O接口,可能包括几个I/O端口,每个 I/O端口都有一个唯一的I/O地址与其对应。
2.1 8086CPU的结构
二. 外部结构
2. 地址总线与寻址空间 存储单元和I/O端口以字节为单位存放数据,每个字节对 应一个标识地址。 地址总线的条数即为二进制地址码的位数,它可能表示 的不同地址的集合称为地址空间。 地址码的位数决定了地址空间的大小:2n 8086微处理器的存储器寻址空间为220,I/O寻址空间为216。 存储器: 高位选择模块,低位选择模块内的存储单元。 I/O设备:高位选择I/O接口,低位选择I/O端口。
2.2 8086CPU的寄存器
任务2:区分OF和CF
2. 溢出的判断 判断运算结果是否溢出有一个简单的规则: 只有当两个相同符号数相加(异号数相减可转化为同号
第2章8086CPU的原理
(2)DS:数据段段寄存器,在数据段寻址时,与BX、SI、DI 合用。 (3)SS:堆栈段段寄存器,在栈操作时,与SP合用对栈顶数据进 行存取。在对栈中数据存取时与BP合用。 (4)ES:附加数据段段寄存器,在串操作时,存放目标串,与DI 合用。也可以用来存放数据。 2 标志寄存器FLAGS FLAGS是16位寄存器,包含9个标志,标示CPU的状态和某些操 作特性。
其中:AH、AL寄存分别表示AX寄存器的高8位和低8位,如下图: 1Fh AH 50h AL AX
AH=1Fh AL=50h AX=1F50h
但AH和AL都可以作为8位的寄存器独立使用, 如 MOV BL,AH 指令执行后, BL=1Fh
其余的8位寄存器如上所述。 8086的4个数据寄存器,通常都是用来存储供CPU处理的数据或 保存结果的,但在特定的场合里,它们又有自己的特殊用途。 (1)AX、AL---累加器:在乘法、除法和符号扩展指令中,有一 个操作数预先放在累加器中;在I/O操作时,通过它CPU与接口交 换数据。累加器也是所有寄存器中执行速度最快的。
IF 中断允许标志: IF 的值决定CPU是否响应外部的可屏蔽中断。 当 IF=1 时,CPU可以响应外部的可屏蔽中断,否则相反。IF 的值 由专门的指令控制,即:STI 指令置 IF=1 CLI 指令置 IF=0 当 IF=0 时,CPU不能屏蔽非屏蔽中断和CPU内部中断。 TF 跟踪标志: TF=1 时,CPU进入单步程序执行方式,TF的控 制没有专用的指令,要通过其它方式设置。
图(3.5)8086/8088的引脚信号
最小方式 用于单个微处理器组成的系统,由8086产生系 统所需的全部控制信号。 最大方式 用于多处理器系统中,8086不直接提供控制信 号 。
第2章 8086CPU结构分解
主要功能:
① ②
预取指令序列,存放在指令队列中;数据传送。
将访问主存的逻辑地址转换成存储单元的物理地址。
7
cai
一、8086CPU的内部结构 • BIU与EU并行工作(流水线工作方式)
指令执行由取指令、分析指令(指令译码)、执行 指令 (读取操作数 执行指令 存放结果)组成
MPU 等待取指1 执行1 等待取指2 执行2 等待取指3 执行3
11
cai
二、8086CPU的寄存器结构 2. 控制寄存器 • 指令指针寄存器( IP) :是一个16位的寄存器,
存放EU要执行的下一条指令的偏移地址,用以控制
程序中指令的执行顺序,实现对代码段指令的跟踪 。 • 标志寄存器(FLAG) :是一个16位的寄存器,共9 个标志,其中6个状态标志,3个控制标志。 (1)状态标志:状态标志用来反映EU执行算术和逻辑 运算以后的结果特征。 (2)控制标志 :控制标志是用来控制CPU的工作方式 cai
6
一、8086CPU的内部结构 2. 总线接口单元(BIU):负责 CPU 与存储器﹑ I/O 端口之间的数据传送。 组成:20位地址加法器和段寄存器(代码段寄 存器CS、数据段寄存器DS、堆栈段寄存器SS器IP、6字节(8088为
4字节)指令队列缓冲器和总线控制逻辑电路。
通用寄存器
地址指针和 变址寄存器
控制寄存器 段寄存器
cai
8086CPU内部寄存器结构
9
二、8086CPU的寄存器结构
1. 通用寄存器 (1) 数据寄存器
数据寄存器包括4个16位的寄存器AX、BX、CX和DX,一 般用来存放16位数据,故称为数据寄存器。其中的每一个又 可根据需要将高8位和低8位分成独立的两个8位寄存器来使 用,即AH、BH、CH、DH和AL、BL、CL、DL两组,用于存放8 位数据,它们均可独立寻址、独立使用。
第2章 8086CPU结构
指示代码段中指令的偏移地址
它与代码段寄存器CS联用,确定下一条指令的物理地址 物理地址=(CS)×16D + (IP)
计算机通过 CS:IP 寄存器来控制指令序列的执行流程
不能对IP指针直接进行访问
00000H 代码段段基址 偏移量IP
CS + IP CPU 掌握
0000
… … …
00010010 01010010 … … 正在执行的指令 下一条指令
①
②
取指时当指令队列缓冲器中存满1条指令后,EU执行。
指令队列缓冲器中只要空出2个 (8088空出1个)指令字节 时,BIU自动执行取指操作,直到填满。
③
EU执行指令时,需要对M或I/O设备存取数据时,BIU将 在执行完现行取指的存储器周期后的下一个存储器周期, 对内存单元或I/O设备进行存取操作,交换的数据经BIU 由EU进行处理。 当EU执行完转移、调用和返回指令时,要清除指令队列 缓冲器,并要求BIU从新的地址重新执行。
10110101 + 10001111 进位 1 1 1 1 1 1 1 01000100 被加数8位 加数8位 和 8位 被加数 运 运 算 算 器 器
PSW 标志 进位 标志寄存器27
标志寄存器
进位标志CF(Carry Flag)
15 11 10 9 IF 8 7 6 4 AF 2 PF 0 CF OF DF TF SF ZF
24
FFFFFH
…
3 .专用寄存器—标志寄存器F
标志(Flag)用于反映指令执行结果的情况或控制指令的执行 方式 又称程序状态字寄存器(program status word,PSW)。
25
标志寄存器
它与代码段寄存器CS联用,确定下一条指令的物理地址 物理地址=(CS)×16D + (IP)
计算机通过 CS:IP 寄存器来控制指令序列的执行流程
不能对IP指针直接进行访问
00000H 代码段段基址 偏移量IP
CS + IP CPU 掌握
0000
… … …
00010010 01010010 … … 正在执行的指令 下一条指令
①
②
取指时当指令队列缓冲器中存满1条指令后,EU执行。
指令队列缓冲器中只要空出2个 (8088空出1个)指令字节 时,BIU自动执行取指操作,直到填满。
③
EU执行指令时,需要对M或I/O设备存取数据时,BIU将 在执行完现行取指的存储器周期后的下一个存储器周期, 对内存单元或I/O设备进行存取操作,交换的数据经BIU 由EU进行处理。 当EU执行完转移、调用和返回指令时,要清除指令队列 缓冲器,并要求BIU从新的地址重新执行。
10110101 + 10001111 进位 1 1 1 1 1 1 1 01000100 被加数8位 加数8位 和 8位 被加数 运 运 算 算 器 器
PSW 标志 进位 标志寄存器27
标志寄存器
进位标志CF(Carry Flag)
15 11 10 9 IF 8 7 6 4 AF 2 PF 0 CF OF DF TF SF ZF
24
FFFFFH
…
3 .专用寄存器—标志寄存器F
标志(Flag)用于反映指令执行结果的情况或控制指令的执行 方式 又称程序状态字寄存器(program status word,PSW)。
25
标志寄存器
第2章 8086CPU结构
21000H
。 。 。
21006H FFFF0H FFFFFH
FFFFFH
…
cai
一、存储器地址空间和数据存储格式
(2) 连接
A0 0 0 1 1 0 1 0 1
数据传送状态
16位数据总线上进行字传送 高8位数据线上进行字节传送 低8位数据线上进行字节传送 无操作
cai BHE(Bus High Enable):总线高字节允许
22
一、存储器地址空间和数据存储格式
奇地址存储体 偶地址存储体 A0=1 A0=0
512KB 00001H 00003H … … … 34561H 12H 34563H 78H … … 512KB 00000H 00002H … 34H 34560H 56H 34562H … …
FFFFDH FFFFFH
FFFFCH FFFFEH
21
1-溢出
溢 出 标 志
中 断 允 许
半 进 借 位 标 志
奇 偶 标 志
进 借 位 标 志
1-有进、借位 0-无进、借位
1-低4位向高4位有进、借位
13 0-低4位向高4位无进、借位
cai
0-无溢出
二、8086CPU的寄存器结构
ZF(Zero Flag):零标志。若运算结果为0,则ZF = 1,否 则ZF = 0。 SF(Sign Flag):符号标志。若运算结果为负数,则SF = 1,否则SF = 0。
8086 CPU的特点是:采用并行流水线工作方式, 通过设置指令预取队列实现;对内存空间实行分段管 理,将内存分为4个段并设置地址段寄存器,以实现
对1MB空间的寻址; 8086可工作于两种模式下,即最
小模式和最大模式,支持多处理器系统。8086还具有
第2章 8086微处理器1
例3 已知逻辑地址,指出下列存储器地址的段内偏 移量、段基址、物理地址。 1)1123H:0015H 2)1124H:0005H
一个物理地址可以对应多个逻辑地址
例如:设当前有效的代码段、数据段、堆栈段、附加段的段基址分别 为1066H、251BH、900CH、F001H,则各段在内存中的分配情况如 图2-5所示。
VCC AD15 A16/S3 A17 /S4 A18 /S5 A19 /S6 (HIGH) (SSO) MN/MX RD RQ/GT0 (HOLD) RQ/GT1 (HLDA) LOCK (WR) S2 (IO/M) S1 (DT/R) S0 (DEN) QS0 (ALE) QS1 (INTA) TEST READY RESET
六个状态标志含义如下: 1.进位标志CF或C 运算结果的最高位产生进位或借位时,则 CF=1,否则CF=0(字节操作D7、字操作D15、 双字D31) 2.奇偶标志PF 运算结果中1的个数为偶数,则PF=1,否 则PF=0 3.辅助进位标志AF 运算时当 D3 向D4 有进位或有借位时 ,则 AF=1,否则AF=0
DS:数据段寄存器 ES:附加段寄存器
数据段和附加段用来存放操作数
SS:堆栈段寄存器
堆栈段用于存放返回地址,保存寄存器内容, 传递参数
3、控制寄存器
IP:指令指针寄存器,其内容为下一条 要执行的指令的偏移地址 FLAGS:标志寄存器
状态标志:存放运算结果的特征
控制标志:控制某些特殊操作
四、存储器寻址
物理地址
8086:20根地址线,可寻址220(1MB)
个存储单元,1M字节的存储器单元编 址为00000H~FFFFFH(16进制) CPU送到AB上的20位的地址称为物理 地址
第2章8086CPU
第2章
8086微处理器及其系统
2.1 8086微处理器简介 2.2 8086系统的存储器组织及I/O组织
2.3 8086系统的工作模式
2.4 8086的操作时序
1
8086 CPU是Intel系列的16位微处理器, 它有16位数据总线和20位地址总线。 可寻址的地址空间是:220=1MB
2
2.1
8086微处理器简介
----- 用于控制CPU是否允许响应可屏蔽中断请求。
IF=1,表示允许CPU响应可屏蔽中断请求。 IF=0, 表示禁止CPU响应可屏蔽中断请求。 IF可通过STI指令置 位(置1),也可通过CLI指令复位(清零)。
14
TF(Trap Flag) 单步标志位 ----- 用于单步操作。 TF=1,控制CPU进入单步工作方式。在这种工作方 式下,CPU每执行完一条指令就会自动产生一次内部中断, 这在程序调试过程中很有用。
●
15
例1:若AL = 3BH,AH = 7DH,指出AL和AH中的内容相 加后,CF,AF,PF,SF,OF和ZF的状态。
CF=0(无进位) AF = 1(有辅助进位) PF=1(运算结果有4个1) SF = 1(运算结果符号位为1) OF =1 (有溢出) ZF = 0 (运算结果不为0)
16
31
(4)指令队列缓冲器——6字节
BIU从存储器中读出指令送入6字节的指令队列。 一旦指令队列中空出2个字节,BIU将自动进行读指令 的操作以填满指令队列。遇到转移类指令,BIU将指令 队列中剩余的指令作废,重新从存储器新的地址单元 中取指令并送入指令队列。一般情况下应保证指令队 列中填满指令,使得EU可以不断地得到等待执行的指 令。
●
OF(Overflow Flag) 溢出标志位
8086微处理器及其系统
2.1 8086微处理器简介 2.2 8086系统的存储器组织及I/O组织
2.3 8086系统的工作模式
2.4 8086的操作时序
1
8086 CPU是Intel系列的16位微处理器, 它有16位数据总线和20位地址总线。 可寻址的地址空间是:220=1MB
2
2.1
8086微处理器简介
----- 用于控制CPU是否允许响应可屏蔽中断请求。
IF=1,表示允许CPU响应可屏蔽中断请求。 IF=0, 表示禁止CPU响应可屏蔽中断请求。 IF可通过STI指令置 位(置1),也可通过CLI指令复位(清零)。
14
TF(Trap Flag) 单步标志位 ----- 用于单步操作。 TF=1,控制CPU进入单步工作方式。在这种工作方 式下,CPU每执行完一条指令就会自动产生一次内部中断, 这在程序调试过程中很有用。
●
15
例1:若AL = 3BH,AH = 7DH,指出AL和AH中的内容相 加后,CF,AF,PF,SF,OF和ZF的状态。
CF=0(无进位) AF = 1(有辅助进位) PF=1(运算结果有4个1) SF = 1(运算结果符号位为1) OF =1 (有溢出) ZF = 0 (运算结果不为0)
16
31
(4)指令队列缓冲器——6字节
BIU从存储器中读出指令送入6字节的指令队列。 一旦指令队列中空出2个字节,BIU将自动进行读指令 的操作以填满指令队列。遇到转移类指令,BIU将指令 队列中剩余的指令作废,重新从存储器新的地址单元 中取指令并送入指令队列。一般情况下应保证指令队 列中填满指令,使得EU可以不断地得到等待执行的指 令。
●
OF(Overflow Flag) 溢出标志位
第2章__8086微处理器(new)汇总
15
下面简要介绍各寄存器功能:
1.AX、BX、CX、DX是16位数据寄存器,还可以把它们 用做为8位通用数据寄存器,分别称为AH,AL,BH,BL, CH,CL,DH,DL。是用来存放计算过程中所用到的操作数 、结果或其它信息的通用寄存器。
除通用作用外,AX,BX,CX,DX还有专门用途: AX:叫累加器,是算、逻运算的主要寄存器、所有I/O指令 都用它做为数据寄存器。 BX:变址寻址、间接寻址时,用来作基址寄存器。 CX:循环(LOOP)和串处理指令中用做隐含的计数器。 DX:双字长运算时,DX:AX一起存放双字长数。DX在I/O指 令中做间址寄存器用。
中的基地址,在寄存器间接寻址及变址寻址中,访问堆栈区中
的操作数。
SI源变址寄存器(16位) DI目的变址寄存器(16位)
一般与DS联用,用来确定在数据段 的操作数地址(寄存器间址、变址 寻址等方式下用)
在串处理指令中,SI和DI作为隐含的源变址和目的变址寄存器, 此时SI和DS联用,DI和ES联用,分别达到在数据段和附加数据段 区域中寻址的目的。
返回本节
7
这里我们关注EU执行部件,它包括:算术逻辑运算部件 ALU、控制逻辑、寄存器组等三部分。 ((1)算术逻辑运算部件ALU——用来进行算术和逻辑 运算。 ((2)控制逻辑——负责对全机的控制,包括从RAM中 取出指令,进行指令译码、从RAM中取操作数,发出执行 指令的命令、存结果,以及对总线及I/O传送的控制等。 ((3)寄存器组——每一个寄存器相当于存储器中的一 个存储单元,但它的存取速度比存储器快的多,用来存放 计算过程中所需要或所得到的各种信息。有的通用(AX, BX,CX,DX和SI、DI、SP、BP)、有的专用 (IP、F和 CS、DS、SS、ES),非常重要。
下面简要介绍各寄存器功能:
1.AX、BX、CX、DX是16位数据寄存器,还可以把它们 用做为8位通用数据寄存器,分别称为AH,AL,BH,BL, CH,CL,DH,DL。是用来存放计算过程中所用到的操作数 、结果或其它信息的通用寄存器。
除通用作用外,AX,BX,CX,DX还有专门用途: AX:叫累加器,是算、逻运算的主要寄存器、所有I/O指令 都用它做为数据寄存器。 BX:变址寻址、间接寻址时,用来作基址寄存器。 CX:循环(LOOP)和串处理指令中用做隐含的计数器。 DX:双字长运算时,DX:AX一起存放双字长数。DX在I/O指 令中做间址寄存器用。
中的基地址,在寄存器间接寻址及变址寻址中,访问堆栈区中
的操作数。
SI源变址寄存器(16位) DI目的变址寄存器(16位)
一般与DS联用,用来确定在数据段 的操作数地址(寄存器间址、变址 寻址等方式下用)
在串处理指令中,SI和DI作为隐含的源变址和目的变址寄存器, 此时SI和DS联用,DI和ES联用,分别达到在数据段和附加数据段 区域中寻址的目的。
返回本节
7
这里我们关注EU执行部件,它包括:算术逻辑运算部件 ALU、控制逻辑、寄存器组等三部分。 ((1)算术逻辑运算部件ALU——用来进行算术和逻辑 运算。 ((2)控制逻辑——负责对全机的控制,包括从RAM中 取出指令,进行指令译码、从RAM中取操作数,发出执行 指令的命令、存结果,以及对总线及I/O传送的控制等。 ((3)寄存器组——每一个寄存器相当于存储器中的一 个存储单元,但它的存取速度比存储器快的多,用来存放 计算过程中所需要或所得到的各种信息。有的通用(AX, BX,CX,DX和SI、DI、SP、BP)、有的专用 (IP、F和 CS、DS、SS、ES),非常重要。
2章 8086cpu(最新)
请联系p31图1.5
8086CPU的工作过程
12:44
8
EU
•4个通用寄存器(AX、BX、CX、DX) •4个专用寄存器(SP、BP、SI、DI) •算术逻辑单元——ALU •标志寄存器——FR •EU控制器
CPU
BIU
•段寄存器组(CS、DS、SS、ES) •指令指针寄存器——IP •地址加法器和总线接口控制逻辑 •6个字节指令队列
(1)指针寄存器 (SP\BP) 在8086 CPU内存中有一个按照“先种:压入 (PUSH)和弹出(POP),在进行堆栈操作的过程中,SP用 来指示堆栈栈顶的偏移地址,称为堆栈指针;而其他指令访 问堆栈内容时,用BP来存放位于堆栈段中的一个数据区的 “基址”的偏移量,称为基址指针。 如 PUSH/POP AX 和 MOV AX ,[BP]5
(3)总线控制电路
总线控制电路主要负责产生总线控制信号。例 如:产生对存储器的读/写控制信号和I/O端口 的读/写控制信号等。
(二)执行单元EU(Execution Unit)
EU负责指令的执行。 从BIU的指令队列中取出指令代码,经指令 译码器译码后执行指令所规定的全部功能。 执行指令所得结果或执行指令所需的数据, 都由EU向BIU发出命令,对存储器或I/O接口 进行读/写操作获得。
B、控制标志
IF中断标志位:可用于控制可屏蔽的硬件中断,该标志可用指令置位或复位。
IF=1可接受中断;IF=0 中断被屏蔽,不接受中断。
DF方向标志位:用于指定字符串处理指令的步进方向,可用指令置位或清零。 当DF=1 时,字符串处理指令以递减方式由高地址向低地址方向进行;
当DF=0 时,字符串处理指令以递增方式由低地址向高地址方向进行。
第2章8086微处理器
6 CPU内部结构框图
第2章 8086微处理器
从功能上来看,8086CPU可分为两部分, 即执行部件EU(Execution Unit)和总线接口部 件BIU(Bus Interface Unit)。在执行指令的过 程中,两个部件形成了两级流水线:执行部件 执行指令的同时,总线接口部件完成从主存中 预取后继续指令的工作,使指令的读取与执行 可以部分重叠,从而提高了总线的利用率。
28
第2章 8086微处理器
● 段寄存器
系统中共有4个16位段寄存器,即代码段寄存 器CS、数据段寄存器DS、堆栈段寄存器SS和附 加段寄存器ES。这些段寄存器的内容与有效的地 址偏移量一起,可确定内存的物理地址。通常CS 划定并控制程序区,DS和ES控制数据区,SS控 制堆栈区。
第2章 8086微处理器
25
第2章 8086微处理器
(2) 总线接口部件(BIU) ●功能:负责完成取指令送指令队列,配合执行部件的动 作,从内存单元或I/O端口取操作数,或者将操作结果送内 存单元或者I/O端口。
●组成:它由16位段寄存器(DS、CS、ES、SS)、16位 指令指针寄存器IP(指向下一条要取出的指令代码)、20位 地址加法器(用来产生20位地址)和6字节(8088为4字节 )指令队列缓冲器组成。详细介绍如下:
CF= 1 OF= 0 AF= 0 PF= 1 SF= 1 ZF= 0
22
第2章 8086微处理器
加法运算:
若两个加数的最高位为0,而和的最高位为1,则产生上溢出; 若两个加数的最高位为1,而和的最高位为0,则产生下溢出; 两个加数的最高位不相同时,不可能产生溢出。
减法运算:
若被减数的最高位为0,减数的最高位为1,而差的最高位 为1,则产生上溢出;
第2章 8086微处理器
从功能上来看,8086CPU可分为两部分, 即执行部件EU(Execution Unit)和总线接口部 件BIU(Bus Interface Unit)。在执行指令的过 程中,两个部件形成了两级流水线:执行部件 执行指令的同时,总线接口部件完成从主存中 预取后继续指令的工作,使指令的读取与执行 可以部分重叠,从而提高了总线的利用率。
28
第2章 8086微处理器
● 段寄存器
系统中共有4个16位段寄存器,即代码段寄存 器CS、数据段寄存器DS、堆栈段寄存器SS和附 加段寄存器ES。这些段寄存器的内容与有效的地 址偏移量一起,可确定内存的物理地址。通常CS 划定并控制程序区,DS和ES控制数据区,SS控 制堆栈区。
第2章 8086微处理器
25
第2章 8086微处理器
(2) 总线接口部件(BIU) ●功能:负责完成取指令送指令队列,配合执行部件的动 作,从内存单元或I/O端口取操作数,或者将操作结果送内 存单元或者I/O端口。
●组成:它由16位段寄存器(DS、CS、ES、SS)、16位 指令指针寄存器IP(指向下一条要取出的指令代码)、20位 地址加法器(用来产生20位地址)和6字节(8088为4字节 )指令队列缓冲器组成。详细介绍如下:
CF= 1 OF= 0 AF= 0 PF= 1 SF= 1 ZF= 0
22
第2章 8086微处理器
加法运算:
若两个加数的最高位为0,而和的最高位为1,则产生上溢出; 若两个加数的最高位为1,而和的最高位为0,则产生下溢出; 两个加数的最高位不相同时,不可能产生溢出。
减法运算:
若被减数的最高位为0,减数的最高位为1,而差的最高位 为1,则产生上溢出;
第二章 8086CPU
•每个段存放不同性质的数据,进行不同的操作。
•代码段:存放指令。
•堆栈段:程序的堆栈区(子程序调用、系统功能调用、中断处理等操 或作为临时数据存储区。 •数据段:存放程序所使用的数据。 •附加数据段:辅助的数据区(串操作指令使用)。 •4个段寄存器CS,DS,SS,ES存放段起始地址的高16位值 作使用)
20位
CS DS SS ES IP 内部暂存器
8位
输入/输出 控制电路 外 部 总 线
ALU
标志寄存器
执行部分 控制电路
1 2
8位
3 4
指令队列
执行部件 (EU)
总线接口部件 (BIU)
8088的指令执行过程
存储器
(1) 总线接口部件(BIU)
●功能:负责完成取指令送指令队列,配合执行部件的动作,从内存单元或 I/O端口取操作数,或者将操作结果送内存单元或者I/O端口。
表2-2 流行的微处理器的基本参数
型号 发布 年份 字长 位 晶体管 (万个) 主频 MHZ 数据总 线(位) 外部总 线(位) 地址总 线(位) 寻址空间 (B) 高速 缓冲
8086 8088 80286
1978 1979 1982
16 16 16
2.9 2.9 13.4
4.77 4.77 6~20
假设对地址为00012H字节单元访问,则要选择偶地址体,即A0=0,数据线D0-7 被选中,1个总线周期 假设对地址为00013H字节单元访问,则要选择奇地址体,即BHE=0,数据线D815被选中, 1个总线周期 假设对地址为00012H字单元访问,则要同时选择奇偶地址体,即A0=0, BHE=0, 数据线D0-7、 D8-15同时被选中, 1个总线周期 假设对地址为00013H字单元访问,则要两次选择连续的偶地址体,即,两次访 问字单元,忽略不需要的字节, 2个总线周期
•代码段:存放指令。
•堆栈段:程序的堆栈区(子程序调用、系统功能调用、中断处理等操 或作为临时数据存储区。 •数据段:存放程序所使用的数据。 •附加数据段:辅助的数据区(串操作指令使用)。 •4个段寄存器CS,DS,SS,ES存放段起始地址的高16位值 作使用)
20位
CS DS SS ES IP 内部暂存器
8位
输入/输出 控制电路 外 部 总 线
ALU
标志寄存器
执行部分 控制电路
1 2
8位
3 4
指令队列
执行部件 (EU)
总线接口部件 (BIU)
8088的指令执行过程
存储器
(1) 总线接口部件(BIU)
●功能:负责完成取指令送指令队列,配合执行部件的动作,从内存单元或 I/O端口取操作数,或者将操作结果送内存单元或者I/O端口。
表2-2 流行的微处理器的基本参数
型号 发布 年份 字长 位 晶体管 (万个) 主频 MHZ 数据总 线(位) 外部总 线(位) 地址总 线(位) 寻址空间 (B) 高速 缓冲
8086 8088 80286
1978 1979 1982
16 16 16
2.9 2.9 13.4
4.77 4.77 6~20
假设对地址为00012H字节单元访问,则要选择偶地址体,即A0=0,数据线D0-7 被选中,1个总线周期 假设对地址为00013H字节单元访问,则要选择奇地址体,即BHE=0,数据线D815被选中, 1个总线周期 假设对地址为00012H字单元访问,则要同时选择奇偶地址体,即A0=0, BHE=0, 数据线D0-7、 D8-15同时被选中, 1个总线周期 假设对地址为00013H字单元访问,则要两次选择连续的偶地址体,即,两次访 问字单元,忽略不需要的字节, 2个总线周期
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(2)变址寄存器 (SI\DI) SI,DI称为变址寄存器,用来存放当前数据所在存储单 元的偏移地址。 在串操作指令中, SI存放源操作数地址的偏移量,称为源变址寄存 器; DI存放目标操作数地址的偏移量,称为目标变址寄存器。
通用寄存器的默认用法
寄存器 特殊用法 AX,AL 乘法/除法指令,作累加器;I/O操作时,作数据寄存器 AH 在LAHF指令中用作目的寄存器((AH)←标志) AL 在BCD码及ASCII码运算指令中作为累加器; 在XLAT指令中作为累加器(AL)←((AL)+(BX)) BX CX CL 在间接寻址中作为基址寄存器 在循环程序中,作循环次数计数器 在移位和循环移位指令中,作为移位位数和循环移位次数的计数寄 存器(指令执行后,(CL)不变) I/O指令间接寻址时,作为地址寄存器;在乘法指令中作为辅助累加 器(当乘积或被除数为32位时,存放高16位数) 在间接寻址中与SS联用,作为基址寄存器 在堆栈操作中,作为堆栈指针指示栈顶的偏移地址 间接寻址时,作为地址寄存器或变址寄存器;在串操作指令中作为 源变址寄存器 在间接寻址时,作为地址寄存器或变址寄存器;在串操作指令中作 为目的变址寄存器
请联系p31图1.5
8086CPU的工作过程
12:44
8
EU
•4个通用寄存器(AX、BX、CX、DX) •4个专用寄存器(SP、BP、SI、DI) •算术逻辑单元——ALU •标志寄存器——FR •EU控制器
CPU
BIU
•段寄存器组(CS、DS、SS、ES) •指令指针寄存器——IP •地址加法器和总线接口控制逻辑 •6个字节指令队列
(3)总线控制电路
总线控制电路主要负责产生总线控制信号。例 如:产生对存储器பைடு நூலகம்读/写控制信号和I/O端口 的读/写控制信号等。
(二)执行单元EU(Execution Unit)
EU负责指令的执行。 从BIU的指令队列中取出指令代码,经指令 译码器译码后执行指令所规定的全部功能。 执行指令所得结果或执行指令所需的数据, 都由EU向BIU发出命令,对存储器或I/O接口 进行读/写操作获得。
(1)算术逻辑单元ALU ALU是一个16位的算术逻辑运算部件,用来对操 作数进行算术运算和逻辑运算,也可以按指令的 寻址方式计算出CPU要访问的内存单元的16位偏 移地址。 (2)通用寄存器组、数据暂存寄存器: 是16位的寄存器,它的主要功能是暂时保存数据, 并向ALU提供参与运算的操作数。 (3)EU控制电路: EU控制电路接收从BIU指令队列中取出的指令代 码,经过分析、译码后形成各种实时控制信号, 对各个部件进行实时操作。
累加器 基址寄存器 计数寄存器 数据寄存器 堆栈指针 基址指针 源变址指针 目的变址指针 指令指针 标志寄存器 代码段寄存器 数据段寄存器 堆栈段寄存器 附加段寄存器
数据寄存器 通用寄存器组 地址指针及 变址寄存器 控制寄存器组 段寄存器组
8086CPU的寄存器结构
一、通用寄存器组
1、数据寄存器(8或16位数据寄存) 4个16位寄存器: AX,BX,CX,DX。 8个8位寄存器:AH,AL,BH,BL,CH,CL,DH,DL。 可以作为算术、逻辑运算的源操作数,向ALU提供 参与运算的原始数据,也可以作为目标操作数,保存运 算的中间结果或最后结果。 在有些指令中,某些寄存器具有特定的用途, 例如:AX作为累加器;BX作为基址寄存器; CX作为计数寄存器;DX作为数据寄存器。
(1)指针寄存器 (SP\BP) 在8086 CPU内存中有一个按照“先进后出”原则进行数 据操作的区域,称为堆栈。CPU对堆栈的操作有两种:压入 (PUSH)和弹出(POP),在进行堆栈操作的过程中,SP用 来指示堆栈栈顶的偏移地址,称为堆栈指针;而其他指令访 问堆栈内容时,用BP来存放位于堆栈段中的一个数据区的 “基址”的偏移量,称为基址指针。 如 PUSH/POP AX 和 MOV AX ,[BP]5
课程体系结构
CPU的内部结构和工作原理.
8086系统结构
编写程序的基础
寻址方式和指令系统
介绍程序设计的方法
程序设计
存储器
存储芯片的结构和运用
接口芯片
接口芯片的结构和运用
第2章 80x86 CPU
1.
2.
3. 4. 5. 6.
8086/8088微处理器的编程结构 8086/8088的 引脚信号及工作模式 8086/8088的总线操作时序 8086/8088存储器的组织和管理 8086/8088多处理器系统 从80286到Pentium系列CPU的发展过程
EU 总线 忙
执行1 忙
后,EU就立即开始执行。 执行指令时不需要访问存储器或 忙 忙 忙 IO端口忙 当BIU取指令与EU执行指令同时需要 8086CPU的指令执行过程 使用总线时,前者优先级高于后者。
BIU和EU并行工作
2.1.2 8086的内部寄存器
D15 ~ D0 AX AH AL BX BH BL CX CH CL DX DH DL SP BP SI DI IP FLAG CS DS SS ES
2.1.1 8086/8088内部编程结构
掌握一个CPU的工作性能和使用方法, 首先 应该了解它的编程结构。
编程结构——就是从一个程序员和使用 者的角度看到的结构,它不同于CPU 内部的物理结构和实际布局。
MOV AX,1000H
MOV DX,AX MOV AX, [1000] ADD AX, [1000]
(三)、EU与BIU的协同并行工作
MPU 等待取指1 执行1 总线 忙 闲 等待取指2 执行2 忙 闲 等待取指3 执行3 忙 闲
早期低于16位的CPU的指令执行过程
BIU
取指1
取指2
8086指令列队有2个空字节, BIU会自动取指令来填充。 取指3 取指4 取指5 取指6
执行2 执行3 执行4 执行5 执行6 总线空闲是指指令队列满,且 每当指令队列中存满一条指令
DX
BP SP SI DI
3、段寄存器(segment registers)
CS(code segment)、DS(data segment)、 SS(stack segment)、ES(extra segment)。 这些寄存器指明了一个特定的现行段,用来存放各段的 段基址。当用户用指令设定了它们的初值后,实际上已经确定 了一个64KB的存储区段。 CS用来存放当前使用的代码段的段基址,用户编制的程 序必须存放在代码段中,CPU将会依次从代码段取出指令代码 并执行。 DS用来存放当前使用的数据段的段基址,程序运行所需 的原始数据以及运算的结果应存放在数据段中。 ES用来存放当前使用的附加段的段基址, 通常也存放数 据,但在数据串操作时,用来存放目标数据串(源数据串在数 据段)。 SS用来存放当前使用的堆栈段的段基址,所有堆栈操作的 数据均保存在这个段中。
2、指针寄存器和变址寄存器(16位数据寄存)
两个指针寄存器 SP(stack pointer)、BP(base pointer) 两个变址寄存器 SI(source index)、DI(destination index)。 通常用来存放存储器单元的16位EA(即相对于 段起始地址的距离,简称偏移地址 EA)。
ZF零标志位: 运算指令执行之后若结果为0则 ZF=1否则ZF=0 SF符号标志位: 运算结果的最高位为1,则SF=1. OF溢出标志: 若有符号数运算结果超出带符号数补码表示的范围,则 OF =1,否则为0。
判断方法见p21:次高位向最高位有进位 ,最高位向前无进位 或次高位向最高位有进位 ,最高位向前无进位
(2)指令队列缓冲器
是6个字节的“先进先出”的RAM存储器,用来按 顺序存放CPU要执行的指令代码,并送入执行部件 EU中去执行。
EU总是从指令队列的输出端取指令,每当指令队 列中存满一条指令后,EU就立即开始执行。当指 令队列中前两个指令字节被EU取走后,BIU就自动 执行总线操作,读出指令并填入 指令队列中。当 程序发生跳转时,BIU则立即清除原来指令队列中 的内容并重新开始读取指令代码。
· 16位处理器,采用高性能的N沟道、耗尽型 硅栅工艺(NMOS)制造,40脚DIP封装, 内含29000个晶体管 · 16根数据线,20根地址线,可直接寻址存储空 间1M(220),可访问64KB(216)的输入输出 端口。 · 有三种工作时钟, 8086为5MHz , 8086-2 为8MHz,8086-1为10MHz · Intel 8086 CPU还提供了一套完整的、功能强 大的指令系统。
+
0
1
0
0
1
0
1
0
1
0
(一)BIU
(1)地址加法器和段寄存器
由于8086微处理器具有20位地址线,可以方便地 寻址1MB的内存单元。但在CPU内部只有16位的 寄存器,这就无法保存和传送每个存储单元的20 位地址信息,为了正确地访问存储器,8086采用 了存储器分段结构,将1MB的内存空间划分为若 干个逻辑段,段寄存器用来存放各段的段基址。 地址加法器根据每个逻辑段中使用16位段基址和 16位偏移地址进行寻址,计算并形成CPU所要访 问的存储单元的20位地址信息。 20位物理地址=16位段基址(左移4位)+16位EA
4.指令指针(IP)
IP(instruction pointer)为16位指令指针,IP 的内容总是自动指向BIU将要取的下一条指令代码 的16位偏移地址。当取出1个字节指令代码后,IP 自动加1并指向下一字节指令代码的偏移地址。 IP的内容是由BIU来修改的,用户不能通过指 令预置或修改IP的内容,但有些指令的执行可以 修改它的内容,也可以将其内容压入堆栈或由堆 栈中弹出。
TF单步标志位:TF= 1 时,表示控制 CPU进入单步工作方式。此方式下, CPU执行完一条指令就自动产生一次内部中断,用于程序调试过程中。
通用寄存器的默认用法
寄存器 特殊用法 AX,AL 乘法/除法指令,作累加器;I/O操作时,作数据寄存器 AH 在LAHF指令中用作目的寄存器((AH)←标志) AL 在BCD码及ASCII码运算指令中作为累加器; 在XLAT指令中作为累加器(AL)←((AL)+(BX)) BX CX CL 在间接寻址中作为基址寄存器 在循环程序中,作循环次数计数器 在移位和循环移位指令中,作为移位位数和循环移位次数的计数寄 存器(指令执行后,(CL)不变) I/O指令间接寻址时,作为地址寄存器;在乘法指令中作为辅助累加 器(当乘积或被除数为32位时,存放高16位数) 在间接寻址中与SS联用,作为基址寄存器 在堆栈操作中,作为堆栈指针指示栈顶的偏移地址 间接寻址时,作为地址寄存器或变址寄存器;在串操作指令中作为 源变址寄存器 在间接寻址时,作为地址寄存器或变址寄存器;在串操作指令中作 为目的变址寄存器
请联系p31图1.5
8086CPU的工作过程
12:44
8
EU
•4个通用寄存器(AX、BX、CX、DX) •4个专用寄存器(SP、BP、SI、DI) •算术逻辑单元——ALU •标志寄存器——FR •EU控制器
CPU
BIU
•段寄存器组(CS、DS、SS、ES) •指令指针寄存器——IP •地址加法器和总线接口控制逻辑 •6个字节指令队列
(3)总线控制电路
总线控制电路主要负责产生总线控制信号。例 如:产生对存储器பைடு நூலகம்读/写控制信号和I/O端口 的读/写控制信号等。
(二)执行单元EU(Execution Unit)
EU负责指令的执行。 从BIU的指令队列中取出指令代码,经指令 译码器译码后执行指令所规定的全部功能。 执行指令所得结果或执行指令所需的数据, 都由EU向BIU发出命令,对存储器或I/O接口 进行读/写操作获得。
(1)算术逻辑单元ALU ALU是一个16位的算术逻辑运算部件,用来对操 作数进行算术运算和逻辑运算,也可以按指令的 寻址方式计算出CPU要访问的内存单元的16位偏 移地址。 (2)通用寄存器组、数据暂存寄存器: 是16位的寄存器,它的主要功能是暂时保存数据, 并向ALU提供参与运算的操作数。 (3)EU控制电路: EU控制电路接收从BIU指令队列中取出的指令代 码,经过分析、译码后形成各种实时控制信号, 对各个部件进行实时操作。
累加器 基址寄存器 计数寄存器 数据寄存器 堆栈指针 基址指针 源变址指针 目的变址指针 指令指针 标志寄存器 代码段寄存器 数据段寄存器 堆栈段寄存器 附加段寄存器
数据寄存器 通用寄存器组 地址指针及 变址寄存器 控制寄存器组 段寄存器组
8086CPU的寄存器结构
一、通用寄存器组
1、数据寄存器(8或16位数据寄存) 4个16位寄存器: AX,BX,CX,DX。 8个8位寄存器:AH,AL,BH,BL,CH,CL,DH,DL。 可以作为算术、逻辑运算的源操作数,向ALU提供 参与运算的原始数据,也可以作为目标操作数,保存运 算的中间结果或最后结果。 在有些指令中,某些寄存器具有特定的用途, 例如:AX作为累加器;BX作为基址寄存器; CX作为计数寄存器;DX作为数据寄存器。
(1)指针寄存器 (SP\BP) 在8086 CPU内存中有一个按照“先进后出”原则进行数 据操作的区域,称为堆栈。CPU对堆栈的操作有两种:压入 (PUSH)和弹出(POP),在进行堆栈操作的过程中,SP用 来指示堆栈栈顶的偏移地址,称为堆栈指针;而其他指令访 问堆栈内容时,用BP来存放位于堆栈段中的一个数据区的 “基址”的偏移量,称为基址指针。 如 PUSH/POP AX 和 MOV AX ,[BP]5
课程体系结构
CPU的内部结构和工作原理.
8086系统结构
编写程序的基础
寻址方式和指令系统
介绍程序设计的方法
程序设计
存储器
存储芯片的结构和运用
接口芯片
接口芯片的结构和运用
第2章 80x86 CPU
1.
2.
3. 4. 5. 6.
8086/8088微处理器的编程结构 8086/8088的 引脚信号及工作模式 8086/8088的总线操作时序 8086/8088存储器的组织和管理 8086/8088多处理器系统 从80286到Pentium系列CPU的发展过程
EU 总线 忙
执行1 忙
后,EU就立即开始执行。 执行指令时不需要访问存储器或 忙 忙 忙 IO端口忙 当BIU取指令与EU执行指令同时需要 8086CPU的指令执行过程 使用总线时,前者优先级高于后者。
BIU和EU并行工作
2.1.2 8086的内部寄存器
D15 ~ D0 AX AH AL BX BH BL CX CH CL DX DH DL SP BP SI DI IP FLAG CS DS SS ES
2.1.1 8086/8088内部编程结构
掌握一个CPU的工作性能和使用方法, 首先 应该了解它的编程结构。
编程结构——就是从一个程序员和使用 者的角度看到的结构,它不同于CPU 内部的物理结构和实际布局。
MOV AX,1000H
MOV DX,AX MOV AX, [1000] ADD AX, [1000]
(三)、EU与BIU的协同并行工作
MPU 等待取指1 执行1 总线 忙 闲 等待取指2 执行2 忙 闲 等待取指3 执行3 忙 闲
早期低于16位的CPU的指令执行过程
BIU
取指1
取指2
8086指令列队有2个空字节, BIU会自动取指令来填充。 取指3 取指4 取指5 取指6
执行2 执行3 执行4 执行5 执行6 总线空闲是指指令队列满,且 每当指令队列中存满一条指令
DX
BP SP SI DI
3、段寄存器(segment registers)
CS(code segment)、DS(data segment)、 SS(stack segment)、ES(extra segment)。 这些寄存器指明了一个特定的现行段,用来存放各段的 段基址。当用户用指令设定了它们的初值后,实际上已经确定 了一个64KB的存储区段。 CS用来存放当前使用的代码段的段基址,用户编制的程 序必须存放在代码段中,CPU将会依次从代码段取出指令代码 并执行。 DS用来存放当前使用的数据段的段基址,程序运行所需 的原始数据以及运算的结果应存放在数据段中。 ES用来存放当前使用的附加段的段基址, 通常也存放数 据,但在数据串操作时,用来存放目标数据串(源数据串在数 据段)。 SS用来存放当前使用的堆栈段的段基址,所有堆栈操作的 数据均保存在这个段中。
2、指针寄存器和变址寄存器(16位数据寄存)
两个指针寄存器 SP(stack pointer)、BP(base pointer) 两个变址寄存器 SI(source index)、DI(destination index)。 通常用来存放存储器单元的16位EA(即相对于 段起始地址的距离,简称偏移地址 EA)。
ZF零标志位: 运算指令执行之后若结果为0则 ZF=1否则ZF=0 SF符号标志位: 运算结果的最高位为1,则SF=1. OF溢出标志: 若有符号数运算结果超出带符号数补码表示的范围,则 OF =1,否则为0。
判断方法见p21:次高位向最高位有进位 ,最高位向前无进位 或次高位向最高位有进位 ,最高位向前无进位
(2)指令队列缓冲器
是6个字节的“先进先出”的RAM存储器,用来按 顺序存放CPU要执行的指令代码,并送入执行部件 EU中去执行。
EU总是从指令队列的输出端取指令,每当指令队 列中存满一条指令后,EU就立即开始执行。当指 令队列中前两个指令字节被EU取走后,BIU就自动 执行总线操作,读出指令并填入 指令队列中。当 程序发生跳转时,BIU则立即清除原来指令队列中 的内容并重新开始读取指令代码。
· 16位处理器,采用高性能的N沟道、耗尽型 硅栅工艺(NMOS)制造,40脚DIP封装, 内含29000个晶体管 · 16根数据线,20根地址线,可直接寻址存储空 间1M(220),可访问64KB(216)的输入输出 端口。 · 有三种工作时钟, 8086为5MHz , 8086-2 为8MHz,8086-1为10MHz · Intel 8086 CPU还提供了一套完整的、功能强 大的指令系统。
+
0
1
0
0
1
0
1
0
1
0
(一)BIU
(1)地址加法器和段寄存器
由于8086微处理器具有20位地址线,可以方便地 寻址1MB的内存单元。但在CPU内部只有16位的 寄存器,这就无法保存和传送每个存储单元的20 位地址信息,为了正确地访问存储器,8086采用 了存储器分段结构,将1MB的内存空间划分为若 干个逻辑段,段寄存器用来存放各段的段基址。 地址加法器根据每个逻辑段中使用16位段基址和 16位偏移地址进行寻址,计算并形成CPU所要访 问的存储单元的20位地址信息。 20位物理地址=16位段基址(左移4位)+16位EA
4.指令指针(IP)
IP(instruction pointer)为16位指令指针,IP 的内容总是自动指向BIU将要取的下一条指令代码 的16位偏移地址。当取出1个字节指令代码后,IP 自动加1并指向下一字节指令代码的偏移地址。 IP的内容是由BIU来修改的,用户不能通过指 令预置或修改IP的内容,但有些指令的执行可以 修改它的内容,也可以将其内容压入堆栈或由堆 栈中弹出。
TF单步标志位:TF= 1 时,表示控制 CPU进入单步工作方式。此方式下, CPU执行完一条指令就自动产生一次内部中断,用于程序调试过程中。