微机原理与接口技术(朱红) 第2章

更新时间:2023-06-09 08:21:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第2章 8086微处理器

8086/8088 微处理器8086/8088是Intel公司的第三代CPU芯片,是使用 最为广泛的微处理器。均为40脚双列直插芯片。 20根地址线,寻址范围为220=1MB。

这两种CPU根据系统规模的大小,均有两种工作模 式,最大模式和最小模式,在这两种模式的工作 下,个别引脚信号的定义不同。一般工作在最大 模式,最小模式引脚信号的定义在括号中。

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

VCC A15 A16/S3 A17/S4 A18/S5 A19/S6HIGH (SSO)

MN / MXRD

RQ / GT 0( HOLD)RQ / GT1( HLDA)

LOCK (WR)

S 2 ( IO / M )S1 ( DT / R ) S0 ( DEN ) QS0 (ALE) QS1 (INTA)

TEST READY RESET

GND AD14 AD13 AD12 AD11 AD10 AD9 AD8 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

VCC AD15 A16/S3 A17/S4 A18/S5 A19/S6BHE / S7 MN / MXRD

RQ / GT 0( HOLD)RQ / GT1( HLDA)

LOCK (WR)

S2 (M / IO) S1 ( DT / R ) S0 ( DEN ) QS0 (ALE) QS1 (INTA) TEST READY RESET

8088

8086

8086CPU 对外是16位数据总线 每次读写一个字(16位) 指令队列为6个字节 AD0~AD15为数据/地址 复用线 有BHE(高字节允许)信 号 存储器与I/O接口选通线 为M/IO

8088CPU 对外是8位数据总线 每次读写一个字节 指令队列为4个字节 AD0~AD7为数据/地址 复用线 无BHE信号,而为状态 信号SS0 存储器与I/O接口选通线 为M/IO

一、编程结构8086/8088CPU从功能上可分为两个部分 总线接口部件BIU: Bus Interface Unit

执行部件EU: Execution Unit总线接口部件功能:负责与存储器、I/O传送数据 执行部件的功能:完成指令的译码与执行工作。

20位地址加法器

AH AL BH BL CH CL DH DL SP BP SI DI运算寄存器

∑16位

CS DS SS ES IP内部总线 内部暂存器

输入/ 输出 控制 电路

外部 总线

ALU标志寄存器

执行 部件 控制 电路

指令队列

BIU

EU

8086用20位地址寻址, 但内部的寄存器均为16 位,所以要由段寄存器 和其他寄存器相加形成 段 20位地址进行寻址。 寄

20位地址加法器

∑16位

存 8086在执行指令的同时,器从内存中取出下一条或 下几条指令放在指令队 列中,这样,取指和执值 分开操作,可以节省时 间,连续执行指令

CS DS SS ES IP内部暂存器

输入/ 输出 控制 电路

外部 总线

指令队列

BIU

指令队列

取指 执值 取指 执值 ……

取指 取指 取指 取指 ……执值 执值 执值 执值 ……

BIU和EU在功能上相对独立,同时进行,加快程序 的执行速度。 BIU使用指令队列电路来实现流水线操作,该队列 为先进先出队列(FIFO),有两个指针,允许预 取6个字节的指令代码。BIU的操

作原则是:

1) 每当队列中有两个字节的空间时,BIU就自动 地顺序预取后续指令代码,并填入指令队列中。 2) 如果指令队列已满,且EU又无请求时,BIU不 执行任何总线周期,进入空闲状态。 3) 当EU在执行中须向BIU申请从内存或I/O口读 写操作数时,若此时BIU空闲,则会立即完成EU 请求;否则BIU先完成取指令操作,然后再进行 操作数的读写总线周期(执行EU)。

4) 如果EU执行转移指令,则BIU清除队列内容, 从新地址取得指令,并立即送给EU去执行。然后 从后续指令序列中取指令填满队列。

IP:控制CPU指令的执行 顺序,存放指令代码在内 存中的相对地址,顺序执 行时,CPU每取一个指令 字节,IP自动加1。把CS 和IP相加的20位地址形成 当前指令的物理地址。当 有跳转指令时,IP的值根 据条件改变

20位地址加法器

∑16位

CS DS SS ES IP内部暂存器

输入/ 输出 控制 电路

外部 总线

指令队列

指令指针 寄存器

BIU

EU执行单元 执行单元主要是负责指令的执行,EU从 BIU的指令队列中取出一条指令,执行指令 中对BIU发出请求,再由BIU对存储器或IO 端口进行存取。 EU主要由运算器、通用寄存器和控制电路 这3部分组成。

