微机第三版教材习题参考答案--马维华.doc
《微机第三版教材习题参考答案--马维华.doc》由会员分享,可在线阅读,更多相关《微机第三版教材习题参考答案--马维华.doc(29页珍藏版)》请在冰豆网上搜索。
微机原理与接口技术(第三版)课堂布置及需要关注习题参考答案29
第二章作业
2-2简述微处理器的工作方式、各工作方式的含义和区别是什么?
它们之间是如何切换的?
答:
1.五种工作方式:
实地址方式、保护虚地址方式、虚拟86方式、系统管理方式以及IA-32E方式。
2.含义:
(1)实地址方式是指处理器工作在8086/8088编程环境下的工作方式,其最大地址空间为1MB。
(2)保护地址方式,又称保护虚地址方式,简称保护方式,是真正发挥处理器潜能的一种工作方式。
所谓保护是指在执行多任务操作时,对不同任务使用的不同存储空间进行完全隔离,保护每个任务顺利执行,能够寻址的地址空间为实际的物理地址空间即2m(m为处理器外部地址线的引脚条数)。
(3)虚拟86方式是指一个多任务的环境,即模拟多个8086的工作方式。
在这个方式之下,处理器被模拟成多个8086微处理器同时工作。
(4)系统管理方式(SMM)是为实现特定功能及系统安全提供的一种工作方式,SMM的功能主要包括电源管理以及为操作系统和正在运行的程序提供安全性。
SMM最显著的应用就是电源管理。
以上四种方式是IA-32所有处理器所具有的工作方式。
(5)从后期的P4到以Core为核心的处理器开始支持64位扩展技术,引入了IA-32E工作方式。
在这种方式下,处理器支持两种模式即兼容的工作方式(兼容IA-32处理器的方式)和64位工作方式。
在兼容模式下,允许在64位操作系统下运行原来的16位和32位应用程序,可使用前缘REX访问64位数据,最大支持的32位地址空间,而在64位方式下,采用EM64T技术,支持64位操作,同时支持36位的地址(从PentiumPro开始处理器的外部地址线就提供36条),支持64位线性地址,默认的地址空间为64位,默认的数据宽度为32位,指令允许32/64地址和32/64数据的混合使用,因此又把Core为核心的处理器称为32/64处理器,与真正64位处理器有区别,可称之为具有64位功能的32位处理器。
3.工作方式的相互转换如下图所示。
以上工作方式中,系统管理方式需要用硬件切换即有/SMI引脚中断方可以从原来的工作方式进入系统管理方式,其它工作方式的切换均可用软件控制来切换工作方式。
2-3IA-32E方式兼容模式和64位模式下,CureX系列处理器能够寻址的物理地址空间分别有多大?
答:
具有IA-32E工作方式处理器在兼容模式下,最大支持的32位地址空间即4GB,而在64位方式下,采用EM64T技术,支持64位操作,同时支持36位的物理地址即64GB,支持64位线性地址,默认的地址空间为64位。
2-10Pentium处理器的U和V两条指令流水线的功能是什么?
主频为100MHz的Pentium处理器,最快执行两条指令的时间为多少ns?
答:
(1)U流水线主要用于执行复杂指令,而V流水线只能执行简单指令。
(2)最快执行两条指令的时间是一个时钟周期,100MHz主频其一个时钟周期为1/100(us)=10ns。
2-11简述Pentium处理器的BTB的功能。
答:
BTB(分支目标缓冲器)可对分支指令进行预测,目的是提高流水线执行效率。
在Pentium微处理器中,使用了BTB预测分支指令,这样可在分支指令进入指令流水线之前预先安排指令的顺序,而不致使指令流水线的执行产生停滞或混乱。
2-18总结一下8086/8088到Corei7处理器外部地址线、数据线条数、通用寄存器的位数以及所处的工作方式。
各自的位长以及所能寻址的物理地址空间有多大?
答:
从8086到Corei的相关参数如下表所示表。
处理器
主要参数
8086
80286
80386
80486
Pentium
P6(Pro,PII,PIII)
Pentium4
Core2Duo
Corei7
Corei3/i5/i7
(二代到六代)
通用寄存器位数
16
16
32
32
32
32
32
32/64
32/64
32/64
外部数据线条数
16
16
32
32
64
64
64
64
64
64
外部地址线条数
20
24
32
32
32
36
36
36
36
36
物理地址空间
1MB
16MB
4GB
4GB
4GB
64GB
64GB
64GB
64GB
64GB
I/O组织(端口个)
64K
64K
64K
64K
64K
64K
64K
64K
64K
64K
工作方式
实方式
实方式
保护方式
实方式
保护V86
实方式
保护、V86
实,保护、V86、系统管理
实、保护、V86、系统管理
实、保护、V86、系统管理
实、保护、系统管理、IA-32E
实、保护、系统管理、IA-32E
实、保护、系统管理、IA-32E
2-26已经从内存1FF00000开始存放12H,34H,56H,78H,90H,ABH,CDH,EFH,11H,22H,33H,44H,55H,66H,77H,88H,99H,00H,AAH,BBH,CCH,DDH,EEH,FFH,试说明从1FF00000H开始取一个双四字的值,从1FF00008H开始取双字的值,以及从1F00010H开始取四字和一个字的值。
解:
按照数据低字节存放在低地址的原则,在Intel处理器中,为了保持兼容性,仍然定义一个字为16位(尽管字长已经是32位或64位)
从1FF00000H开始的双四字的值=8877665544332211EFCDAB9078563412H
从1FF00008H开始的双字的值=44332211H
从1FF00010H开始的四字的值=FFEEDDCCBBAA0099H
从1FF00010H开始的一个字的值=0099H
2-32对于IA-32或Intel64处理器采用16位运算(用16位寄存器),求以下运算结果及相应各标志位:
(1)5439H+4567H
(2)2345H+5219H(3)54E3H-27A0H(4)1A9FH+E561H
解:
(1)
5439H+4567H=99A0H
0101010000111001
+0100010101100111
1001100110100000
AF=1,PF=1,ZF=0,CF=0,OF=1,SF=1
(2)
2345H+5219H=755EH
0010001101000101
+0101001000011001
0111010101011110
AF=0,PF=0,ZF=0,CF=0,OF=0,SF=0
(3)法1直接相减
54E3H-27A0H=2D43H
0101010011100011
-0010011110100000
0010110101000011
AF=0,PF=0,ZF=0,CF=0,OF=0,SF=0
法2变减为加
54E3H-27A0H=54E3+D860H=2D43H
0101010011100011
+1101100001100000
10010110101000011
AF=0,PF=0,ZF=0,CF=1,OF=0,SF=0
说明:
可见这两种方法算出的结果是一样的,但进借位标志完全不同。
(4)
1A9FH+E561=0000H
0001101010011111
+1110010101100001
10000000000000000
AF=1,PF=1,ZF=1,CF=1,OF=0,SF=0
2-37内存数据如表2.26所示,指出实地址方式下,执行下列程序段后AX中的值。
MOV AX,1100H
MOV DS,AX
MOVBX,200H
MOVAX,[BX+62H]
表2.26题2-38,2-43和2-44表(内存数据分布情况)
地址
数据
地址
数据
地址
数据
地址
数据
:
:
:
:
:
:
:
:
00011267H
00H
00011237H
00H
00001047H
00H
00001007H
00H
00011266H
70H
00011236H
00H
00001046H
01H
00001006H
40H
00011265H
00H
00011235H
11H
00001045H
1EH
00001005H
F3H
00011264H
01H
00011234H
47H
00001044H
13H
00001004H
01H
00011263H
75H
00011233H
32H
00001043H
00H
00001003H
00H
00011262H
39H
00011232H
30H
00001042H
00H
00001002H
00H
00011261H
2AH
00011231H
31H
00001041H
1FH
00001001H
1FH
00011260H
00H
00011230H
36H
00001040H
FFH
00001000H
FFH
解:
从程序段知DS=1100H,有效地址(偏移地址)=200H+62H=262H,因此物理地址=11000H+262H=11262H,11262H开始的一个字为7539H,所以AX=7539H
2-38IA-32处理器描述符中所含有的基地址为089C0000H,段界限为0003FH,求
(1)G=0时该描述符所寻址段的地址范围,该段如果要存汉字,能容纳多少个?
(2)G=1时,对于4K页,描述的段的地址范围。
解:
(1)G=0,段以字节为单位,段大小=段界+1=3FH+1=40H=64,末地址=段基址+段大小-1=段基址+段界=089C0000H+3FH=089C0000H~0x89C0003F,可容纳汉字64/2=32个;
(2)G=1时,段大小以页为单位(4K页),段大小=(段界+1)×4K=(3FH+1)×1000H=40000H=262144,末地址=段基址+段大小-1=089C0000H+40000-1=089C0000H+3FFFFH=089FFFFFH,可容纳汉字262144/2=131072个。
2-39试定义IA-32处理器的两个段描述符来描述一个存储器段,均为一个可写、向上增长的用户访问的在物理存储器中、未访问过的数据段,
(1)地址范围为03000000H~03001FFFH,
(2)01000000H~027FFFFFH。
解:
(1)定义段描述符就是确定段基址、段界和相关属性
段基址=03000000H,段界=末地址-首地址=1FFFH,段界访问权字节,P=1,DPL=11,S=1,TYPE=001,A=0,对照描述符格式
31…………………24
23
22
21
20
19……16
15
1413
12
11109
8
7………………0
段基址(B31-B24)
G
D/B
0
AVL
段界(L19-L16)
P
DPL
S
Type
A
基地址(B23-B16)
4
基地址(B15-B0)
段界(L15-L0)
0
所以段描述符为:
0340F20000001FFFH
(2)段基址=01000000H,段大小=027