微机原理1-11章答案精简版

更新时间:2023-10-04 08:24:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第一章习题答案

一、 单选题

1. 1946年2月,在美国诞生了世界上第一台计算机,它的名字叫 C 。

A.EDVAC B.EDSAC C.ENIAC D.UNIVAC-I 2. 在下列描述中属于冯·诺依曼体系结构特点的是 C 。

Ⅰ.采用16进制计数。 Ⅱ.集中而顺序的控制。

Ⅲ.存储程序并且存储时不区别数据和指令。

A.Ⅰ和Ⅱ B.Ⅰ和Ⅲ C.Ⅱ和Ⅲ D.Ⅰ,Ⅱ和Ⅲ 3. C 是以CPU为核心,加上存储器、I/O接口和系统总线构成。

A.微处理器 B.微型计算机 C.微型计算机系统 D.单板机

4. 计算机的字长越长,一个字所能表示的数据精度就越高,在完成同样精度的运算时,则数

据处理速度 A 。

A.越高 B.越低 C.不变 D.不一定 5. 计算机存储数据的最小单位是二进制的 B 。

A. 位 B.字节 C.字长 D.千字长 6. 通常所说的32位机,是指这种计算机的CPU B 。

A.由32个运算器组成的 B.能够同时处理32位二进制数 C.包含32个寄存器 D.一共有32个运算器和控制器 二、 判断题

1. 第五代计算机的体积进一步缩小,性能进一步提高,发展了并行技术和多机系统,出现了

精简指令集计算机RISC。 ( F )

2. 单片机是把CPU、一定数量的存储器芯片和I/O接口芯片装在一块印刷电路板上,在该板

上再配以具有一定功能的输入、输出设备。 ( F )

3. 总线是多个部件间的公共连线,信号可以从多个源部件中的任何一个通过总线传送到多个

目的部件。 ( T )

4. 冯·诺伊曼计算机在硬件上是由运算器、控制器、存储器、输入和输出设备5大部分组

成。 ( T ) 5. 在计算机内部可直接运行二进制数、十进制数、十六进制数。 ( F ) 三、 简答题

1. 简述微处理器的发展概况,从集成度、性能等方面比较各代处理器的特点。 2. 简述冯·诺伊曼型计算机的基本组成。

3. 名词(概念)简释:微处理器、微型计算机、微型计算机系统、单总线结构、双总线结构、

双重总线结构、总线。

4. 简述计算机硬件与软件的关系。 5. 简述微型计算机的主要性能指标。

6. 举例说明微型计算机在生活、生产中的应用。

1. 答: 微型计算机的发展从1971年Intel公司首先研制成功的4位Intel4004微处理

器算起,已经走过了30多年的历史,经历了如下几个阶段的演变:

第一代处理器为4位或低档8位,采用PMOS工艺,集成度低,运算功能较差,速度较慢,语言主要以机器语言或简单的汇编语言为主。

第二代处理器为中高档8位,采用NMOS工艺,集成度比第一代提高4倍左右,

运算速度提高10~15倍,采用机器语言,汇编语言或高级语言,后期配有操作系统。

第三代处理器为16位,采用HMOS工艺,集成度比第二代提高一个数量级,运算速度比第二代提高一个数量级,采用汇编语言、高级语言并配有软件系统。

第四代处理器为高性能的16位机和32位机,采用HMOS或CMOS工艺,集成度在100万晶体管/片以上,运算速度再次提高,部分软件硬化。

2. 答: 微型计算机的硬件系统主要由输入设备、输出设备、运算器、存储器和控制

器等5部分组成。这种结构称为冯·诺伊曼结构,现代绝大多数微型机的结构均为冯·诺伊曼结构.

3. 答: 微处理器: 是把运算器和控制器集成在一个芯片上,又称CPU.

微型计算机: 以微处理器为核心的计算机. 微型计算机系统: 是把微处理器(CPU)配上一定容量的随机存储器(RAM)只读存储器(ROM)及接口电路、必要的外设组成。

单总线结构: 在单总线结构中,系统存储器M和I/O使用唯一的一套信息通路因而微处理器对存储器和I/O的读写只能分时进行.

双总线结构: I/O和M各自具有到MPU的总线通路,这种结构的MPU可以分别在两套总线上同时与M和I/O口交换信息,相当于展宽了总线带宽,提高了总线的数据传输速率。

双重总线结构: 在这种结构中,主MPU通过局部总线访问局部M和局部I/O,这时的工作方式与单总线情况是一样的。也经常作为主设备访问全局M和全局I/O。当其他并列微处理器需要访问全局M和全局I/O时,必须由总线控制逻辑部件统一安排才能进行,这时该微处理器就是系统的主控设备。