4个16位数据寄存器,每 个都可以分为2个8位寄 存器单独使用。一般用 于以下用途:AX:累加器ADD BX: 基址寄存器BASE

数 据 寄 存 器

AH AL BH BL CH CL DH DL SP BP SI DI运算寄存器

内部总线

CX:计数寄存器 COUNTER

ALU标志寄存器

DX:数据寄存器 DATA汇编指令中会隐含的使用

执行 部件 控制 电路

EU

指针和变址寄存器SP:堆栈指针寄存器,指示 栈顶在内存中的相对位置。 BP:基数指针寄存器,存放 数据在内存中的偏移地址, 使寻址方式更为灵活。栈。 SI:源操作数变址寄存器, 存放源数据的偏移地址。 DI:目的操作数变址寄存器, 存放目的数据偏移的地址。

AH AL BH BL CH CL DH DL SP BP SI DI运算寄存器

内部总线

ALU标志寄存器

执行 部件 控制 电路

source

SI

destination

DI

EU

标志寄存器PSW:存放 CPU运行完当前指令后 的各种状态。16位寄存 器,8088/8086用了其 中的9位,标志寄存器 这9位的含义在程序的 编写和调试中起决定性 的作用。

AH AL BH BL CH CL DH DL SP BP SI DI运算寄存器

内部总线

ALU标志寄存器

执行 部件 控制 电路

标志寄存器

EU

15 14 13 12 11 10 9 8 7

6

5

4

3

2

1

0

OF DF IF TF SF ZFfor( i=0;i<10;i++) s=s+i; 语句标号

AF

PF

CF

MOV CX, 10 A1: ……; 开始计算 …… DEC CX; CX减1

指令中程序的分支, JNZ A1;不为0,执行A1 转向均是通过判断 标志寄存器的标志 …… CPU在这时去 位实现的。判断零标志ZF

15 14 13 12 11 10 9 8 7

6

5

4

3

2

1

0

OF DF IF TF SF ZF

AF

PF

C

F

CF: 进位标志,运算器在加减法中出现进位或借位时该 标志位置1。Carry Flag PF: 奇偶标志,运算结果的低8位中1的个数为偶数时该 标志位置1。Parity Flag AF: 辅助进位标志,加法或减法时,位3向位4进位或借 位时该标志位置1。用于BCD(十进制)运算。Auxiliary

ZF: 零标志,运算结果为零时该标志位置1。ZeroSF: 符号标志位,当运算结果的最高位为1(负数)时该标 志位置1。Sign

15 14 13 12 11 10 9 8 7

6

5

4

3

2

1

0

OF DF IF TF SF ZF

AF

PF

CF

OF: 溢出标志,在算术运算中,带符号数的运算结果超 出8位或16位带符号数所能表达的范围时,该标志位置1 例如:8位数运算,当100 + 34 时,结果为134,超过8位 正数的最大值 127,此时,该标志位置1。Overflow 100: 0110 0100 34: 0010 0010 两个正数相加,结果 为负数,这是由正数 表示范围溢出造成的 01100100 + 00100010 10000110 正数和正数相加,负数和 负数相加有可能造成溢出

15 14 13 12 11 10 9 8 7

6

5

4

3

2

1

0

OF DF IF TF SF ZF

AF

PF

CF

TF: 单步标志,该位置1时,8088/8086进入单步运行方式, 即每条指令执行完后都产生中断,供用户检查各个寄存器 及内存的当前状况,通常用于调试。Trap Flag

IF: 中断标志,该位置1时,8088/8086的CPU可以响应外 部可屏蔽中断,否则,将外部可屏蔽中断屏蔽,即使有 中断申请信号也不予理会。 Interrupt Flag

DF: 方向标志,该位置1时,串操作指令为自动减量指令, 即从高地址向低地址处理字符串。串操作指令是对内存 中连续的数据进行自动成批操作。Direction Flag

15 14 13 12 11 10 9 8 7

6

5

4

3

2

1

0

OF DF IF TF SF ZF

AF

PF

CF

是控制位,不是反映目前CPU的 状态,而是由程序进行设置, 使CPU根据设置的状态运行。其他标志位则是反映CPU的当前 运行状态,程序可以通过判断 这些标志进行转向、循环等。

二、存储器组织结构8086/8088有20根地址线,可寻址1MB空间的内存, 当程序运行时,程序代码,数据等被编译程序按 照一定的规则放在内存中。CPU也依据同样的规则 取指、执值、存取数据、控制程序。……

程序

CPU……

内存

本文来源:https://www.bwwdw.com/article/pg21.html

Top