微机原理与接口技术(第三版)课堂布置及需要关注习题参考答案 1
第二章作业
2-2简述微处理器的工作方式、各工作方式的含义和区别是什么?它们之间是如何切换的? 答:
1.五种工作方式:实地址方式、保护虚地址方式、虚拟86方式、系统管理方式以及IA-32E方式。 2.含义:
(1)实地址方式是指处理器工作在8086/8088编程环境下的工作方式,其最大地址空间为1MB。 (2)保护地址方式,又称保护虚地址方式,简称保护方式,是真正发挥处理器潜能的一种工作方式。所谓保护是指在执行多任务操作时,对不同任务使用的不同存储空间进行完全隔离,保护每个任务顺利执行,能够寻址的地址空间为实际的物理地址空间即2(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位的地址(从Pentium Pro开始处理器的外部地址线就提供36条),支持64位线性地址,默认的地址空间为64位,默认的数据宽度为32位,指令允许32/64地址和32/64数据的混合使用,因此又把 Core为核心的处理器称为32/64处理器,与真正64位处理器有区别,可称之为具有64位功能的32位处理器。
3.工作方式的相互转换如下图所示。
m
以上工作方式中,系统管理方式需要用硬件切换即有/SMI引脚中断方可以从原来的工作方式进入系统管理方式,其它工作方式的切换均可用软件控制来切换工作方式。
2-3 IA-32E方式兼容模式和64位模式下,Cure X系列处理器能够寻址的物理地址空间分别有多大?
答: 具有IA-32E工作方式处理器在兼容模式下,最大支持的32位地址空间即4GB,而在64位方式下,采用EM64T技术,支持64位操作,同时支持36位的物理地址即64GB,支持64位线性地
2 IA-32 & Intel64微机原理与接口技术(第三版) 布置的习题参考答案
址,默认的地址空间为64位。
2-10 Pentium处理器的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到Core i7处理器外部地址线、数据线条数、通用寄存器的位数以及所处的工作方式。各自的位长以及所能寻址的物理地址空间有多大?
答:从8086到Corei的相关参数如下表所示表。 处理器 主要参数 通用寄存器位数 外部数据线条数 外部地址线条数 物理地址空间 I/O组织(端口个) 工作方式 8086 16 16 20 1MB 64K 80286 16 16 24 16MB 64K 80386 32 32 32 4GB 64K 80486 32 32 32 4GB 64K P6Pro,PII,PIII(Pentium ) 32 64 32 4GB 64K 32 64 36 64GB 64K Pentium 4 32 64 36 64GB 64K Core 2 Duo 32/64 64 36 64GB 64K Core i7 32/64 64 36 64GB 64K Corei3/i5/ i7 (二代到六代) 32/64 64 36 64GB 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或Intel 64处理器采用16位运算(用16位寄存器),求以下运算结果及相应各标志位:
(1) 5439H+4567H (2) 2345H+5219H (3) 54E3H-27A0H (4) 1A9FH+E561H 解:(1)
5439H+4567H=99A0H 0101 0100 0011 1001 + 0100 0101 0110 0111 1001 1001 1010 0000
AF=1,PF=1,ZF=0,CF=0,OF=1,SF=1 (2)
2345H+5219H=755EH
微机原理与接口技术(第三版)课堂布置及需要关注习题参考答案 3
0010 0011 0100 0101 + 0101 0010 0001 1001 0111 0101 0101 1110
AF=0,PF=0,ZF=0,CF=0,OF=0,SF=0 (3)法1直接相减 54E3H-27A0H=2D43H 0101 0100 1110 0011 - 0010 0111 1010 0000 0010 1101 0100 0011
AF=0,PF=0,ZF=0,CF=0,OF=0,SF=0 法2变减为加
54E3H-27A0H=54E3+D860H=2D43H 0101 0100 1110 0011 + 1101 1000 0110 0000 1 0010 1101 0100 0011
AF=0,PF=0,ZF=0,CF=1,OF=0,SF=0
说明:可见这两种方法算出的结果是一样的,但进借位标志完全不同。
(4)
1A9FH+E561=0000H 0001 1010 1001 1111 + 1110 0101 0110 0001 1 0000 0000 0000 0000
AF=1,PF=1,ZF=1,CF=1,OF=0,SF=0
2-37 内存数据如表2.26所示,指出实地址方式下,执行下列程序段后AX中的值。 MOV AX,1100H MOV DS,AX MOV BX,200H
MOV AX,[BX+62H]
表2.26 题2-38,2-43和2-44表(内存数据分布情况) 地址 : 00011267H 00011266H 00011265H 00011264H 00011263H 00011262H 00011261H 00011260H 数据 : 00H 70H 00H 01H 75H 39H 2AH 00H 地址 : 00011237H 00011236H 00011235H 00011234H 00011233H 00011232H 00011231H 00011230H 数据 : 00H 00H 11H 47H 32H 30H 31H 36H 地址 : 00001047H 00001046H 00001045H 00001044H 00001043H 00001042H 00001041H 00001040H 数据 : 00H 01H 1EH 13H 00H 00H 1FH FFH 地址 : 00001007H 00001006H 00001005H 00001004H 00001003H 00001002H 00001001H 00001000H 数据 : 00H 40H F3H 01H 00H 00H 1FH FFH 解:从程序段知DS=1100H,有效地址(偏移地址)=200H+62H=262H,因此物理地址=11000H+262H=11262H,11262H开始的一个字为7539H,所以AX=7539H
2-38 IA-32处理器描述符中所含有的基地址为089C0000H,段界限为0003FH,求(1)G=0时该描述符所寻址段的地址范围,该段如果要存汉字,能容纳多少个?(2)G=1时,对于4K页,描述的段的地址范围。
解:(1)G=0,段以字节为单位,段大小=段界+1=3FH+1=40H=64,末地址=段基址+段大
4 IA-32 & Intel64微机原理与接口技术(第三版) 布置的习题参考答案
小-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 14 13 12 S 段基址(B31-B24) G D/B 0 AVL 段界(L19-L16) P DPL 基地址(B15-B0) 8 7??????0 基地址Type A (B23-B16) 段界(L15-L0) 11 10 9 4 0 所以段描述符为: 03 40 F2 000000 1FFFH (2) 段基址=01000000H,段大小=027FFFFFH-01000000H+1=017FFFFFH=01800000H>FFFFFH+1因此,G=1,由于段大小=(段界+1)×4K,因此段界=段大小/4K-1=01800000H/4K-1=1800H-1=17FFH,其它属性同上,则段描述符=01C1F200000017FFH 2-41 已知从00100000H开始存放FFH,01H,00H,04H,10H,F2H,0AH,06H,FFH,03H,00H,00H,10H,F2H,40H,02H,从02100000H开始存放35H,36H,31H,30H,30H,32H,39H,38H,3AH,DS=000BH,EBX=0000002H,GDTR=001000001FFFH,CR0=60000011H,CR3=00034000H,对于IA-32处理器,执行指令MOV EAX,[EBX]时: (1) 求源操作数对应的描述符表可存放描述符个数 (2) 求源操作数对应段描述符的值以及该描述符描述段的地址范围 (3) 求源操作数所对应的物理地址 (4) 求指令执行后EAX中的内容。 (5) 从已知条件中还能得到什么信息? 解:DS=000BH=0000 0000 0000 1011B, 对照选择子的格式可知TI=0,选中GDT表,RPL=11为普通用户使用,索引×8=08H (1)GDT表可存放的描述符的个数由GDTR中的界决定,GDT表的界=1FFFH,因此可存放的段描述符的个数=(1FFFF+1)/8=400H=1K个; (2)先找出描述符存放的首地址=GDT表首址(GDTR高32位)+索引×8=00100000H+08H=00100008H,以段描述符为0240F210000003FFH,段描述符描述的段的大小取决于段界和G,对照段描述符的格式可知G=0,段界=003FFH,段基址=02100000H,因此段地址范围为02100000H~0210003FFH; (3)CR0=600000011H,因此PE=1,PG=0,是分段而不分页的保护方式,因此CR3多余,段内偏移地址=EBX的值=00000002H,因此物理地址=段基址+段内偏移地址=02100000H+00000002H=02100002H; (4)021000002H开始的4个字节就是EAX的值=32303031H; (5)由段描述符可知,G=0,D=1为32位数据,此外决定其它属性的主要是访问权字节,访问权字节中为F2H=11110010B,即P=1表示数据在物理存储器中,DPL=11表示一般用户程序访