微计算机原理(第2版)第二章课后习题答案 潘名莲 马争 丁庆生 编著 下载本文

第二章 IA-32结构微处理器及其体系结构

2-1 请将左边的术语和右边的含义联系起来,在括号中填入右边的代号字母: 1.字长 (i)a. 指由8个二进制位组成的通用基本单元。 2.字节 (a)b. 是CPU指令执行时间的刻度。

3.指令 (h)c. μPS所能访问的存储单元数,与CPU地址总线条数 有关

4.基本指令执行时间 (g)d. 唯一能代表存储空间每个字节单元的地址,用五位 16进制数表示。

5.指令周期 (j)e. CPU执行访问存储器或I/O操作一次所花的时间。 6.时钟周期 (b)f. 由段基址和偏移地址组成,均用四位16进制数表示。 7.总线周期 (e)g. 指寄存器执行加法指令所花的时间。

8.Cache (k)h. 完成操作的指令。

9.虚拟存储器 (l)i.指μP在交换,加工,存放信息时信息位的最基本长度。 10.访存空间 (c)j. 各条指令执行所花时间,不同指令不一。

11.实际地址 (d)k. 为缓解CPU与主存储器间交换数据的速度瓶颈而建立 的高速缓冲存储器。

12.逻辑地址 (f)l. CPU执行程序时看到的一个速度接近内存却具有外存容 量的假想存储器

2-2 下面列出计算机中常用的一些单位,试指出其用途和代表的含义。 例:页面。用来表示存储器容量的一种单位,1页面=256B(字节)

(1)MIPS (2)KB (3)MB (4)GB (5)TB 解:(1)MIPS 百万条指令每秒,用来表示计算机运算速度的一种单位。

(2)KB 千字节,用来表示存储器容量的一种单位,1KB=210B

(3)MB 兆字节,用来表示存储器容量的一种单位,1MB=220B

30

(4)GB 吉字节,用来表示存储器容量的一种单位,1GB=2B (5)TB 太字节,用来表示存储器容量的一种单位,1TB=240B

2-3 在下列各项中,选出8086的EU和BIU的组成部件,将所选部件的编号填写与后: EU BIU

1. 地址部件AU 2. 段界检查器 3. ALU

4. 20位地址产生器∑ 5. 20位物理地址加法器 6. 指令队列 7. 状态标志寄存器 8. 总线控制逻辑 9. 控制单元 10.段寄存器组 11. 指令指针 12. 通用寄存器组

解:EU 3、7、9、12 BIU 1、2、4、5、6、8、10、11

2-4 试将左边的标志和右边的功能联系起来。

要求:(1)在括号中填入右边的功能代号;(2)填写其类型(属状态标志填S,属控制标志填C);(3)写出各标志为0时表示的状态。 标志 类型 1. SF() a.陷阱标志 为0时表示的状态 2.CF() b.符号标志 3.AF() c.溢出标志 4.DF() d.进位标志 5.TF() e..零标志 6.OF() f.奇偶标志 7.PF() g.中断标志 8.IF() h.辅助进位标志 9.ZF) i.方向标志

解:

标志 1. SF(b) .符号标志 2.CF(d.) 进位标志 3.AF(h.) 辅助进位标志 4.DF(i.) 方向标志 5.TF(a.) 陷阱标志 6.OF(c.) 溢出标志 7.PF(f.) 奇偶标志 8.IF( g.) 中断标志 9.ZF(e.) .零标志 类型 S状态标志 S状态标志 S状态标志 C控制标志 C控制标志 S状态标志 S状态标志 C控制标志 S状态标志 为0时表示的状态 符号数运算结果为止 无符号数运算无进位 低4位运算无进位 串操作为增值方式 单步调试无效 符号数运算无溢出 两数运算结果又偶数个 可屏蔽中断屏蔽 运算结果不为零

2-5 试填写下列CPU中通用寄存器(GP)的宽度。

(1)8086(16) (2)8088(8) (3)80286(16) (4)80486(32) (5)Pentium(32) (6)Pentium Pro(32) (7)Pentium II(32) (8)Pentium III(32) (9)Pentium 4(32)

2-6 略

2-7 有一个由20个字组成的数据区,其起始地址为610AH:1CE7H。试写出该数据区首末单元的实际地址PA。

解:数据区的起始地址为610AH:1CE7H,连续存放20个字数据,占用40个存储单元, 末尾地址为:610AH:1D0EH(由于40=28H,1CE7H+28H=1D0EH)

