8086微处理器
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
SI , DI具有自动增量和自动减量功能.
¾控制寄存器:IP
IP—Instruction Pointer指令指针寄存器 用来存储代码段中的偏移地址; 程序运行过程中IP始终指向下一次要取出的指令偏移地址。 IP要与CS寄存器相配合才能形成真正的物理地址。
§3-2 8086的外部结构
一、最小模式和最大模式的概念 为了尽可能适应各种应用场合,8086 CPU芯片设
例2:AAH+7CH=(1)26H
无符号数运算: 170+124=294 范围外,有进位
有符号数运算: -86+124=28 范围内,无溢出
③ ZF(Zero Flag)零标志 ZF=1:运算结果为0。 ZF=0:运算结果不为0。
④ SF(Sign Flag)符号标志 SF=1:记录运算结果的符号为负。 SF=0:记录运算结果的符号为正。
计了两种工作模式,即最小模式和最大模式。 最小模式:8086系统中所有的总线控制信号都直接 由8086产生,因此,系统中的总统控制电路被减到 最少。 最大模式:相对最小模式而言。最大模式用在高档 8086系统中。在最大模式下,系统中除8086微处理 器外,还包含有一个或两个协处理器:数值运算协 处理器8087、I/O操作协处理器8089等。控制总线由 8288总线控制器提供。
3. 地址寄存器
– 段地址寄存器: CS,DS,ES,SS
– 偏移地址寄存器:IP,SI, DI, SP,BP
1、通用寄存器
AX——(Accumulator)作为累加器。 它是算术运算的主要寄存器, 所有I/O指令都使用这一寄存器与外部设备交换数据。
BX——Base用作基址寄存器使用。 在计算内存储器地址时,经常用来存放基址。
8086/8088取指部分与执行部分是分开的。
• 在一条指令的执行过程中可以取出下一条(或多条)指令,指令 在指令队列中排队;
• 在一条指令执行完成后,就可以立即执行下一条指令,减少CPU为 取指令而等待的时间,提高CPU的利用率和整个运行速度。
8086/8088微处理器:
BIU和EU分开,取指和执行可以重迭,
8086/8088的内部结构 地址
加法
∑
20位
AH AL
器
BH BL
通用 寄存器
CH CL DH DL
SP BP SI DI
16位
CS
DS
SS
输入/输出
ES
控制电路 总
IP
线
内部暂存器
ALU
执行部分 控制电路
标志寄存器
执行部件 (EU)
1 2 3 4 56 指令队列
总线接口部件 (BIU)
一、内部结构组成
3、段地址寄存器
信息三大类:程序代码、数据 (原始、中间、结果)、堆栈
段寄存器: 4个16位段寄存器CS、DS、SS、ES。
用来识别当前可寻址的四个段,不可互换的使用。
CS——Code Segment Register 代码段寄存器
用来识别当前代码段(程序一般放在代码段)。
DS——Data Segment Register数据段寄存器
CX——Count可以作计数寄存器使用。 在循环指令和串处理指令中用作隐含计数器。
DX——Data可以作为数据寄存器使用。 一般在双字长乘除 法运算时,把DX和AX组合在一起存放一个双字长(32位) 数,DX用来存放高16位; 对某些I/O操作DX可用来存放I/O 的端口地址
2、标志寄存器
PSW—(Processor States Word Program) 程序状态字寄存器, 16位寄存器。
大大减少了等待取指所需的时间,提高CPU的利用率。
取指
取指
取指
取指
得到数据
等待
执行
执行
执行
执行
重迭操作技术:一方面提高了整个执行速率,另一方面降低了与之 相配的存储器的存取速度的要求。
三、工作过程
微型计算机如何实现科学计算的?微处理器如何工作的?
100+256=?
C程序
汇编语言
二进制机器码
(与机型无关) (与机型有关) (可以执行的指令)
用来识别当前数据段寄存器。
SS——Stack Segment Register堆栈段寄存器,
用来识别当前堆栈段。
ES——Extra Segment Register附加段寄存器,
用来识别当前附加段。
4、 偏移地址寄存器
¾ 地址指针寄存器(SP 、 BP )
SP(stack pointer)——堆栈指针寄存器 用来指示栈顶的偏移地址, 必须与SS段寄存器联合使用确定实际 地址。 BP(base pointer)——基址指针寄存器 与SS寄存器联合使用来确定堆栈段中某一存储器单元地址。
1 执行单元EU——Execution Unit 2总线接口单元BIU——Bus Interface Unit
1 执行单元EU的组成和功能
1)组成
¾ 控制器 接收从总线接口单元的指令队列中取来的指令代码, 对其译码和向 EU 内各有关部分发出时序命令信号, 协调执行指令规定的操作。
¾ 运算器
¾ 寄存器(通用寄存器、标志寄存器)
¾
将执行部件的操作结果传送给指定的M或I/O口。
二、8086的结构特点
1. 指令流队列 指令流队列使得取指与执行指令可以并行
操作,从而提高运行速度。 2. 存储器分段结构
寄存器16位,而地址线是20位,如何能够用16位的数据表示20 位的地址呢?
存储器分段结构使得16位操作指令可以访问20 位的地址空间。
§3-1 8086/8088的编程结构
Intel 8086是标准的16位微处理器, 而8088是准16位微处理器。它们的内部数据 总线都是16位,但Intel 8088的外部数据总 线(引脚上)是8位。
8086/8088的内部结构分为执行单元 (EU)和总线接口单元(BIU)两大部分, EU负责指令的执行,BIU负责总线信息收发。
堆栈特点:内存开辟的一个特殊数据区,一端固定, 一端浮动,严格按照后进先出的工作原则。
¾ 变址寄存器(SI 、 DI)
SI——Source Index Register 源变址寄存器。 DI——Destination Index 目的变址寄存器。 使用场合:常用于变址寻址。 • 一般与DS联用,用来确定数据段中某一存储单元的地址,
8086具有一定的代表性,曾广泛应用于IBMPC/XT及其兼容机中,Intel后期推出的CPU从 80186、286、386直至Pentium4 都是向下兼容 的。8086虽已淘汰,但具有典型结构,功能齐
全,简单易学,与单片机有接近之处,又与今天 的PC机兼容,这些都是今天选择8086作为教学机
种的原因。
溢出和进位的区别
• 溢出标志OF和进位标志CF是两个意义不同的标志 • 进位标志表示无符号数运算结果是否超出范围,
运算结果仍然正确 • 溢出标志表示有符号数运算结果是否超出范围,
运算结果已经不正确
溢出和进位的对比
例1:3AH+7CH=B6H
无符号数运算: 58+124=182 范围内,无进位
有符号数运算: 58+124=182 范围外,有溢出
⑤ AF(Auxiliary Carry Flag)辅助进位标志 AF=1:记录运算时第3位(半个字节)产生进位值。 AF=0:记录运算时第3位(半个字节)不产生进位值。
辅助进位标志一般在BCD码运算中作为是否进行十进制调整的 判断依据。
⑥ PF(Parity Flag)奇偶标志 PF=1: 结果操作数低8位中有偶数个1。 PF=0: 结果操作数低8位中有奇数个1。
CF=1:记录运算时从最高有效位产生进位值。 CF=0:记录运算时从最高有效位不产生进值。 ② OF(Overflow Flag)溢出标志(一般指补码溢出)
OF=1:在运算过程中,如操作数超过了机器表示的范围称为溢出。
OF=0:在运算过程中,如操作数未超过了机器能表示的范围称为 不溢出。
3AH + 7CH=B6H,产生溢出:OF=1 AAH + 7CH=(1)26H,没有溢出:OF=0
① IF——可屏蔽中断允许标志
IF=1表示允许.CPU可以响应可屏蔽中断请求。
IF=0, 关闭中断。CPU禁止响应可屏蔽中断请求。
② DF——方向标志
DF=0 地址增量;DF=1地址减量
③ TF——陷阱标志(单步执行标志)
•控制信息:由系统程序或用户程序根据需要用指令来设置的。 • 状态信息:由中央处理器,根据计算结果自动设置的,机器提 供了设置状态信息指令。
第3章 8086/8088微处理器
3.1 8086/8088微处理器的编程结构 3.2 8086的外部结构 3.3 存储器和I/O管理 3.4 总线操作与时序
8086是Intel公司70年代后期推出的16位微处理 器,工作时钟频率为4.77MHz,数据总线宽度16 位,地址总线20位,可寻址的内存空间为1M字节。
用来为机器中传送信息时可能产生的代码出现情况提供检验 条件。
• 3AH+7CH=B6H=10110110B • 结果中有5个“1”,是奇数:PF=0
PF标志仅反映最低8位中“1”的个数是 偶或奇,即使是进行16位字操作
例1:执行两个数的加法,分析对标志位的影响。
0010001101000101 +0011001000011001
A=100; A=A+256;
MOV AX, 0064H ADD AX,0100H
B8, 0064H 05,0100H
存储器中存储的指令
存储器地址 存储器单元
10100H 10101H
B8H 64H
10102H 10103H 10104H 10105H
00H 05H 00H 01H
第一步 从程序到指令
0101010101011110
标志:
运算结果最高位为0
∴SF=0;
运算结果本身≠0
∴ZF=0
低8位中1的个数为奇数个 ∴PF=0;
最高位没有进位
∴CF=0
第三位向第四位无进位 ∴AF=0;
次高位向最高位没有进位 ,最高位向前没有进位 , OF=0。
控制标志: 对控制标志位进行设置后,对其后的操作起控制作用。
8086到底工作在何种模式,完全由硬件决定!
二、8086外部引脚(最小方式)
8086的引脚功能
最大组态(最小组态)
GND
AD14
8086CPU 是 双 列 直 插 式
AD13 AD12
芯片,共有40条引脚;
AD11
AD10
引脚33决定工作模式:
AD9
AD8
• 接地,最大模式
AD7
AD6
• 接+5V, 最小模式
由条件码标志FLAG、控制标志构成。
只用了其中9位, 6位条件码标志 , 3位控制标志。如下表示。
15
10 9 8 7 6 5
4
2
0
OF DF IF TF SF ZF AF PF CF
条件码标志:
用来记录程序中运行结果的状态信息作为后续条件 转移指令的转移控制条件。∴称为条件码。
条件码包括6位:CF 、 PF 、 AF 、 ZF 、 SF 、 OF 。 ① CF(Carry Flag)进位标志
2)功能
¾ 分析和执行指令 ¾ 计算和提供有效地址
2 总线接口单元BIU
1)组成
¾ 总线控制电路; ¾ (段、指针)地址寄存器和加法器;
¾ 指令流队列。
2)功能 负责与 M、I/O 端口传送数据。
¾
总线接口部件要从内存 取指令送到指令队列;
¾
CPU执行指令时,要配合执行部件从指定的MEM或
Байду номын сангаас
I/O端 口中取数据,将数据传送给执行部件;
什么是溢出
• 处理器内部以补码表示有符号数 • 8位表达的整数范围是:+127 ~ -128 • 16位表达的范围是:+32767 ~ -32768
•作•• B为如 有6H果溢有=运出符1算,号0结说1数1果明0是超有11负出符0数这号B,个数最范的围运高,算位就结为产果1生不,了正溢确出
• 对B6H求反加1等于: 3A0H1+070C1H0=01BB6+H,1=就是015080+1102140=B1=824,AH=74 补已经码• 所超 B6出以H-表,1达B2真86~H值+表是1达-27有7范4,符围显号,然产数运生的算溢真结出值果,为也故-不O正F7=4确1;
第二步 指令装载到存储器中
返回
第三步 CPU从存储器中取指令运行
工作过程
8088的指令执行过程
返回
四、8086的寄存器
1. 通用寄存器
汇编语言程序员看到的处理器,就是寄存器 所以,一定要熟悉这些寄存器的名称和作用
AX = AH:AL
BX = BH:BL
CX = CH:CL
DX = DH:DL
2. 标志寄存器PSW
AD5
AD4
在两种模式下引脚24~31 AD3
AD2
• 有不同的名称和意义
AD1
AD0
NMI
INTR
CLK
¾控制寄存器:IP
IP—Instruction Pointer指令指针寄存器 用来存储代码段中的偏移地址; 程序运行过程中IP始终指向下一次要取出的指令偏移地址。 IP要与CS寄存器相配合才能形成真正的物理地址。
§3-2 8086的外部结构
一、最小模式和最大模式的概念 为了尽可能适应各种应用场合,8086 CPU芯片设
例2:AAH+7CH=(1)26H
无符号数运算: 170+124=294 范围外,有进位
有符号数运算: -86+124=28 范围内,无溢出
③ ZF(Zero Flag)零标志 ZF=1:运算结果为0。 ZF=0:运算结果不为0。
④ SF(Sign Flag)符号标志 SF=1:记录运算结果的符号为负。 SF=0:记录运算结果的符号为正。
计了两种工作模式,即最小模式和最大模式。 最小模式:8086系统中所有的总线控制信号都直接 由8086产生,因此,系统中的总统控制电路被减到 最少。 最大模式:相对最小模式而言。最大模式用在高档 8086系统中。在最大模式下,系统中除8086微处理 器外,还包含有一个或两个协处理器:数值运算协 处理器8087、I/O操作协处理器8089等。控制总线由 8288总线控制器提供。
3. 地址寄存器
– 段地址寄存器: CS,DS,ES,SS
– 偏移地址寄存器:IP,SI, DI, SP,BP
1、通用寄存器
AX——(Accumulator)作为累加器。 它是算术运算的主要寄存器, 所有I/O指令都使用这一寄存器与外部设备交换数据。
BX——Base用作基址寄存器使用。 在计算内存储器地址时,经常用来存放基址。
8086/8088取指部分与执行部分是分开的。
• 在一条指令的执行过程中可以取出下一条(或多条)指令,指令 在指令队列中排队;
• 在一条指令执行完成后,就可以立即执行下一条指令,减少CPU为 取指令而等待的时间,提高CPU的利用率和整个运行速度。
8086/8088微处理器:
BIU和EU分开,取指和执行可以重迭,
8086/8088的内部结构 地址
加法
∑
20位
AH AL
器
BH BL
通用 寄存器
CH CL DH DL
SP BP SI DI
16位
CS
DS
SS
输入/输出
ES
控制电路 总
IP
线
内部暂存器
ALU
执行部分 控制电路
标志寄存器
执行部件 (EU)
1 2 3 4 56 指令队列
总线接口部件 (BIU)
一、内部结构组成
3、段地址寄存器
信息三大类:程序代码、数据 (原始、中间、结果)、堆栈
段寄存器: 4个16位段寄存器CS、DS、SS、ES。
用来识别当前可寻址的四个段,不可互换的使用。
CS——Code Segment Register 代码段寄存器
用来识别当前代码段(程序一般放在代码段)。
DS——Data Segment Register数据段寄存器
CX——Count可以作计数寄存器使用。 在循环指令和串处理指令中用作隐含计数器。
DX——Data可以作为数据寄存器使用。 一般在双字长乘除 法运算时,把DX和AX组合在一起存放一个双字长(32位) 数,DX用来存放高16位; 对某些I/O操作DX可用来存放I/O 的端口地址
2、标志寄存器
PSW—(Processor States Word Program) 程序状态字寄存器, 16位寄存器。
大大减少了等待取指所需的时间,提高CPU的利用率。
取指
取指
取指
取指
得到数据
等待
执行
执行
执行
执行
重迭操作技术:一方面提高了整个执行速率,另一方面降低了与之 相配的存储器的存取速度的要求。
三、工作过程
微型计算机如何实现科学计算的?微处理器如何工作的?
100+256=?
C程序
汇编语言
二进制机器码
(与机型无关) (与机型有关) (可以执行的指令)
用来识别当前数据段寄存器。
SS——Stack Segment Register堆栈段寄存器,
用来识别当前堆栈段。
ES——Extra Segment Register附加段寄存器,
用来识别当前附加段。
4、 偏移地址寄存器
¾ 地址指针寄存器(SP 、 BP )
SP(stack pointer)——堆栈指针寄存器 用来指示栈顶的偏移地址, 必须与SS段寄存器联合使用确定实际 地址。 BP(base pointer)——基址指针寄存器 与SS寄存器联合使用来确定堆栈段中某一存储器单元地址。
1 执行单元EU——Execution Unit 2总线接口单元BIU——Bus Interface Unit
1 执行单元EU的组成和功能
1)组成
¾ 控制器 接收从总线接口单元的指令队列中取来的指令代码, 对其译码和向 EU 内各有关部分发出时序命令信号, 协调执行指令规定的操作。
¾ 运算器
¾ 寄存器(通用寄存器、标志寄存器)
¾
将执行部件的操作结果传送给指定的M或I/O口。
二、8086的结构特点
1. 指令流队列 指令流队列使得取指与执行指令可以并行
操作,从而提高运行速度。 2. 存储器分段结构
寄存器16位,而地址线是20位,如何能够用16位的数据表示20 位的地址呢?
存储器分段结构使得16位操作指令可以访问20 位的地址空间。
§3-1 8086/8088的编程结构
Intel 8086是标准的16位微处理器, 而8088是准16位微处理器。它们的内部数据 总线都是16位,但Intel 8088的外部数据总 线(引脚上)是8位。
8086/8088的内部结构分为执行单元 (EU)和总线接口单元(BIU)两大部分, EU负责指令的执行,BIU负责总线信息收发。
堆栈特点:内存开辟的一个特殊数据区,一端固定, 一端浮动,严格按照后进先出的工作原则。
¾ 变址寄存器(SI 、 DI)
SI——Source Index Register 源变址寄存器。 DI——Destination Index 目的变址寄存器。 使用场合:常用于变址寻址。 • 一般与DS联用,用来确定数据段中某一存储单元的地址,
8086具有一定的代表性,曾广泛应用于IBMPC/XT及其兼容机中,Intel后期推出的CPU从 80186、286、386直至Pentium4 都是向下兼容 的。8086虽已淘汰,但具有典型结构,功能齐
全,简单易学,与单片机有接近之处,又与今天 的PC机兼容,这些都是今天选择8086作为教学机
种的原因。
溢出和进位的区别
• 溢出标志OF和进位标志CF是两个意义不同的标志 • 进位标志表示无符号数运算结果是否超出范围,
运算结果仍然正确 • 溢出标志表示有符号数运算结果是否超出范围,
运算结果已经不正确
溢出和进位的对比
例1:3AH+7CH=B6H
无符号数运算: 58+124=182 范围内,无进位
有符号数运算: 58+124=182 范围外,有溢出
⑤ AF(Auxiliary Carry Flag)辅助进位标志 AF=1:记录运算时第3位(半个字节)产生进位值。 AF=0:记录运算时第3位(半个字节)不产生进位值。
辅助进位标志一般在BCD码运算中作为是否进行十进制调整的 判断依据。
⑥ PF(Parity Flag)奇偶标志 PF=1: 结果操作数低8位中有偶数个1。 PF=0: 结果操作数低8位中有奇数个1。
CF=1:记录运算时从最高有效位产生进位值。 CF=0:记录运算时从最高有效位不产生进值。 ② OF(Overflow Flag)溢出标志(一般指补码溢出)
OF=1:在运算过程中,如操作数超过了机器表示的范围称为溢出。
OF=0:在运算过程中,如操作数未超过了机器能表示的范围称为 不溢出。
3AH + 7CH=B6H,产生溢出:OF=1 AAH + 7CH=(1)26H,没有溢出:OF=0
① IF——可屏蔽中断允许标志
IF=1表示允许.CPU可以响应可屏蔽中断请求。
IF=0, 关闭中断。CPU禁止响应可屏蔽中断请求。
② DF——方向标志
DF=0 地址增量;DF=1地址减量
③ TF——陷阱标志(单步执行标志)
•控制信息:由系统程序或用户程序根据需要用指令来设置的。 • 状态信息:由中央处理器,根据计算结果自动设置的,机器提 供了设置状态信息指令。
第3章 8086/8088微处理器
3.1 8086/8088微处理器的编程结构 3.2 8086的外部结构 3.3 存储器和I/O管理 3.4 总线操作与时序
8086是Intel公司70年代后期推出的16位微处理 器,工作时钟频率为4.77MHz,数据总线宽度16 位,地址总线20位,可寻址的内存空间为1M字节。
用来为机器中传送信息时可能产生的代码出现情况提供检验 条件。
• 3AH+7CH=B6H=10110110B • 结果中有5个“1”,是奇数:PF=0
PF标志仅反映最低8位中“1”的个数是 偶或奇,即使是进行16位字操作
例1:执行两个数的加法,分析对标志位的影响。
0010001101000101 +0011001000011001
A=100; A=A+256;
MOV AX, 0064H ADD AX,0100H
B8, 0064H 05,0100H
存储器中存储的指令
存储器地址 存储器单元
10100H 10101H
B8H 64H
10102H 10103H 10104H 10105H
00H 05H 00H 01H
第一步 从程序到指令
0101010101011110
标志:
运算结果最高位为0
∴SF=0;
运算结果本身≠0
∴ZF=0
低8位中1的个数为奇数个 ∴PF=0;
最高位没有进位
∴CF=0
第三位向第四位无进位 ∴AF=0;
次高位向最高位没有进位 ,最高位向前没有进位 , OF=0。
控制标志: 对控制标志位进行设置后,对其后的操作起控制作用。
8086到底工作在何种模式,完全由硬件决定!
二、8086外部引脚(最小方式)
8086的引脚功能
最大组态(最小组态)
GND
AD14
8086CPU 是 双 列 直 插 式
AD13 AD12
芯片,共有40条引脚;
AD11
AD10
引脚33决定工作模式:
AD9
AD8
• 接地,最大模式
AD7
AD6
• 接+5V, 最小模式
由条件码标志FLAG、控制标志构成。
只用了其中9位, 6位条件码标志 , 3位控制标志。如下表示。
15
10 9 8 7 6 5
4
2
0
OF DF IF TF SF ZF AF PF CF
条件码标志:
用来记录程序中运行结果的状态信息作为后续条件 转移指令的转移控制条件。∴称为条件码。
条件码包括6位:CF 、 PF 、 AF 、 ZF 、 SF 、 OF 。 ① CF(Carry Flag)进位标志
2)功能
¾ 分析和执行指令 ¾ 计算和提供有效地址
2 总线接口单元BIU
1)组成
¾ 总线控制电路; ¾ (段、指针)地址寄存器和加法器;
¾ 指令流队列。
2)功能 负责与 M、I/O 端口传送数据。
¾
总线接口部件要从内存 取指令送到指令队列;
¾
CPU执行指令时,要配合执行部件从指定的MEM或
Байду номын сангаас
I/O端 口中取数据,将数据传送给执行部件;
什么是溢出
• 处理器内部以补码表示有符号数 • 8位表达的整数范围是:+127 ~ -128 • 16位表达的范围是:+32767 ~ -32768
•作•• B为如 有6H果溢有=运出符1算,号0结说1数1果明0是超有11负出符0数这号B,个数最范的围运高,算位就结为产果1生不,了正溢确出
• 对B6H求反加1等于: 3A0H1+070C1H0=01BB6+H,1=就是015080+1102140=B1=824,AH=74 补已经码• 所超 B6出以H-表,1达B2真86~H值+表是1达-27有7范4,符围显号,然产数运生的算溢真结出值果,为也故-不O正F7=4确1;
第二步 指令装载到存储器中
返回
第三步 CPU从存储器中取指令运行
工作过程
8088的指令执行过程
返回
四、8086的寄存器
1. 通用寄存器
汇编语言程序员看到的处理器,就是寄存器 所以,一定要熟悉这些寄存器的名称和作用
AX = AH:AL
BX = BH:BL
CX = CH:CL
DX = DH:DL
2. 标志寄存器PSW
AD5
AD4
在两种模式下引脚24~31 AD3
AD2
• 有不同的名称和意义
AD1
AD0
NMI
INTR
CLK