总线: 计算机中的各个部件,包括CPU、内存储器、外存储器和输入/输出设备的接口之间是通过一条公共信息通路连接起来的,这条信息通路称为总线。

4. 答: 硬件和软件是一个完整的计算机系统互相依存的两大部分,它们的关系主要体现在

以下几个方面:

(1) 硬件和软件互相依存。

硬件是软件赖以工作的物质基础,软件的正常工作是硬件发挥作用的唯一途径。计算机系统必须要配备完善的软件系统才能正常工作,且充分发挥其硬件的各种功能。 (2) 硬件和软件无严格界线。

随着计算机技术的发展,在许多情况下,计算机的某些功能既可以由硬件实现,也可以由软件来实现。因此,硬件与软件在一定意义上说没有绝对严格的界线。 (3) 硬件和软件协同发展。

计算机软件随着硬件技术的迅速发展而发展,而软件的不断发展与完善又促进硬件的

2

更新,两者密切地交织发展,缺一不可。

5. 答: 计算机的主要性能指标如下: 字长,存储容量,存储容量,运算速度,外部设备配置,系

统软件配置,性能价格比。 6. 略

第二章习题答案

四、 将下列十进制数转换成二进制数。

(1)36 (2)0.628 (3)129.313 (4)1000 答:(1)100100 (2)0.1010 (3)129.313 (4)1111101000 五、 单选题

1. 定点16位字长的字,采用2的补码形式表示时,一个字所能表示的整数范围是 A 。

A.–215 ~ +(215 –1) B.–(215 –1)~ +(215 –1)

C.–(215 + 1)~ +215 D.–215 ~ +215

2. 若浮点数用补码表示,则判断运算结果是否为规格化数的方法是 C 。

A.阶符与数符相同为规格化数 B.阶符与数符相异为规格化数 C.数符与尾数小数点后第一位数字相异为规格化数 D.数符与尾数小数点后第一位数字相同为规格化数 3. 在机器数 B 中,零的表示形式是唯一的。

A.原码 B.补码 C.移码 D.反码

4. 定点字长的字,采用2的补码表示时,一个字所能表示的整数范围是 A 。

A.–128 ~ +127 B.–127 ~ +127 C.–129 ~ +128 D.–128 ~ +128 5. 用64位字长(其中一位符号位)表示定点小数时,所能表示的数值范围是 B 。

A.[ 0,264 – 1 ] B.[ 0,263 – 1 ] C.[ 0,262 – 1 ] D.[ 0,263 ]

6. 假定下列字符码中有奇偶校验位,但没有数据错误,采用偶校校验的字符码是 D 。

A.11001011 B.11010110 C.11000001 D.11001001 7. 已知X为整数,且[X]补 = 10011011,则X的十进制数值是 B 。

A.+155 B.–101 C.–155 D.+101

8. 用16位字长(其中一位符号位)表示定点小数时,所能表示的数值范围是 B 。

A.0≤│N│≤1–2–(16+1) B.0≤│N│≤1–2–16 C.0≤│N│≤1–2–(16–1) D.0≤│N│≤1

9. 如果浮点数用补码表示,判断下列哪一项的运算结果是规格化数 C 。

A.1.11000 B.0.01110 C.1.00010 D.0.01010 六、 判断题

1.从二进制转换成十六进制时,只要以小数点为起点,向左、向右将每一位二进制数转换成一位十六进制数。 ( F ) 2.任意进制数转换成十进制数就是按权展的开多项式之和。 ( T )

3.定点表示法,小数点在数中的位置是固定不便的;浮点表示法,小数点在数中的位置是浮动可变的。 ( F )

3

4.对于浮点数,当字长一定时,分给阶码的位数越少,则表示数的范围越大。 ( F )

5.在有权BCD码中,每一个十进制数符均用一个4位二进制码来表示,这4位二进制码中的每一个均有固定权值。 ( T ) 6.无权BCD码没有确定的位权值,因此不以按位权展开求它们所代表的十进制。( F ) 7.计算机只能处理数字信息。 ( F ) 8.汉字信息在系统内传送的过程就是汉字代码转换的过程。 ( T )

七、 计算与证明

1. 已知 x = - 0.01111 ,y = +0.11001,

求 [ x ]补,[ -x ]补,[ y ]补,[ -y ]补,x + y =?,x – y =?

