2024年4月24日发(作者:佟佳晶霞)
Intel80X86
系列微处理器 第
4
章
系列微处理器
第
4
章 习题解答
Intel80X86
系列微处理器
4.1 8086/8088内部寄存器有哪些?哪些属于通用寄存器?哪些用于存放段地址?标志寄存器的含义是什
么?
答:
8086/8088内部有14个16位的寄存器。8
位的寄存器。
8个通用寄存器AX、
AX
、BX、
BX
、CX、
CX
、DX、
DX
、SP、
SP
、BP、
BP
、SI、
SI
、DI。
DI
。4个16
位的段寄存器CS、
CS
、DS、
DS
、SS、
SS
、ES,用于存放段地址。标志寄存器
ES
,用于存放段地址。标志寄存器FLAGS用于存放指令执行结果的特征和CPU
工作方式,其内容通常称为处理器状态字PSW。
PSW
。
4.2 对于8086/8088CPU,确定以下运算的结果与标志位。
(1)5439H+456AH
(4)3881H+3597H
(2)2345H+5219H
(5)5432H-6543H
(3)54E3H-27A0H
(6)9876H+1234H
略。
4.3 8086/8088为什么要对存储器采用分段管理?一个段最多包含多少存储单元?
答:
8086/8088内部与地址有关的寄存器都是16位的,只能处理16位地址,对内存的直接寻址范围最大
只能达64KB。为了实现对
64KB
。为了实现对1MB单元的寻址,8086/8088
单元的寻址,
8086/8088系统采用了存储器分段技术。一个段最多包含64K
个存储单元。
个存储单元。
4.4 8086/8088CPU内部共有多少个段?分别称为什么段?段地址存放在哪些寄存器中?
答:
8086/8088 CPU内部共有4个段。分别称为代码段、数据段、堆栈段和附加段。段地址存放在4个16
位的段寄存器,CS
位的段寄存器,
CS代码段寄存器、DS
代码段寄存器、
DS数据段寄存器、SS
数据段寄存器、
SS堆栈段寄存器、ES
堆栈段寄存器、
ES附加段寄存器中。
附加段寄存器中。
4.5 简述物理地址、逻辑地址、段基地址和偏移量的含义及其相互关系。
答:
物理地址:信息在存储器中实际存放的地址,它是CPU访问存储器时实际输出的地址。
访问存储器时实际输出的地址。
逻辑地址:编程时所使用的地址,由段基地址和偏移量两部分构成。
段基地址(段地址或段基址):段的起始地址的高16位。
位。
偏移量(偏移地址):所访问的存储单元距段的起始地址之间的字节距离。
给定段基地址和偏移量,就可以在存储器中寻址所访问的存储单元。物理地址=段基地址×16+偏移
16+
偏移
量。
4.6 8086/8088CPU中存储单元的物理地址的计算公式是什么?如果[CS]=0200H,[IP]=0051H,则物理地址
是多少?
解:
物理地址=段基地址×16+
物理地址=段基地址×
16+偏移量
16+
偏移量
偏移量
左移
4
位
02000H
+
0051H
02051H
0200H
0051H
段基地址
逻辑地址
偏移量
物理地址是02051H。
02051H
。
4.7 8086/8088CPU内部用来存放下一条要执行指令的偏移地址的寄存器是什么?它与哪个段寄存器配合产
生下一条要执行指令的物理地址?
答:
8086/8088CPU内部用来存放下一条要执行指令的偏移地址的寄存器是指令指针IP。它与代码段寄存
IP
。它与代码段寄存
器CS合产生下一条要执行指令的物理地址。
合产生下一条要执行指令的物理地址。
第
0
页
Intel80X86
系列微处理器 第
4
章
系列微处理器
4.8 某存储单元在数据段中,已知[DS]=1000H,偏移地址为1200H,则它的物理地址是多少?
解:
左移
4
位
10000H
+
1200H
11200H
1000H
1200H
段基地址
逻辑地址
偏移量
物理地址是11200H。
11200H
。
4.9 已知[SS]=2360H,[SP]=0800H,若将20H个字节的数据入栈,则[SP]=?
解:
[SP]=0800H-20H×
[SP]=0800H-20H
×2=7C0H
4.10 对于8086/8088CPU,已知[DS]=0150H,[CS]=0640H,[SS]=0250H,[SP]=1200H,问:
(1)数据段最多可存放多少字节?首地址和末地址分别为多少?
(2)代码段最多可存放多少字节?首地址和末地址分别为多少?
(3)如果先后将FLAGS、AX、BX、CX、SI和DI压入堆栈,则[SP]=?
解:
(1)数据段首地址为01500H,按
01500H
,按64K字节容量末地址应为114FFH,然而考虑到堆栈段首地址
114FFH
,然而考虑到堆栈段首地址=SS
,然而考虑到堆栈段首地址
=SS×
=SS
×
16=02500H,数据段中存放信息不能与堆栈段重合,故数据段末地址
16=02500H
,数据段中存放信息不能与堆栈段重合,故数据段末地址=0250H-1=024FFH,即数据段范围:
=0250H-1=024FFH
,即数据段范围:
01500H~
01500H
~024FFH,可以存放
024FFH
,可以存放4K字节。
字节。
(2)代码段最多可存放64K字节,首地址为06400H,末地址为
06400H
,末地址为163FFH。
163FFH
。
(3)[SP]=1200H-0CH=11F4H。
[SP]=1200H-0CH=11F4H
。
4.11 从功能上,8086CPU可分为哪两部分?各部分的主要功能是什么?二者如何协调工作?
答:
从功能上,8086CPU
从功能上,
8086CPU可分总线接口部件BIU和执行部件EU两部分。
两部分。
BIU负责完成微处理器内部与外部(
负责完成微处理器内部与外部
(内存储器和I/O端口)
端口
)的信息传送,即负责取指令和存取数据。执
行部件EU的功能就是负责指令的执行。
的功能就是负责指令的执行。
总线接口部件(BIU
总线接口部件(
BIU)和执行部件(
BIU
)和执行部件(EU
)和执行部件(
EU)按流水线技术原则协调工作,共同完成所要求的信息处理任
EU
)按流水线技术原则协调工作,共同完成所要求的信息处理任
务:
务:
4.12 8086/8088的指令队列分别有多少个字节?
答:
8086的指令队列长度为6个字节,当队列空闲两个字节时,BIU
个字节,当队列空闲两个字节时,
BIU自动从存储器取出指令字节,存入指
令队列中;而8088的指令队列长度为4个字节,当队列空闲一个字节时,BIU
个字节,当队列空闲一个字节时,
BIU就自动取指令字节,并存到
指令队列中去。
指令队列中去。
4.13 8086CPU有多少根数据线?多少根地址线?可寻址的地址空间为多少字节?加电复位后,执行第一条
指令的物理地址是多少?
答:
8086CPU有16根数据线。20
根数据线。
20根地址线。可寻址的地址空间为1M字节。加电复位后,执行第一条指令
的物理地址是FFFF0H。
FFFF0H
。
4.14
MN/MX
是工作模式选择信号,由外部输入,为高电平时CPU工作在什么模式?为低电平时,CPU
工作在什么模式?
答:
MN/MX
为高电平时,CPU
为高电平时,
CPU工作在最小模式。为低电平时,CPU
工作在最小模式。为低电平时,
CPU工作在最大模式。
工作在最大模式。
4.15 8086/8088CPU的非屏蔽中断输入信号和可屏蔽中断信号分别由什么引脚输入?标志寄存器中IF可屏
蔽的中断是什么?
第
1
页
Intel80X86
系列微处理器 第
4
章
系列微处理器
答:
8086/8088CPU的非屏蔽中断输入信号和可屏蔽中断信号分别NMI和INTR引脚输入。标志寄存器中IF
可屏蔽的中断是可屏蔽中断信号INTR。
INTR
。
4.16 8086工作于最小模式,CPU完成存储器读操作时
M/IO
、
RD
、
WR
和
DT/R
引脚分别为什么电
平。如果进行字节操作,单元地址为2001H,则
BHE
和A
0
分别为什么电平?如果为字操作且该字为“对
准存放”,则
BHE
和A
0
为分别为什么电平?
解:
8086工作于最小模式,CPU完成存储器读操作时
M/IO
、
RD
、
WR
和
DT/R
引脚分别为高、低、
高、低电平。如果进行字节操作,单元地址为2001H,则
BHE
和A
0
分别为低、高电平?如果为字操作且该
字为“对准存放”,则
BHE
和A
0
为分别为低、低电平。
4.17 时钟发生器8284A的主要功能是什么?
答:
8086/8088系统采用Intel8284A作为时钟发生器。8284A将晶体振荡器的振荡频率分频后,向
8086/8088系统提供符合要求的时钟脉冲CLK、PCLK和OSC信号;同时为复位信号RESET和准备好信号READY
CLK
、
进行同步。
进行同步。
4.18 8086/8088采用什么器件实现总线分离?涉及到的控制信号有哪些?
答:
8086/8088CPU采用8位锁存驱动器Intel8282和8位双向数据收发器Intel8286实现总线分离。涉及
到的控制信号包括:ALE
到的控制信号包括:
ALE、
ALE
、
DEN
、
DT/R
。
4.19 8086CPU的基本总线周期由几个时钟周期组成?在读写周期T
1
状态,CPU向总线发出什么信息?如果
时钟频率为5MHz,则一个时钟周期为多少?
解:
4个。CPU
个。
CPU向总线发出地址信息。1/5MHz=200ns
向总线发出地址信息。
1/5MHz=200ns。
1/5MHz=200ns
。
4.20 说明8086/8088总线周期中4个基本状态中的具体任务,如果AL中的内容为98H,试画出将AL中内
容存至内存12345H单元时对应的时序图(假设插入1个等待周期)。
解:
T1
:地址锁存
:地址锁存
T2
:地址撤销,准备数据
:地址撤销,准备数据
T3
:数据稳定到总线上
:数据稳定到总线上
T4
:读写总线上的数据
:读写总线上的数据
CLK
M/IO
A19-A16
AD15-AD0
BHE
ALE
WR
DT/R
DEN
T1
T2
T3
Tw
T4
1
2340H 98H
READY
第
2
页
2024年4月24日发(作者:佟佳晶霞)
Intel80X86
系列微处理器 第
4
章
系列微处理器
第
4
章 习题解答
Intel80X86
系列微处理器
4.1 8086/8088内部寄存器有哪些?哪些属于通用寄存器?哪些用于存放段地址?标志寄存器的含义是什
么?
答:
8086/8088内部有14个16位的寄存器。8
位的寄存器。
8个通用寄存器AX、
AX
、BX、
BX
、CX、
CX
、DX、
DX
、SP、
SP
、BP、
BP
、SI、
SI
、DI。
DI
。4个16
位的段寄存器CS、
CS
、DS、
DS
、SS、
SS
、ES,用于存放段地址。标志寄存器
ES
,用于存放段地址。标志寄存器FLAGS用于存放指令执行结果的特征和CPU
工作方式,其内容通常称为处理器状态字PSW。
PSW
。
4.2 对于8086/8088CPU,确定以下运算的结果与标志位。
(1)5439H+456AH
(4)3881H+3597H
(2)2345H+5219H
(5)5432H-6543H
(3)54E3H-27A0H
(6)9876H+1234H
略。
4.3 8086/8088为什么要对存储器采用分段管理?一个段最多包含多少存储单元?
答:
8086/8088内部与地址有关的寄存器都是16位的,只能处理16位地址,对内存的直接寻址范围最大
只能达64KB。为了实现对
64KB
。为了实现对1MB单元的寻址,8086/8088
单元的寻址,
8086/8088系统采用了存储器分段技术。一个段最多包含64K
个存储单元。
个存储单元。
4.4 8086/8088CPU内部共有多少个段?分别称为什么段?段地址存放在哪些寄存器中?
答:
8086/8088 CPU内部共有4个段。分别称为代码段、数据段、堆栈段和附加段。段地址存放在4个16
位的段寄存器,CS
位的段寄存器,
CS代码段寄存器、DS
代码段寄存器、
DS数据段寄存器、SS
数据段寄存器、
SS堆栈段寄存器、ES
堆栈段寄存器、
ES附加段寄存器中。
附加段寄存器中。
4.5 简述物理地址、逻辑地址、段基地址和偏移量的含义及其相互关系。
答:
物理地址:信息在存储器中实际存放的地址,它是CPU访问存储器时实际输出的地址。
访问存储器时实际输出的地址。
逻辑地址:编程时所使用的地址,由段基地址和偏移量两部分构成。
段基地址(段地址或段基址):段的起始地址的高16位。
位。
偏移量(偏移地址):所访问的存储单元距段的起始地址之间的字节距离。
给定段基地址和偏移量,就可以在存储器中寻址所访问的存储单元。物理地址=段基地址×16+偏移
16+
偏移
量。
4.6 8086/8088CPU中存储单元的物理地址的计算公式是什么?如果[CS]=0200H,[IP]=0051H,则物理地址
是多少?
解:
物理地址=段基地址×16+
物理地址=段基地址×
16+偏移量
16+
偏移量
偏移量
左移
4
位
02000H
+
0051H
02051H
0200H
0051H
段基地址
逻辑地址
偏移量
物理地址是02051H。
02051H
。
4.7 8086/8088CPU内部用来存放下一条要执行指令的偏移地址的寄存器是什么?它与哪个段寄存器配合产
生下一条要执行指令的物理地址?
答:
8086/8088CPU内部用来存放下一条要执行指令的偏移地址的寄存器是指令指针IP。它与代码段寄存
IP
。它与代码段寄存
器CS合产生下一条要执行指令的物理地址。
合产生下一条要执行指令的物理地址。
第
0
页
Intel80X86
系列微处理器 第
4
章
系列微处理器
4.8 某存储单元在数据段中,已知[DS]=1000H,偏移地址为1200H,则它的物理地址是多少?
解:
左移
4
位
10000H
+
1200H
11200H
1000H
1200H
段基地址
逻辑地址
偏移量
物理地址是11200H。
11200H
。
4.9 已知[SS]=2360H,[SP]=0800H,若将20H个字节的数据入栈,则[SP]=?
解:
[SP]=0800H-20H×
[SP]=0800H-20H
×2=7C0H
4.10 对于8086/8088CPU,已知[DS]=0150H,[CS]=0640H,[SS]=0250H,[SP]=1200H,问:
(1)数据段最多可存放多少字节?首地址和末地址分别为多少?
(2)代码段最多可存放多少字节?首地址和末地址分别为多少?
(3)如果先后将FLAGS、AX、BX、CX、SI和DI压入堆栈,则[SP]=?
解:
(1)数据段首地址为01500H,按
01500H
,按64K字节容量末地址应为114FFH,然而考虑到堆栈段首地址
114FFH
,然而考虑到堆栈段首地址=SS
,然而考虑到堆栈段首地址
=SS×
=SS
×
16=02500H,数据段中存放信息不能与堆栈段重合,故数据段末地址
16=02500H
,数据段中存放信息不能与堆栈段重合,故数据段末地址=0250H-1=024FFH,即数据段范围:
=0250H-1=024FFH
,即数据段范围:
01500H~
01500H
~024FFH,可以存放
024FFH
,可以存放4K字节。
字节。
(2)代码段最多可存放64K字节,首地址为06400H,末地址为
06400H
,末地址为163FFH。
163FFH
。
(3)[SP]=1200H-0CH=11F4H。
[SP]=1200H-0CH=11F4H
。
4.11 从功能上,8086CPU可分为哪两部分?各部分的主要功能是什么?二者如何协调工作?
答:
从功能上,8086CPU
从功能上,
8086CPU可分总线接口部件BIU和执行部件EU两部分。
两部分。
BIU负责完成微处理器内部与外部(
负责完成微处理器内部与外部
(内存储器和I/O端口)
端口
)的信息传送,即负责取指令和存取数据。执
行部件EU的功能就是负责指令的执行。
的功能就是负责指令的执行。
总线接口部件(BIU
总线接口部件(
BIU)和执行部件(
BIU
)和执行部件(EU
)和执行部件(
EU)按流水线技术原则协调工作,共同完成所要求的信息处理任
EU
)按流水线技术原则协调工作,共同完成所要求的信息处理任
务:
务:
4.12 8086/8088的指令队列分别有多少个字节?
答:
8086的指令队列长度为6个字节,当队列空闲两个字节时,BIU
个字节,当队列空闲两个字节时,
BIU自动从存储器取出指令字节,存入指
令队列中;而8088的指令队列长度为4个字节,当队列空闲一个字节时,BIU
个字节,当队列空闲一个字节时,
BIU就自动取指令字节,并存到
指令队列中去。
指令队列中去。
4.13 8086CPU有多少根数据线?多少根地址线?可寻址的地址空间为多少字节?加电复位后,执行第一条
指令的物理地址是多少?
答:
8086CPU有16根数据线。20
根数据线。
20根地址线。可寻址的地址空间为1M字节。加电复位后,执行第一条指令
的物理地址是FFFF0H。
FFFF0H
。
4.14
MN/MX
是工作模式选择信号,由外部输入,为高电平时CPU工作在什么模式?为低电平时,CPU
工作在什么模式?
答:
MN/MX
为高电平时,CPU
为高电平时,
CPU工作在最小模式。为低电平时,CPU
工作在最小模式。为低电平时,
CPU工作在最大模式。
工作在最大模式。
4.15 8086/8088CPU的非屏蔽中断输入信号和可屏蔽中断信号分别由什么引脚输入?标志寄存器中IF可屏
蔽的中断是什么?
第
1
页
Intel80X86
系列微处理器 第
4
章
系列微处理器
答:
8086/8088CPU的非屏蔽中断输入信号和可屏蔽中断信号分别NMI和INTR引脚输入。标志寄存器中IF
可屏蔽的中断是可屏蔽中断信号INTR。
INTR
。
4.16 8086工作于最小模式,CPU完成存储器读操作时
M/IO
、
RD
、
WR
和
DT/R
引脚分别为什么电
平。如果进行字节操作,单元地址为2001H,则
BHE
和A
0
分别为什么电平?如果为字操作且该字为“对
准存放”,则
BHE
和A
0
为分别为什么电平?
解:
8086工作于最小模式,CPU完成存储器读操作时
M/IO
、
RD
、
WR
和
DT/R
引脚分别为高、低、
高、低电平。如果进行字节操作,单元地址为2001H,则
BHE
和A
0
分别为低、高电平?如果为字操作且该
字为“对准存放”,则
BHE
和A
0
为分别为低、低电平。
4.17 时钟发生器8284A的主要功能是什么?
答:
8086/8088系统采用Intel8284A作为时钟发生器。8284A将晶体振荡器的振荡频率分频后,向
8086/8088系统提供符合要求的时钟脉冲CLK、PCLK和OSC信号;同时为复位信号RESET和准备好信号READY
CLK
、
进行同步。
进行同步。
4.18 8086/8088采用什么器件实现总线分离?涉及到的控制信号有哪些?
答:
8086/8088CPU采用8位锁存驱动器Intel8282和8位双向数据收发器Intel8286实现总线分离。涉及
到的控制信号包括:ALE
到的控制信号包括:
ALE、
ALE
、
DEN
、
DT/R
。
4.19 8086CPU的基本总线周期由几个时钟周期组成?在读写周期T
1
状态,CPU向总线发出什么信息?如果
时钟频率为5MHz,则一个时钟周期为多少?
解:
4个。CPU
个。
CPU向总线发出地址信息。1/5MHz=200ns
向总线发出地址信息。
1/5MHz=200ns。
1/5MHz=200ns
。
4.20 说明8086/8088总线周期中4个基本状态中的具体任务,如果AL中的内容为98H,试画出将AL中内
容存至内存12345H单元时对应的时序图(假设插入1个等待周期)。
解:
T1
:地址锁存
:地址锁存
T2
:地址撤销,准备数据
:地址撤销,准备数据
T3
:数据稳定到总线上
:数据稳定到总线上
T4
:读写总线上的数据
:读写总线上的数据
CLK
M/IO
A19-A16
AD15-AD0
BHE
ALE
WR
DT/R
DEN
T1
T2
T3
Tw
T4
1
2340H 98H
READY
第
2
页