第4章Intel80X86系列微处理器习题解答
4.1 8086/8088内部寄存器有哪些?哪些属于通用寄存器?哪些用于存放段地址?标志寄存器的含义是什么?
答:
8086/8088内部有14个16位的寄存器。8个通用寄存器AX、BX、CX、DX、SP、BP、SI、DI。4个16位的段寄存器CS、DS、SS、ES,用于存放段地址。标志寄存器FLAGS用于存放指令执行结果的特征和CPU 工作方式,其内容通常称为处理器状态字PSW。
4.2 对于8086/8088CPU,确定以下运算的结果与标志位。 (15439H+456AH (22345H+5219H (354E3H-27A0H (43881H+3597H (55432H-6543H (69876H+1234H 略。
4.3 8086/8088为什么要对存储器采用分段管理?一个段最多包含多少存储单元? 答:
8086/8088内部与地址有关的寄存器都是16位的,只能处理16位地址,对内存的直接寻址范围最大只能达64KB。为了实现对1MB单元的寻址,8086/8088系统采用了存储器分段技术。一个段最多包含64K 个存储单元。
4.4 8086/8088CPU内部共有多少个段?分别称为什么段?段地址存放在哪些寄存器中?
答:
8086/8088 CPU内部共有4个段。分别称为代码段、数据段、堆栈段和附加段。段地址存放在4个16位的段寄存器,CS代码段寄存器、DS数据段寄存器、SS堆栈段寄存器、ES附加段寄存器中。
4.5 简述物理地址、逻辑地址、段基地址和偏移量的含义及其相互关系。 答:
物理地址:信息在存储器中实际存放的地址,它是CPU访问存储器时实际输出的地址。
逻辑地址:编程时所使用的地址,由段基地址和偏移量两部分构成。 段基地址(段地址或段基址:段的起始地址的高16位。
偏移量(偏移地址:所访问的存储单元距段的起始地址之间的字节距离。 给定段基地址和偏移量,就可以在存储器中寻址所访问的存储单元。物理地址=段基地址×16+偏移量。
4.6 8086/8088CPU中存储单元的物理地址的计算公式是什么?如果[CS]=0200H,[IP]=0051H,则物理地址是多少?
解:
物理地址=段基地址×16+偏移量
0200H段基地址0051H偏移量逻辑地址 02000H 左移4位
0051H + 02051H
物理地址是02051H。
4.7 8086/8088CPU内部用来存放下一条要执行指令的偏移地址的寄存器是什么?它与哪个段寄存器配合产生下一条要执行指令的物理地址?
答:
8086/8088CPU内部用来存放下一条要执行指令的偏移地址的寄存器是指令指针IP。它与代码段寄存器CS合产生下一条要执行指令的物理地址。
4.8 某存储单元在数据段中,已知[DS]=1000H ,偏移地址为1200H ,则它的物理地址是多少? 解:
1000H 段基地址1200H 偏移量逻辑地址10000H 左移4位
1200H +11200H
物理地址是11200H 。
4.9 已知[SS]=2360H ,[SP]=0800H ,若将20H 个字节的数据入栈,则[SP]=? 解:
[SP]=0800H-20H=7E0H 4.10 对于8086/8088CPU ,已知
[DS]=0150H ,[CS]=0640H ,[SS]=0250H ,[SP]=1200H ,问:
(1数据段最多可存放多少字节?首地址和末地址分别为多少? (2代码段最多可存放多少字节?首地址和末地址分别为多少?
(3如果先后将FLAGS 、AX 、BX 、CX 、SI 和DI 压入堆栈,则[SP]=? 解:
(1数据段首地址为01500H ,按64K 字节容量末地址应为114FFH ,然而考虑到堆栈段首地址=SS ×16=02500H ,数据段中存放信息不能与堆栈段重合,故数据段末地址=0250H-1=024FFH ,即数据段范围:01500H ~024FFH ,可以存放4K 字节。
(2代码段最多可存放64K 字节,首地址为06400H ,末地址为163FFH 。 (3[SP]=1200H-0CH=11F4H 。
4.11 从功能上,8086CPU 可分为哪两部分?各部分的主要功能是什么?二者如何协调工作?
答:
从功能上,8086CPU 可分总线接口部件BIU 和执行部件EU 两部分。 BIU 负责完成微处理器内部与外部(内存储器和I/O 端口的信息传送,即负责取指令和存取数据。执行部件EU 的功能就是负责指令的执行。
总线接口部件(BIU 和执行部件(EU 按流水线技术原则协调工作,共同完成所要求的信息处理任务:
4.12 8086/8088的指令队列分别有多少个字节?
答:
8086的指令队列长度为6个字节,当队列空闲两个字节时,BIU 自动从存储器取出指令字节,存入指令队列中;而8088的指令队列长度为4个字节,当队列空闲一个字节时,BIU 就自动取指令字节,并存到指令队列中去。
4.13 8086CPU 有多少根数据线?多少根地址线?可寻址的地址空间为多少字节?加电复位后,执行第一条指令的物理地址是多少?
答:
8086CPU 有16根数据线。20根地址线。可寻址的地址空间为1M 字节。加电复位后,执行第一条指令的物理地址是FFFF0H 。
4.14 MX /MN 是工作模式选择信号,由外部输入,为高电平时CPU 工作在什么模式?为低电平时,CPU 工作在什么模式?
答:
MX /MN 为高电平时,CPU 工作在最小模式。为低电平时,CPU 工作在最大模式。
4.15 8086/8088CPU 的非屏蔽中断输入信号和可屏蔽中断信号分别由什么引脚输入?标志寄存器中IF 可屏蔽的中断是什么?
答:
8086/8088CPU 的非屏蔽中断输入信号和可屏蔽中断信号分别NMI 和INTR 引脚输入。标志寄存器中IF 可屏蔽的中断是可屏蔽中断信号INTR 。
4.16 8086工作于最小模式,CPU 完成存储器读操作时IO /M 、RD 、WR 和R /DT 引脚分别为什么电平。如果进行字节操作,单元地址为2001H ,则BHE 和A 0