答:解:[ x ]原 = 1.01111 [ x ]补 = 1.10001 所以 :[ -x ]补 = 0.01111 [ y ]原 = 0.11001 [ y ]补 = 0.11001 所以 :[ -y ]补 = 1.00111 [ x ]补 11.10001 [ x ]补 11.10001 + [ y ]补 00.11001 + [ -y ]补 11.00111 [ x + y ]补 00.01010 [ x - y ]补 10.11000

所以: x + y = +0.01010 因为符号位相异,结果发生溢出 2. 已知:x= 0.1011,y = - 0.0101

求 :[

1111x]补,[ x]补,[ - x ]补,[y]补,[y]补,[ - y ]补 。 2424解: [ x ]补 = 0.1011 , [ y ]补 = 1.1011

11x ]补 = 0.01011 , [x ]补 = 1.11011 2211 [x ]补 = 0.001011 ,[ x ]补 = 1.111011

44 [

[ - x ]补 = 1.0101 , [ - x ]补 =0.0101

3. 求证: - [y]补 = +[-y]补

证:因为 [x]补 + [y]补 =[x+y]补 令 x=-y 带入上式,则有:

[-y]补 + [y]补 =[-y+y]补 = [0]补 = 0 所以 [-y]补 = -[y]补

4. 已知X=2010×0.11011011,Y=2100×(-0.10101100),求X+Y。

解:为了便于直观理解,假设两数均以补码表示,阶码采用双符号位,尾数采用单符号位,则

它们的浮点表示分别为:

[ X ]浮 = 00010 , 0.11011011 [ Y ]浮 = 00100 , 1.01010000

4

(1) 求阶差并对阶:

ΔE = Ex – Ey = [ Ex]补 + [ - Ey]补 = 00010 + 11100 = 11110 即ΔE为 –2,x的阶码小,应使Mx 右移2位,Ex加2, [ X ]浮 = 00010 , 0.11011011 (11)

其中(11)表示Mx 右移2位后移出的最低两位数。 (2) 尾数和

0. 0 0 1 1 0 1 1 0 (11) 1. 0 1 0 1 0 1 0 0

2. 1 0 0 0 1 0 1 0 (11)

(3) 规格化处理

尾数运算结果的符号位与最高数值位为同值,应执行左规处理,结果为1.00010101 (10),阶码为00 011 。 (4) 舍入处理

采用0舍1入法处理,则有

1. 0 0 0 1 0 1 0 1

+ 1

1. 0 0 0 1 0 1 1 0

(5) 判溢出

阶码符号位为00 ,不溢出,故得最终结果为

011

x + y = 2× (-0.11101010)

5. 设机器字长16位,定点表示,尾数15位,数符1位,

(1)定点原码整数表示时,最大正数是多少?最大负数是多少? (2)定点原码小数表示时,最大正数是多少?最大负数是多少? 解:① 定点原码整数表示

最大正数

最大负数

0 111 111 111 111 111 数值 = (215 – 1)10 = (+32767)10

1 111 111 111 111 111 数值 = -(215 – 1 )10 = (- 32767)10

②定点原码小数表示

最大正数值 = ( + 0.11??11)2 = (1 – 215 )10

最大负数值 = ( - 0.11??11)2 = -(1 - 215 )

6. 将十进制数20.59375转换成32位浮点数的二进制格式。 解:先将十进制数转换为二进制数:

5

(20.59375)10=(10100.10011)2 然后移动小数点,使其在1,2位之间

10100.10011=1.0010011×24 ,e =4

于是得到 S=0, E = 4+127 = 131 M=01001011 最后得到32位浮点数的二进制格式为:

0100 0001 01010 0100 1100 0000 0000 0000 =(41A4C000)16

第三章习题答案

八、 单选题 8086是高性能的第三代微处理器,是Intel系列的 B 位微处理器。

A.8 B.16 C.32 D.64 8086有20根地址线,可以寻址到的内存空间能达到 B 字节。

A.1K B.1M C.1G D.1T 80486的内部所有部件都连接在 A 上,并通过 B 交换数据

A.内部总线 B.数据总线 C.地址总线 D.外部总线 C 的任务就是在内部控制总线信号的控制下,把内部数据总线上的数据送上外部地

址总线,或与外部数据总线的某些位交换数据,并产生相应的外部控制信号。 A.高速缓存部件 B.代码预取部件 C.总线接口部件 D.指令译码部件 在指令流水线技术中,预取指令部件一次可以从内部Cache取 C 字节的指令代码,

送预取指令队列等候执行。

A.4 B.8 C.16 D.32 当存储器的读出时间大于CPU要求的时间时,为了保证CPU与存储器的周期配合,就要

利用一个READY信号,使CPU插入一个 D 状态。 A.T1 B.T2 C.T3 D.Tw 指令队列的作用是 D 。

A.暂存操作数地址 B.暂存操作数 C.暂存指令地址 D.暂存预取指令 在80486微处理器中设置有4个系统地址寄存器,用来在保护方式下管理4个系统表。其

中用来存放全局描述符表的是 A 。

A.全局描述符表寄存器 B.中断描述符表寄存器 C.局部描述符表寄存器 D.任务状态寄存器 段寄存器和 D 一起为操作系统完成内存管理、多任务环境、任务保护提供硬件支持。

A.调试寄存器 B.系统地址寄存器 C.标志寄存器 D.指令指针寄存器 B 为中断允许标志。该位置为1时,允许响应外部可屏蔽中断(INTR);该位置为0

时,禁止响应外部可屏蔽中断。

A.OF B.IF C.DF D.ZF 九、 判断题

6

1. 8086的内部结构由总线接口部件BIU和执行部件EU两部分组成。 ( T ) 总线实际上是一组导线,是各种公共信号线的集合,用于作为微型计算机中所有各组成部

分传输信息共同使用的“公路”。总线上传输的信号是双向的。 ( T ) INTR是可屏蔽的中断信号输入,此信号是电平型的,必须保持足够长的时间等待指令单

元的识别,如果保持的时间不够长,CPU不会察觉此次请求。 ( F ) 指令指针指示器是32位的寄存器,它的内容是下一条要取入CPU的指令在内存中的偏移

地址。 ( T ) 一个指令周期中包含若干个机器周期,一个机器周期中包含若干个时钟周期。( T) 时钟周期是处理器中处理动作的最小时间单位,通常称为一个T状态。这是微处理器完成

一步完整操作的最小时间单位。 ( T )

在指令流水线技术中,译码操作可以分为D1和D2两个阶段,因此又叫做二级译码。

( F )

时钟周期是基本定时脉冲的两个沿之间的时间间隔,而基本定时脉冲是由外部振荡器产生

的,通过CPU的CLK输入端输入。 ( T ) 标志寄存器EFLAGS为32位寄存器,它的低16位称为FLAGS。标志寄存器可以分为3

类:状态标志、控制标志、系统标志。 ( T ) 当奇偶标志PF位置置位时,表示结果数据位中有偶数个0。该标志位主要用于数据通讯应

用程序中,可以检查数据传送中是否出现错误。 ( F ) 十、 简答题

1. 简述80486 CPU的内部基本寄存器的组成。

2. 简述80486 CPU的内部结构,并说明每个部件的功能。 a) 80486有哪3种工作方式,为什么要采用不同的方式工作? b) 简述可屏蔽中断信号INTR与非屏蔽中断信号NMI的区别。 c) 什么是流水线技术?试说明指令流水线的5个步骤。