起始实际地址为:PA=610A0H+1CE7H=62D87H(PA=断首址左移1位+偏移地址) 末尾实际地址为:PA=610A0H+1D0EH=62DAEH

2-8 若一个程序段开始执行之前,(CS)=97F0H、(IP)=1B40H。试问该程序段启动执行指令的实际地址是多少?

解:实际地址=97F00H+1B40H=99A40H

2-9 若堆栈段寄存器(SS)=3A50H,堆栈指针(SP)=1500H,试问这时堆栈栈顶的实际地址是多少?

解:实际地址=3A500H1500H=3BA00H

2-10试将8086基本总线周期操作中,各状态下的有效信号填写于下表中。

总线操作类型 状态 最小方式下总线存储器读操作 最小方式下总线存储器写操作 T1 T2 T3 T4 √ √ √ √ √ √ √

解:存储器读操作时,T!时刻CPU经地址总线想存储器发出地址学信息并在T2~T4期间保持地址信息,T2为缓冲期,T3、T4期间CPU经数据总线从选中的存储器单元中读取数据 存储器写操作时,T1时刻CPU经数据总线向存储器发出地址信息并在T@~T4期间保持地址信息,无缓冲期,T2~T4期间CPU经数据总线向被选中的存储器单元中写入数据。

2-11 将8086CPU下列工作方式特点填于下表中。 MN//MX引脚 处理器个数 方式 特点 最小方式 最大方式 输入高电平 输入低电平 1 多个 总线控制信号的产生 由CPU自己产生 CCPU经专用器件产生

解:8086CPU工作于最小模式的控制条件为,控制线MN//MX输入高电平,工作于最大模式的控制条件为,控制线MN//MX输入低电平。最小模式时仅有8086CPU工作,所有控制信号均由8086CPU产生。最大模式时除8086CPU工作外,还有总线控制器8288和协处理器8087,控制信号的产生为8086CPU送必要信号给8288,然后8288产生所有控制信号。

2-12 有两个16位字31DAH、5E7Fh,它们在8086系统存储器中的地址为00130H和00134H,试画出它们的存储器示意图

解: 00130H DAH

00131H 31H

00132H

00133H

00134H 7FH

00135H 5EH

2-13 有一个32位的地址指针67ABH:2D34H存放在从00230H开始的存储器中,试画出它们的存放示意图。 解:

00230H 34H 00231H 2DH

00232H ABH 00233H 67H

2-14 将下列字符串的ASCII码依次存入从00330H开始的字节单元中,试画出它们的存放

示意图。

U︺E︺S︺T︺C (︺为空格符) 解:U:1010101B=55H 00330H ︺:0100000B=20H

00331H E:1000101B=45H

00332H S:1010011B=53H

00333H T:1010100B=54H

00334H C:1000011B=43H

00335H

00336H

00337H

00338H

55H 20H 45H 20H 53H 20H 54H 20H 43H

2-15 存储器中每一个段最多为64KB,当某程序routadf运行后,用DEBUG命令显示出当前各寄存器的内容如下,要求:91)画出此时存储器分段的示意图;(2)写出各状态标志的值。

B>C: debug routadf.exe r

AX=0000 BX=0000 CX=006D DX=0000 SP=00C8 BP=0000 SI=0000 DI=0000 DS=11A7 ES=11A7 SS=21BE CS=31B8 IP=0000

NV UP EI PL NZ NA P0 NC

解:数据段段首地址为11A7H,附加段段首地址为11A7H,堆栈段段首地址为21BEH,代码段段首地址为31B8H。(1)如图所示 (2)NV OF=0; UP DF=0; EI IF=1; PL SF=0; NA AF=0; PO PF=0; NC CF=0. DS和ES的段首地址 11A70H SS的段首地址 SP的偏移地址 CS的段首地址 21BE0H 00C8H 31B80H

2-16 已知(SS)=20A0H,(SP)=0032H,欲将(CS)=0A5BH,(IP)=0012H,(AX)=0FF42H, (SI)=537AH,(BL)=5CH依次推入堆栈保存。要求: (1)试画出堆栈存放示意图;(2)写出入栈完毕时SS和SP的值。 解:(1)如图所示,(2)(SS)=20A0H;(SP)=0028H SP=0028H SP=002AH 5CH 7AH 53H PUSH BX PUSH SI