1. 答:主要的基本寄存器有以下一些:

通用寄存器包括EAX、EBX、ECX、EDX、EBP、ESP、ESI和EDI等8个32位寄存器; 指令指针指示器-EIP;标志寄存器-EFLAGS;段寄存器;系统地址寄存器; 调试寄存器;测试寄存器; 控制寄存器;浮点寄存器。 2. 答: 80486 CPU的内部结构主要由以下九个部分构成:

总线实际上是一组导线,是各种公共信号线的集合,是微型计算机中各组成部分传输信息共同使用的“公共通路”. 包括数据总线,地址总线,控制总线。

总线接口部件的任务就是在内部控制总线信号的控制下,把内部数据总线上的数据送上外部地址总线,或与外部数据总线的某些位交换数据,并产生相应的外部控制信号。

高速缓存部件用于减少CPU对内存的访问次数,缩短程序运行的时间。它可以存储8k字节的指令和数据

代码预取部件用于对代码做取入、排队分析、分解等译码的前期准备工作 指令译码部件用于对指令进行译码,把指令的含义转换成相应的内部控制总线

7

信号,指挥CPU的各部件协同工作。

浮点数部件用于完成浮点数据和双精度数据的运算

执行部件是CPU的核心部件,大部分指令所要求的操作都由该部件完成。执行部件可以完成一般的算术运算、逻辑运算及数据传送等任务。

段部件用于把指令指定的逻辑地址变换为线性地址,在变换过程中实现任务间的保护以及虚拟内存技术

分页部件把段部件输出的线性地址转换成物理地址,实现以少量内存模拟大容量内存的功能,提高内存的利用率。

3. 答: 80486是32位的微处理器,并且是由16位的微处理器发展而来的。为使已经在用户中流行的用于16位CPU的软件继续使用,又能够充分发挥32位CPU的优势,32位CPU都采用多种工作模式的方法来解决这个矛盾。 80486采用3种工作方式。 ? 实地址方式(REAL):80486采用实地址方式使自身退回到8086状态,相当于一个功能更强、速度更快的16位机。80486实地址方式的工作原理与8086基本相同,主要区别是80486能处理32位数据。 ? 保护方式(PROTECTED):采用保护方式可以充分发挥32位CPU的各项功能。在保护方式下,CPU可以访问232字节的物理存储空间,最大段长为232字节。 虚拟8086方式(VIRTUAL 8086):在部分发挥32位CPU功能的环境中,用32位机的代码去模拟16位机的程序。虚拟8086方式是一种既能有效利用保护功能,又能执行8086的代码的工作方式。CPU的工作过程与保护方式下的工作过程相同,但程序指定的逻辑地址与8086有相同的解释,即由逻辑地址向物理地址转换的过程是相同的。

4. 答: 可屏蔽中断信号INTR与非屏蔽中断信号NMI的区别:当IF(中断允许标志)

该位臵为1时,允许响应外部可屏蔽中断(INTR);该位臵为0时,禁止响应外部可屏蔽中断。IF不影响非屏蔽外部中断(NMI)和内部产生的中断。

5. 答: 流水线技术是一种将每条指令分解为多步,并让各步的操作同步进行,

从而实现几条指令并行处理的技术. 流水线技术分为5个步骤:指令预取PF、译码D1、译码D2、执行EX和写回WB.

预取指令PF部件一次可以从内部Cache取16字节的指令代码,送预取指

令队列等候执行。在16字节中平均有5条指令,这样就满足了译码部件的需要 译码操作分为D1和D2两个阶段,又叫做二级译码: D1是第一阶段,从

指令代码中分解出操作码进行译码,找出第一条微指令代码的入口地址送入控制ROM; D2是译码的第二阶段。在这一阶段,由微代码控制器根据D1译码结果产

生执行该指令的控制信号,并进行寻址方式的计算,即计算出存储器地址。

执行EX,即包括各种算术逻辑运算,还包括对Cache的访问和对寄存器

的修改等操作。

流水线的最后一个步骤写回WB是把结果写回到目的寄存器或目的存储

单元。

8

第四章习题答案

十一、 写出下列指令的源操作数和目的操作数的寻址方式。

1. MOV AL,AH ;寄存器寻址 2. MOV AL,TABLE[SI] ;寄存器相对寻址 3. MOV [SI][BP],CL ;基址变址寻址 4. AND AL,0FH ;立即数寻址 5. ROR AL,CL ;寄存器寻址 6. JNL NEXT ;程序地址相对寻址 7. MOV DI,12 ;立即数寻址 8. MOV [DI+1],BYTE PTR 12 ;基址相对寻址 9. JMP WORD PTR [BX] ;程序地址间接寻址 10.LOOP AGAIN ;程序地址相对寻址

十二、 问答题

1. 8086系统中,当对SS和SP寄存器的值进行修改时,有什么特殊规定?这样做的原因是什么?

答: 凡是遇到给SS寄存器赋值的传送指令时,系统会自动禁止外部中断,等到本条指令和下

条指令执行之后,又自动恢复对SS寄存器赋值前的中断开放情况。这样做是为了允许程序员连续用两条指令分别对SS和SP寄存器赋值,同时又防止堆栈空间变动过程中出现中断。

2. 用乘法指令时,特别要注意先判断用有符号数乘法指令还是用无符号数乘法指令,这是

为什么?

答: 用乘法指令时,特别要注意先判断用有符号数乘法指令还是用无符号数乘法指令,是因为在执行乘法运算时,要想使无符号数相乘得到正确的结果,有符号数相乘时,就得不到正确的结果;要想使有符号数相乘得到正确的结果,无符号数相乘时,就得不到正确的结果。 3.

设当前SS=2010H,SP=FE00H,BX=3457H,计算当前栈顶的地址为多少?当执行PUSH BX 指令后,栈顶地址和栈顶2个字节的内容分别是什么?

答: 当前栈顶的地址 2010H*16+FE00H=2FF00H;执行PUSH BX指令后,堆栈地址指针SP减2,则栈顶地址为2FEEDH;栈顶2个字节的内容为57H、34H。

十三、 编程练习

1. 串操作指令设计实现以下功能的程序段:首先将100H个数从2170H处搬到1000H处,

然后,从中检索相等于AL中字符的单元,并将此单元值换成空格符。

答: BUFF1 EQU,1000H

BUFF2 EQU,2170H

START: MOV SI,OFFSET BUFF2 LEA DI,BUFF1 MOV CX,100H CYCLE: MOV AL,[SI]

9

MOV [DI],AL INC SI INC DI LOOP CYCLE

ANOTHER:MOV DI,OFFSET BUFF1 MOV CX,100 CLD AGE: SCASB DEC CX JZ FIN JNZ AGE JMP OVER FIN: MOV [DI],20H CMP CX,0 JNZ AGE OVER: RET

2. 用循环控制指令设计程序段,从60H 个元素中寻找一个最大值,结果放在AL中。 答: MOV SI, OFFSET DATA1 ; 将数据起始地址送SI MOV CX, 5FH ; 有60H-1次循环

MOV AL, [SI] ; 将第一个元素放AL中 COMPARE: INC SI CMP AL, [SI] JL XCHMAX JMP NEXT XCHMAX: MOV AL, [SI] NEXT: LOOP COMPARE

3. 在DS段中有一个从TABLE开始的由160个字符组成的链表,设计一个程序,实现对

此表进行搜索,找到第一个非0元素后,将此单元和下一单元清0。

答: MOV CX, SEG TABLE

MOV DS, CX ;将段地址送DS MOV SI, OFFSET TABLE ;表偏移量送SI MOV CX, 160 ;字节数 XOR AL, AL NEXT: CMP AL, [SI] JNE EXIT1 INC SI LOOP NEXT EXIT1: MOV [SI], AL INC SI

10

MOV [SI], AL

十四、 程序改错

1. 答: 将上面程序中的“REPE CMPSW 改为 REPE CMPSB”、“SUB DI, 2 改为 DEC DI”

即可,其余不变。

2. 答: REPNE SCASB 指令的作用将AL中的字节与[ES:DI]中的字节比较,不相等则DI

加或减1后继续比较。这样可以在[ES:DI]起始的内存中检索到字节AL,一旦找到则操作结束,一直未找到则重复CX次。

第五章习题答案

十五、 问答题

1. 断点中断是指怎样一种中断?在程序调试中有什么作用? 断点中断指令有什么特点?设置断点过程对应了一种什么操作?这种操作会产生什么运行结果?

答: 断点中断即中断类型3,一般该中断处理程序进行程序调试,主要功能是显示一些寄存器的值,并给出一些重要的信息。在程序调试中,断点中断就是从一个较长的程序中分离出一个较短的存在问题的程序段。断点中断的特点是指令占一个字节。设置断点过程对应int 3替换那条指令,在中断处理程序中再恢复该被替换的指令,并修改堆栈中的断点地址为中断处的地址而不是下一条指令地址。这种操作使断点中断不会影响程序的功能。

2. 用普通运算指令执行BCD码运算时,为什么要进行十进制调整?具体讲,在进行BCD码的加、减、乘、除运算时,程序段的什么位置必须加上十进制调整指令?

答: 在BCD码中,只允许0?/FONT>9这10个数字出现,但有时候的运算结果会超过此范围,因此要进行十进制调整。进行加、件或乘法运算时,调整指令必须紧跟在算术指令后面,在进行除法运算时,调整指令放在除法指令之前。 3. 普通移位指令(带CF的和不带CF的两类)在执行操作时,有什么差别?在编制乘法程序时,为什么常用移位指令来代替乘除法指令?试编写一个程序段,实现将BX中的数除以10,结果仍放在BX中。

答: 带CF和不带CF的普通移位指令的差异:前者用于算术运算,后者用于逻辑运算。程序段: MOV CL,0AH

MOV AX,BX IDIV CL

MOV BX,AX 十六、 程序改错及编程

1.下面的程序段将ASCII码的空格字符填满100个字节的字符表。阅读这一程序,画出流程,并说明使用CLD指令和REP STOSB指令的作用,再指出REP STOSB指令执行时和那几个寄存器的设置有关?

MOV CX, SEG TABLE ; TABLE为字节表表头 MOV ES, CX

MOV DI, OFFSET TABLE ; DI指向字节表 MOV AL, ' '

MOV CX, 64H ; 字节数

CALL FILLM ; 调用数子程序

11

... ...

FILLM: JCXZ EXIT ; CX为0则退出 PUSH DI ; 保存寄存器 PUSH CX CLD

REP STOSB ; 方向标志清零 POP CX ; 重复填数 POP DI EXIT: RET

答: CLD指令作用:方向标志清0;REP STOSB指令作用:重复CX次将AL中的字节填入[ES:DI]为起始的表内,DI增量、减量根据DF确定:DF=0,DI每次增量;DF=1,DI每次减量。STOSB指令执时,与AX、ES、DI寄存器和Flag的DF位设置有关。流程图如下:

2. 下程序将一个存储块的内容复制到另一个存储快,进入存储段时,SI中为源区起始地址的偏移量,DI中为目的区起始地址的偏移量,CX中为复制的字节数。阅读程序并说明具体的REP MOCSB指令使用与那些寄存器有关?

PUSH DI ; 保存寄存器 PUSH SI PUSH CX

CMP DI, SI ; 看源区和目的区的地址哪个高 JBE LOWER ; 如目的区地址底,则转移

STD ; 如目的区地址高,则设方向标志为1 ADD SI, CX ; 从最后一个字节开始复制 DEC SI ; 调整源区地址

12

ADD DI, CX

DEC DI ; 调整目的区地址 JMP MOVEM

LOWER: CLD ; 从第一个字节开始复制 MOVEM: REP MOVSB POP CX POP SI POP DI RET

答: REP MOVSB 的作用是重复CX次将[DS:SI]中字节传送到[ES:DI]中。SI、DI加或减1由DF确定,DF=0,加。REP使CX减1,到0后结束传送。所以 REP MOVSB 指令与CX、SI、DI、ES、DS寄存器和Flag的DF位设置有关。

3. 下面的程序实现两个32位带符号数的乘法,其中调用了题3.33中的非符号数相乘的程序MUL64,结果放在DX、CX、BX、AX四个寄存器中,进入程序时,DX、AX中为被乘数,CX、BX中为乘数。读懂程序后再设计一个16位带符号数和32位带符号数相乘程序。

MULS64: MOV [1000], 0 ; 1000单元作为负数标志 CMP DX, 0 ; 乘数为负数吗? JNS CHKK ; 否,则转CHKK NOT AX ; 是,则取补码 NOT DX ADD AX, 1 ADC DX, 0

NOT [1000] ; 负数标志置1 CHKK: CMP CX, 0 ; 乘数为负数吗? JNS GOMUL ; 否,则转GOMUL NOT BX ; 是,则取补码 NOT CX ADD BX, 1 ADC CX, 0

NOT [1000] ; 将负数标志取反 ; --------------------------------------------------------

GONUL: CALL MUL64 ; 调用非符号数乘法程序 CMP [1000], 0 ; 结果为正数吗? JZ EXIIT ; 是正数,则转移 NOT AX ; 是负数,则取补码 NOT BX NOT CX NOT DX ADD AX, 1 ADC BX, 0 ADC CX, 0

13

ADC DX, 0 EXIIT: RET

答: (DX、AX)*CX->DX、CX、AX,为有符号数

MULS48: MOV [1000], 0 ; 1000单元作为负数标志 CMP DX, 0 ; 乘数为负数吗? JNS CHKK ; 否,则转CHKK NOT AX ; 是,则取补码 NOT DX ADD AX, 1 ADC DX, 0

NOT [1000] ; 负数标志置1 CHKK: CMP CX, 0 ; 乘数为负数吗? JNS GOMUL ; 否,则转GOMUL NOT CX ; 是,则取补码 ADD CX, 1

NOT [1000] ; 将负数标志取反

GONUL: CALL MUL48 ; 调用32位*16位无符号数乘法程序 CMP [1000], 0 ; 结果为正数吗? JZ EXIT0 ; 是正数,则转移 NOT AX ; 是负数,则取补码 NOT CX NOT DX ADD AX, 1 ADC CX, 0 ADC DX, 0 EXIT0: RET

第六章习题答案

十七、 单选题 存储单元是指______C____。

A、存放一个二进制信息位的存贮元 B、存放一个机器字的所有存贮元集合 C、存放一个字节的所有存贮元集合 D、存放两个字节的所有存贮元集合 计算机系统中的存贮器系统是指_______D___。

A、RAM存贮器 B、ROM存贮器

C、主存贮器 D、主存贮器和外存贮器 主存贮器和CPU之间增加cache的目的是_____A_____。

A、解决CPU和主存之间的速度匹配问题 B、扩大主存贮器容量

C、扩大CPU中通用寄存器的数量

D、既扩大主存贮器容量,又扩大CPU中通用寄存器的数量

14

存储器是计算机系统的记忆设备,它主要用来______C____。

A、存放数据 B、存放程序 C、存放数据和程序 D、存放微程序 采用虚拟存贮器的主要目的是___B___。 A、提高主存贮器的存取速度

B、扩大主存贮器的存贮空间,并能进行自动管理和调度 C、提高外存贮器的存取速度 D、扩大外存贮器的存贮空间

静态存储单元是一个双稳态触发器,每个触发器储存一个_____A_____进制位。 A、二 B、八 C、十六 D、十

____C______读写选择线分开,并且要另加刷新电路。这样,存储器和外加电路的连接增加了,外加电路本身也增加了。

A、4管动态RAM B、单管动态RAM C、3管动态RAM D、静态RAM 段是用户定义的虚拟地址空间的一部分。段的长度是______A____。

A、可变的 B、不可变,长为4k C、不可变,长为4M D、不可变,长为4G 每个段由3个参数进行定义,其中不是段的参数的是____B______。

A、段基地址 B、线性地址 C、段界限 D、段属性 通过在线性地址空间的页与物理地址空间的页之间建立的映射,分页管理实现

___C_______的转换。

A、物理地址到线性地址 B、逻辑地址到线性地址 C、线性地址到物理地址 D、线性地址到逻辑地址 十八、 判断题

2. 外存储器直接参与计算机的运算,它存放CPU当前不使用的程序和数据。 ( F) 对存储器的读或写称为访问。对ROM和RAM的访问都可以按地址直接进行,而和访问

顺序的先后无关,即访问是随机的。 (T ) 存储器从接收到地址,到完成读出或者写入数据的时间称为存取周期。 ( T )

地址译码有两种方式:一种是单译码方式或称字结构,适用于小容量存储器;另一种是双译码方式,或称复合译码结构。 ( T) 主存由大容量的DRAM芯片构成,在主存与CPU之间使用一个由SRAM构成的容量较大的高速缓冲存储器,于是形成了多级存储结构。 (F ) 在段式存储系统中,可按程序本身的内在逻辑关系,将用户程序划分成若干个段。( T) 保护级是给段赋予一个保护权限数,权限大的段可访问权限小的段内信息,反之就是非法行为。 (T )

段描述符包括如下3个参数:段基地址、段界限和段属性,段描述符可分为存储段描述符、系统段描述符、门描述符(控制描述符)3类。 ( T )

由描述符组成的线性表称为描述符表。在80486中有3种类型的描述符表:全局描述符表GDT、局部描述符表LDT和中断描述符表IDT。 ( T)

在分段的情况下,用户使用的地址是逻辑地址,即一个16位的段偏移量和一个32位的段选择符。 (F ) 特权级的段中的数据只能由同级或高级特权中运行的程序使用;某一特权级的代码段或过

15

指出程序中所用指令的功能 答: LEA 字符串输入指令 CMPSB 串比较指令 JMP 无条件跳转指令 JZ 相等跳转指令 何为DOS 功能调用。

答:简单的说DOS功能调用就是通过软件的中断调用,在调用之前,应该知道需要调用什么功能,相应的功能有对应的DOS功能号,接下来把功能号写入AH,然后调用DOS中断,实现所需功能。例如,显示功能调用: MOV AH,02H INT 21H 试编写源程序。 答:见参考原程序。

简述标志寄存器各位代表的含义。 答:略。 实验五

(11) 简述控制字、方式字、状态字之间的关系。

答:方式字决定芯片将要实行的工作方式;状态字表示芯片已存在的工作方式;而方式字、状态字都要通过控制字来实现。

(12) 8255A有几个端口?每个端口有哪几种工作方式?这几种工作方式各自有什么特

点?

答:8255A有A口、B口、C口和控制端口4个端口。A口可以工作在方式0、方式1、方式2,B口可以工作在方式0、方式1,C口可以工作在方式0。方式1为基本输入输出方式,不需要联络信号;方式1是选通输入输出方式;方式2为双向传送方式,可以在同一个端口分时进行数据的输入或输出。

(3) 编写源程序。

答:见参考原程序。 实验六

简述8253的6种工作方式的特点和差别 答:8253有六种工作模式,其中: 方式0:记数结束中断

方式1:可编程的单稳态工作方式。 方式2:频率发生器。 方式3:方波频率发生器。

方式4:软件触发即写入计数值触发计数器工作。 方式5:硬件触发工作方式。 实验七

简述8259A各引脚的功能。

31

答:CS

片选信号 写

WR

RD 读

D7~D0

数据线 级联总线

主从定义/缓冲器方向

CAS0~CAS3 SP/EN

INT

中断申请引脚 外设中断请求引脚

中断响应引脚 地址线 电源+5V

IR7~IR0 INTA

A0

VCC

电源地

什么是中断? 答:所谓中断,是指CPU在正常运行程序时,由于外部/内部事件或由软件的预先安排引起CPU中断正在运行的程序,而转到为内部/外部事件或为预先安排的事件服务的程序中去。

GND

32

本文来源:https://www.bwwdw.com/article/tubd.html

Top