《微型计算机原理与接口技术》(第三版)习题答案_第1页
《微型计算机原理与接口技术》(第三版)习题答案_第2页
《微型计算机原理与接口技术》(第三版)习题答案_第3页
《微型计算机原理与接口技术》(第三版)习题答案_第4页
《微型计算机原理与接口技术》(第三版)习题答案_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《微机原理与接口技术》习题解答

习题1

1.1冯•诺依曼型计算机的设计方案有哪些特点?

【解答】冯•诺依曼型计算机的设计方案是“存储程序”和“程序控制”,有以下5方面特点:

(1)用二进制数表示数据和指令;

(2)指令和数据存储在内部存储器中,按顺序自动依次执行指令;

(3)由运算器、控制器、存储器、输入设备和输出设备组成基本硬件系统:

(4)由控制器来控制程序和数据的存取及程序的执行;

(5)以运算器为核心。

1.2微处理器和微型计算机的发展经历了哪些阶段?各典型芯片具备哪些特点?

【解答】经历了6代演变,各典型芯片的特点如表1-1所示。

表1-1微处理器的发展及典型芯片的特点

发展时代类别典型芯片及性能特点

Intel4004集成2300多个晶体管,主频108KHz,寻址640Byte,指令系统简

第一代4、8位低档

单;Intel8008采用PMOS工艺,集成3500晶体管,基本指令48条,主频

(1971—1973年)微处理器

500KHz。

第二代8位中高档Intel8080采用NMOS工艺,集成6000晶体管,主频2MHz,指令系统较完

(1974-1977年)微处理器善,寻址能力增强,运算速度提高了一个数量级。

第三代16位Intel8086采用HMOS工艺,集成29000晶体管,主频5MHz/8MHz/10MHz,

(1978-1984年)微处理器寻址1MB。Intel80286集成度达到13.4万晶体管,主频20MHz。

Intel80386集成27.5万个晶体管,主频33MHz,4GB物理寻址。有分段存

第四代32位

储和分页存储部件,可管理64TB虚拟存储空间。Intel80486集成120万个

(1985-1992年)微处理器

晶体管,包含浮点运算部件和8KB的一级高速缓冲存储器Cache。

IntelPentiumPentiumPro、PentiumMMX^Pentium0、PentiumIII、Pentium

第五代超级32位

4微处理器等,采用新式处理器结构,数据加密、视频压缩和对等网络等方

(1993-1999年)微处理器

面性能有较大幅度提高。

64位由Intel公司与HP公司联手开发的Merced采用全新的IA-64结构设计,是

第六代

微处理器一种采用长指令字、指令预测、分支消除、推理装入和其他一些先进技术的

(2000年以后)

Merced全新结构微处理器。

1.3微型计算机的特点和主要性能指标有那些?

【解答】除具有运算速度快、计算精度高、有记忆能力和逻辑判断能力、可自动连续工作等基本特

点以外,还具有功能强、可靠性高、价格低廉、结构灵活、适应性强、体积小、重量轻、功耗低、使用

和维护方便等。

微型计算机的性能指标与系统结构、指令系统、硬件组成、外部设备以及软件配备等有关。常用的

微型计算机性能指标主要有:字长、主频、内存容量、指令数、基本指令执行时间、可靠性、兼容性、

性能价格比等。

1.4常见的微型计算机硬件结构由哪些部分组成?各部分的主要功能和特点是什么?

【解答】微型计算机硬件一般由微处理器、内存储器、外存储器、系统总线、接口电路、输入/输出

设备等部件组成。

主要组成部件的功能和特点分析如下:

(1)微处理器:是微型计算机的核心部件,由运算单元ALU、控制单元、寄存器组以及总线接口

部件等组成,其功能是负责统一协调、管理和控制系统中的各个部件有机地工作。

(2)内存储器:用来存放计算机工作过程中需要的操作数据和程序。可分为随机存储器RAM和只

读存储器ROM。RAM存放当前参与运行的各种程序和数据,特点是信息可读可写,存取方便,但信息

断电后会丢失;ROM用于存放各种固定的程序和数据,特点是信息固定不变,关机后原存储的信息不

会丢失。

(3)系统总线:是CPU与其它部件之间传送数据、地址和控制信息的公共通道。可分成数据总线

DB、地址总线AB、控制总线CB。

(4)输入/输出接口电路:完成微型计算机与外部设备之间的信息交换。由寄存器组、专用存储器

和控制电路等组成。

(5)主机板:由CPU插座、芯片组、内存插槽、系统BIOS、CMOS、总线扩展槽、串行/并行接

口、各种跳线和一些辅助电路等硬件组成。

(6)外存储器:使用最多的是磁盘存储器(软盘、硬盘)和光盘存储器。外存储器容量大,保存

的信息不会丢失。

(7)输入/输入设备:是微型计算机系统与外部进行通信联系的主要装置。常用的有键盘、鼠标、

显示器、打印机和扫描仪等。

1.5什么是微型计算机的系统总线?说明数据总线、地址总线、控制总线各自的作用。

【解答】系统总线是CPU与其它部件之间传送数据、地址和控制信息的公共通道。

(1)数据总线:用来传送数据,主要实现CPU与内存储器或I/O设备之间、内存储器与I/O设备

或外存储器之间的数据传送。

(2)地址总线:用来传送地址。主要实现从CPU送地址至内存储器和I/O设备,或从外存储器传

送地址至内存储器等。

(3)控制总线:用于传送控制信号、时序信号和状态信息等。

1.6什么是系统的主机板?由哪些部件组成?

【解答】CPU、RAM、ROM、I/O接口电路以及系统总线组成的计算机装置称为“主机”,主机的

主体则是主机板。主机板上主要有CPU插座、芯片组、内存插槽、系统BIOS、CMOS、总线扩展槽、

串行/并行接口、各种跳线和一些辅助电路等硬件。

1.7计算机中有哪些常用的数制和码制?如何进行数制之间的转换?

【解答】数值数据经常用二进制、十进制、八进制和十六进制;字符数据使用ASCII码;表示十进

制数字用BCD码。

(1)十进制到二进制整数部分连续除以2后“倒取余”,小数部分连续乘以2后“正取整”:

(2)二进制到十进制将二进制数按权展开即可。

(3)二进制到八进制将3位二进制一组对应1位八进制数码。

(4)八进制到二进制将1位八进制数码对应3位二进制数码。

十六进制与二进制间转换与八进制与二进制间转换类似,只是比例关系为1位十六进制数码对应4

位二进制数码。

1.8将下列十进制数分别转化为二进制数、十六进制数和压缩BCD码。

(1)15.32(2)325.16(3)68.31(4)214.126

【解答】:

(1)15.32=1111.0101B=F.5H=000l0l01.00ll0010BCDo

(2)325.16=10000101.0001B=85.1H=001100100101.00010110BCD«

(3)68.31=1000100.0100B=64.4H=01101000.00110001BCDo

(4)214.126=11010110.001OB=D6.2H=001000010100.00010010011OBCD«

1.9将下列二进制数分别转化为十进制数、八进制数和十六进制数。

(1)10010101(2)11001010(3)10111.1101(4)111001.0101

【解答】

(1)11001010=202=312Q=CAH

(2)10111.1101=23.8125=27.64Q=17.DH

(3)111001.0101=57.625=71.24Q=39.5H

1.10将下列十六进制数分别转化为二进制数、十进制数。

(1)FAH(2)12B8H(3)5A8.62H(4)2DF.2H

【解答】

(1)FAH=I1111010B=250

(2)12B8H=0001001010111000B=4792

(3)5A8.62H=010110101000.01100010B=1448.3828125

(4)2DF.2H=001011011111.0010B=735.0078125

1.11写出下列带符号十进制数的原码、反码、补码表示(采用8位二进制数).

(1)+38(2)+82(3)-57(4)-115

【解答】

(1)X=+38,[X]tt=00100110B

(2)X=+82,[X]tt=01010010B

(3)X=-57,IX]w.=110001UB

(4)X=-115,[X]»=10001101B

1.12写出下列二进制数的补码表示。

(1)+1010100(2)+1101101(3)-0110010(4)-1001110

【解答】

(1)X=+1010100,[X]f|.=01010100B

(2)X=+1101101,[X]»=0110110IB

(3)X=-0110010,[X]«.=11001HOB

(4)X=-1001110,[X]tt=10110010B

1.13已知下列补码求出其真值。

(1)87H(2)3DH(3)0B62H(4)3CF2H

【解答】

(1)[X]»=87H=1000011IB,符号位为1,X是负数,[X]E=11111001B,X=-79H

(2)[X]tt=3DH=00111101B,符号位为0,X是正数,X=3DH

(3)[X]»=0B62H=0000101101100010B,符号位为0,X是正数,X=+B62H

(4)[X]tt=3CF2H=0011110011110010B,符号位为0,X是正数,X=3CF2H

1.14按照字符所对应的ASCII码表示,查表写出下列字符的ASCII码。

A、g、W、*、ESC,LF、CR、%

【解答】

A的ASCII码为41H;G的ASCH码为47H;W的ASCII码为57H;*的ASCII码为2AH;ESC

的ASCII码为1BH;LF的ASCII码为OAH;CR的ASCII码为DH;%的ASCII码为25H»

1.15把下列英文单词转换成ASCII编码的字符串。

(1)How(2)Great(3)Water(4)Good

【解答】

(1)How的ASCII码为486F77H;

(2)Great的ASCII码为4772656174H:

(3)Water的ASCH码为5761746572H;

(4)Good的ASCII码为476F6F64H。

习题2

2.18086CPU具有20条地址线,可直接寻址1MB容量的内存空间,在访问I/O端口时,

使用地址线16条,最多可寻址64K个I/O端口。

2.28086CPU的内部结构有何特点?由哪两部分组成?它们的主要功能是什么?

【解答】8086微处理器是典型的16位微处理器,HMOS工艺制造,集成了2.9万只晶体管,使用

单一的+5V电源,有16根数据线和20根地址线;通过其16位的内部数据通路与设置指令预取队列的

流水线结构结合起来而获得较高的性能。

8086微处理器内部安排了两个逻辑单元,即执行部件EU和总线接口部件BIU。EU主要负责指令

译码、执行和数据运算,包括计算有效地址;BIU主要完成计算物理地址、从内存中取指令、实现指令

规定的读/写存储器或外部设备等信息传输类操作。

2.38086CPU中的指令队列的作用是预取指令,其长度是上字节。

2.48086CPU内部寄存器有哪几种?各自的特点和作用是什么?

【解答】CPU有14个内部寄存器,可分为3大类:通用寄存器、控制寄存器和段寄存器。

通用寄存器是-一种面向寄存器的体系结构,操作数可以直接存放在这些寄存器中,既可减少访问存

储器的次数,又可缩短程序的长度,提高了数据处理速度,占用内存空间少。

控制寄存器包括指令指针寄存器IP和标志寄存器FLAG:IP用来指示当前指令在代码段的偏移位

置;FLAG用于反映指令执行结果或控制指令执行的形式。

为了实现寻址1MB存储器空间,8086CPU将IMB的存储空间分成若干个逻辑段进行管理,4个

16位的段寄存器来存放每一个逻辑段的段起始地址。

2.58086的标志寄存器分为6个状态标志位和3个控制标志位,它们各自的含义和作

用是什么?

【解答】标志寄存器各标志位的含义和作用如下表:

表2-1标志寄存器FLAG中标志位的含义和作用

标志位含义作用

CF=1,指令执行结果在最高位上产生一个进位或借位;CF=0,则无进

CF进位标志

位或借位产生

PF奇偶标志PF=1,结果低8位含偶数个1;PF=O,表示结果低8位含奇数个1

AF=1,运算结果的低4位产生了一个进位或借位;AF=0,则无此进位

AF辅助进位标志

或借位

ZF零标志ZF=1,运算结果为零;ZF=0,则运算结果不为零

SF符号标志SF=1,运算结果为负数:SF=O,则结果为正数

OF溢出标志OF=1,带符号数在进行运算时产生了溢出;OF=0,则无溢出

TF陷阱标志TF=1,8086CPU处于单步工作方式;TF=0,8086CPU正常执行程序

IF=1,允许CPU接受外部从INTR引脚上发来的可屏蔽中断请求信号;

IF中断允许标志

IF=(),则禁止接受可屏蔽中断请求

DF=1,字符串操作指令按递减的顺序对字符串进行处理;DF=0,字符

DF方向标志

串操作指令按递增的顺序进行处理

2.6已知堆栈段寄存器(SS)=2400H,堆栈指针(SP)=1200H,计算该堆栈栈顶的实际地址,并

画出堆栈示意图。

【解答】(SS)=2400H,(SP)=1200H;PA=(SS)X10H+(SP)=2400HX1OH+1200H=25200H»

1

SP

栈底

1

图2-1堆栈示意图

2.78086的存储器采用奇偶存储体结构,数据在内存中的存放规定是低字节存放在低地址中,

高字节存放在高地址中,以低地址为字的地址,规则字是指低字节地址为偶地址的字,非规则字是指低

字节的地址为奇地址的字。

2.8解释逻辑地址、偏移地址、有效地址、物理地址的含义,8086存储器的物理地址是如何形成

的?怎样进行计算?

【解答】逻辑地址:表示为段地址:偏移地址,书写程序时用到,一个存储单元可对应出多个逻辑

地址;

偏移地址:是某一存储单元距离所在逻辑段的开始地址的字节个数。

有效地址:是指令中计算出的要访问的存储单元的偏移地址。

物理地址:是CPU访问存储器时用到的20位地址,是存储单元的唯一的编号。

物理地址计算公式:物理地址=段地址X10H+有效地址(或偏移地址)

2.98086系统中的存储器分为几个逻辑段?各段之间的关系如何?每个段寄存器的作用是什么?

【解答】8086CPU将1MB的存储空间分成逻辑段来进行管理:每个逻辑段最小为16B,所以最多

可分成64K个段;每个逻辑段最大为64KB,最少可分成16个逻辑段。各段的起始位置由程序员指出,

可以彼此分离,也可以首尾相连、重叠或部分重叠。

4个16位的段寄存器用来存放每一个逻辑段的段起始地址:CS中为代码段的起始地址;DS中为数

据段的起始地址;SS中为堆栈段的起始地址;ES中为附加段的起始地址。

2.10I/O端口有哪两种编址方式,各自的优缺点是什么?

【解答】I/O端口有两种编址方式:统一编址和独立编址。

统一编址方式是将I/O端口与内存单元统一起来进行编号,即包括在1MB的存储器空间中,看作

存储器单元,每个端口占用一个存储单元地址。该方式主要优点是不需要专门的I/O指令,对I/O端口

操作的指令类型多;缺点是端口要占用部分存储器的地址空间,不容易区分是访问存储器还是外部设备。

独立编址的端口单独构成I/O地址空间,不占用存储器地址。优点是地址空间独立,控制电路和地

址译码电路简单,采用专用的I/O指令,使得端口操作的指令在形式上与存储器操作指令有明显区别,

程序容易阅读;缺点是指令类别少,一般只能进行传送操作。

2.118086的最大工作模式和最小各种模式的主要区别是什么?如何进行控制?

【解答】两种模式的主要区别是:

8086工作在最小模式时,系统只有一个微处理器,且系统所有的控制信号全部由8086CPU提供:

在最大模式时,系统由多个微处理器/协处理器构成的多机系统,控制信号通过总线控制器产生,且系统

资源由各处理器共享。

8086CPU工作在哪种模式下通过CPU的第33条引脚MN/而来控制:MN/MX=1,系统就处于最

小工作模式;MN/MX=0,系统处于最大工作模式。

2.12在内存有一个由20个字节组成的数据区,其起始地址为1100H:0020H。计算出该数据区在内

存的首末单元的实际地址。

【解答】逻辑地址I100H:0020H对应的物理地址为PA=1100HX10H+0020H=11020H,即该数据

区在内存中的首单元的物理地址为11020H:因为存储空间中每个字节单元对应一个地址,所以20个字

节对应20个地址,则该数据区在内存中的末单元的物理地址PA=11020H+20D=11020H+14H=

U034Ho

2.13已知两个16位的字数据268AH和357EH,它们在8086存储器中的地址分别为00120H和

00124H,试画出它们的存储示意图。

【解答】存储示意图参见图2-2。

8AH00120H50H00510H

26H00121H65H00511H

00122H6EH00512H

00123H74H00513H

7EH00124H69H00514H

35H00125H75H00515H

6DH00516H

图2-2数据的存储示意图2-3字符的存储示意

2.14找出字符串“Pentium”的ASCII码,将它们依次存入从00510H开始的字节单元中,画出它

们存放的内存单元示意图。

【解答】存储本意图参见图2-3。

2.15在内存中保存有一个程序段,其位置为(CS)=33A0H,(IP)=0130H,当计算机执行该程序

段指令时,分析实际启动的物理地址是多少。

【解答】逻辑地址(CS):(IP)=33A0H:0130H,计算出对应物理地址PA=(CS)X10H+(IP)

=33A0HX10H+0130H=33B30H

2.16什么是总线周期?8086CPU的读/写总线周期各包含多少个时钟周期?什么情况下需要插入

等待周期Tw,什么情况下会出现空闲状态Ti?

【解答】8086CPU经外部总线对存储器或I/O端口进行一次信息的输入或输出过程所需要的时间,

称为总线周期。8086CPU的读/写总线周期通常包括Ti、T2、T3、T4状态4个时钟周期。

在高速的CPU与慢速的存储器或I/O接口交换信息时,为了防止丢失数据,会由存储器或外设通过

READY信号线,在总线周期的T3和T4之间插入1个或多个必要的等待状态Tw,用来进行必要的时间

补偿。

在BIU不执行任何操作的两个总线周期之间会出现空闲状态

2.1780286CPU的内部结构与8086相比,有哪些增加的部件?其主要特点和功能是什么?

【解答】80286CPU的可编程寄存器在8086寄存器结构的基础上,增加了一个16位的机器状态字

寄存器MSWo而且为适应80286性能的提高,在8086的状态标志寄存器F中,又增加使用了3个位,

即IOPL—I/O特权层标志(占用12、13位)和NT一嵌套任务标志(占用14位)。NT标志位表示当前

执行的任务嵌套于另一任务中,IOPL用来定义当前任务的I/O特权层。

2.18简述Pentium微处理器的内部组成结构和主要部件的功能,Pentium微处理器的主要特点有哪

些?

【解答】Pentium微处理器的主要部件包括总线接口部件、指令高速缓存器、数据高速缓存器、指

令预取部件与转移目标缓冲器、寄存器组、指令译码部件、具有两条流水线的整数处理部件(U流水线

和V流水线)、以及浮点处理部件FPU等。

各主要部件的功能分析如下:

(I)整数处理部件:U流水线和V流水线都可以执行整数指令,U流水线还可执行浮点指令。因

此能够在每个时钟周期内同时执行两条整数指令。

(2)浮点处理部件FPU:高度流水线化的浮点操作与整数流水线集成在一起。微处理器内部流水

线进一步分割成若干个小而快的级段。

(3)独立的数据和指令高速缓存Cache:两个独立的8KB指令和8KB数据Cache可扩展到12KB,

允许同时存取,内部数据传输效率更高。两个Cache采用双路相关联的结构,每路128个高速缓存行,

每行可存放32B。数据高速缓存两端口对应U、V流水线。

(4)指令集与指令预取:指令预取缓冲器顺序地处理指令地址,直到它取到一条分支指令,此时

存放有关分支历史信息的分支目标缓冲器BTB将对预取到的分支指令是否导致分支进行预测。

(5)分支预测:指令预取处理中增加了分支预测逻辑,提供分支目标缓冲器来预测程序转移。

Pentium微处理器的主要特点如下:

(1)采用超标量双流水线结构;

(2)采用两个彼此独立的高速缓冲存储器;

(3)采用全新设计的增强型浮点运算器(FPU);

(4)可工作在实地址方式、保护方式、虚拟8086方式以及SMM系统管理方式;

(5)常用指令进行了固化及微代码改进,一些常用的指令用硬件实现。

2.19什么是虚拟存储技术?该技术的主要优点有那些?

【解答】虚拟存储技术是一种存储管理技术,采用硬件、软件相结合的方法,由系统自动分批将程

序调入内存,不断地用新的程序段来覆盖内存中暂时不用的老程序段。

虚拟存储技术的主要优点有:(1)扩大了程序可访问的存储空间;(2)便于实施多任务的保护和隔

离;(3)便于操作系统实现内存管理。

2.20简要分析Pentium系列微处理器的4种工作方式具备的特点。

【解答】

(1)实地址方式:系统加电或者复位时进入实地址方式,使用16位80X86的寻址方式、存储器管

理和中断管理;使用20位地址寻址1MB空间,可用32位寄存器执行大多数指令。

(2)保护方式:支持多任务运行环境,对任务进行隔离和保护,进行虚拟存储管理能够充分发挥

Pentium微处理器的优良性能。

(3)虚拟8086方式:是保护模式下某个任务的工作方式,允许运行多个8086程序,使用8086的

寻址方式,每个任务使用1MB的内存空间。

(4)系统管理方式:主要用于电源管理,可使处理器和外设部件进入“休眠”,在有键盘按下或鼠

标移动时“唤醒”系统使之继续工作;利用SMM可以实现软件关机。

习题3

3.1简要分析8086的指令格式由哪些部分组成,什么是操作码?什么是操作数?寻址和寻址方式

的含义是什么?8086指令系统有哪些寻址方式?

【解答】8086的指令格式由操作码和操作数字段组成。

操作码:要完成的操作。

操作数:参与操作的对象。

寻址:寻找操作数或操作数地址的过程。

寻址方式:指令中给出的找到操作数或操作数地址采用的方式。

8086指令系统的寻址方式主要有立即数寻址、寄存器寻址、存储器寻址和I/O端口寻址。其中,存

储器寻址可进一步分为直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址、相对基址变址寻

址;I/O端口指令IN和OUT使用的端口寻址方式有直接寻址和间接寻址。

3.2设①S)=2000H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(BX)=0100H,(BP)=0010H,数

据变量VAL的偏移地址为0050H,请指出下列指令的源操作数字段是什么寻址方式?它的物理地址是

多少?

(1)MOVAX,21H(2)MOVAX,BX(3)MOVAX,[1000H]

(4)MOVAX,VAL(5)MOVAX,[BX](6)MOVAX,ES:[BX]

(7)MOVAX,[BP](8)MOVAX,[SI](9)MOVAX,[BX+10]

(10)MOVAX,VAL[BX](11)MOVAX,[BX](SI](12)MOVAX,VAL[BX][SI]

【解答】

(1)MOVAX,21H

立即寻址,源操作数直接放在指令中

(2)MOVAX,BX

寄存器寻址,源操作数放在寄存器BX中

(3)MOVAX,[1000H]

直接寻址,EA=1000H,PA=(DS)X1OH+EA=2000HX1OH+1000H=21000H

(4)MOVAX,VAL

直接寻址,EA=[VAL]=0050H,PA=(DS)X10H+EA=2000HX10H+0050H=20050H

(5)MOVAX,[BX]

寄存器间接寻址,EA=(BX)=0100H,PA=(DS)X10H+EA=2000HX10H+0100H=20100H

(6)MOVAX,ES:[BX]

寄存器间接寻址,EA=(BX)=O1OQH,PA=(ES)X10H+EA=2100HX10H+0100H=21100H

(7)MOVAX,[BP]

寄存器间接寻址,EA=(BP)=0010H,PA=(SS)X10H+EA=1500HX10H+0010H=15010H

(8)MOVAX,[SI]

寄存器间接寻址,EA=(SI)=00A0H,PA=(DS)X10H+EA=2000HX10H+00A0H=200AOH

(9)MOVAX,[BX+10]

相对寄存器寻址,EA=(BX)+10D=0100H+000AH=010AH,PA=(DS)X10H+EA=2000H

X10H+010AH=2010AH

(10)MOVAX,VAL[BX]

相对寄存器寻址,EA=(BX)+[VAL]=01OOH+0050H=0150H,PA=(DS)X10H+EA=2000H

X10H+0150H=20150H

(11)MOVAX,[BX][SI]

基址变址寻址,EA=(BX)+(SI)=0100H+00A0H=01A0H,PA=(DS)X10H+EA=2000H

X10H+01A0H=201A0H

(12)MOVAX,VAL[BX][SI]

相对基址变址寻址,EA=(BX)+(SI)+[VAL]=0100H+00A0H+0050H=01F0H,PA=(DS)

X10H+EA=2000HX10H+01F0H=201F0H

3.3给定寄存器及存储单元的内容为:(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100)=32H,

(20101)=51H,(20102)=26H,(20103)=83H,(21200)=1AH,(21201)=B6H,(21202)=DIH,(21203)

=29Ho试说明下列各条指令执行完后,AX寄存器中保存的内容是什么。

(1)MOVAX,1200H(2)MOVAX,BX(3)MOVAX,[1200H]

(4)MOVAX,[BX](5)MOVAX,1100H[BX](6)MOVAX,[BX][SI]

【解答】

(1)MOVAX,1200H;执行后,(AX)=1200H

(2)MOVAX,BX;执行后,(AX)=(BX)=0100H

(3)MOVAX,[1200H]

直接寻址,EA=[VAL]=1200H,PA=(DS)X1OH+EA=2000HXIOH+1200H=21200H,执行

后,(AX)=B61AH

(4)MOVAX,[BX]

EA=(BX)=0100H,PA=(DS)X10H+EA=2000HX10H+0100H=20100H,执行后,(AX)

=5132H

(5)MOVAX,1100H[BX]

EA=(BX)+1100H=0100H+1100H=1200H,PA=(DS)X1OH+EA=2000HX1OH+1200H=

21200H,执行后,(AX)=B61AH

(6)MOVAX,[BX][SI]

EA=(BX)+(SI)=0100H+0002H=0102H,PA=(DS)X10H+EA=2000HX10H+0102H=

20102H,执行后,(AX)=29D1H

3.4分析下列指令的正误,对于错误的指令要说明原因并加以改正。

(1)MOVAH,BX(2)MOV[BX],[SI]

(3)MOVAX,[SI][DI](4)MOVMYDAT[BX][SI],ES:AX

(5)MOVBYTEPTR[BX],1000(6)MOVBX,OFFSETMAYDAT[SI]

(7)MOVCS,AX(8)MOVDS,BP

【解答】

(1)MOVAH,BX

错误,寄存器类型不匹配,可改为MOVAX,BX

(2)MOV[BX],[SI]

错误,两个操作数不能都为存储单元,可改为MOVBX,[S[]或MOV[BX],SI

(3)MOVAX,[SI][DI]

错误,寻址方式中只能出现一个变址寄存器,可改为MOVAX,[BX][D工]。

(4)MOVMYDAT[BX][SI],ES:AX

错误,AX签不能有段跨越前缀,去掉ES:,改为MOVMYDAT[BX][SI],AX

(5)MOVBYTEPTR[BX],1000

错误,1000超出字节空间存储范围

(6)MOVBX,OFFSETMAYDAT[SI];正确

(7)MOVCS,AX

错误,MOV指令CS不能做目的操作数,可改为MOVDS,AX

(8)MOVDS,BP;正确

注:本题错误改正部分有的答案并不唯一,可参考原题题意改成合法形式。

3.5设VARI、VAR2为字变量,LAB为标号,分析下列指令的错误之处并加以改正。

(1)ADDVARI,VAR2(2)MOVAL,VAR2

(3)SUBAL,VARI⑷JMPLAB[SI]

(5)JNZVARI(6)JMPNEARLAB

【解答】

(1)ADDVARI,VAR2

错误,两个操作数不能都为存储单元,可改为MOVBX,VAR2

ADDVARI,BX

(2)MOVAL,VAR2

错误,数据类型不匹配,可改为MOVAX,VAR2

(3)SUBAL,VARI

错误,数据类型不匹配,可改为SUBAX,VARI

(4)JMPLAB[SI]

错误,寄存器相对寻址形式中不能用标号做位移量,可改为JMPVAR1[SI]

(5)JNZVARI

错误,条件跳转指令只能进行段内短跳转,所以后面只能跟短标号。可改为JNZLAB

(6)JMPNEARLAB

错误,缺少运算符PTR,可改为JMPNEARPTRLAB

注:本题错误改正部分有的答案并不唯一,可参考原题题意改成合法形式。

3.6写出能够完成下列操作的8086CPU指令。

(1)把4629H传送给AX寄存器;

(2)从AX寄存器中减去3218H;

(3)把BUF的偏移地址送入BX中。

【解答】

(l)MOVAX,4629H

(2)SUBAX,3218H

(3)LEABX,BUF

3.7根据以下要求写出相应的汇编语言指令。

(1)把BX和DX寄存器的内容相加,结果存入DX寄存器中;

(2)用BX和SI的基址变址寻址方式,把存储器中的一个字节与AL内容相加,并保存在AL寄存

器中;

(3)用寄存器BX和位移量21B5H的变址寻址方式把存储器中的一个字和(CX)相加,并把结果送

回存储器单元中;

(4)用位移量2158H的直接寻址方式把存储器中的一个字与数3160H相加,并把结果送回该存储

器中;

(5)把数25H与(AL)相加,结果送回寄存器AL中。

【解答】

(l)ADDDX,BX

(2)ADDAL,IBXJ[SI]

(3)ADD21B5H[BX],CX

(4)ADDWORDPTR[2158H],3160H

(5)ADDAL,25H

3.8写出将首地址为BLOCK的字数组的第6个字送到CX寄存器的指令序列,要求分别使用以下

几种寻址方式:

(1)以BX的寄存器间接寻址

(2)以BX的寄存器相对寻址

(3)以BX、SI的基址变址寻址

【解答】

(1)LEABX.BLOCK+10

MOVCX,[BX]

(2)LEABX,BLOCK

MOVCX,1O[BX1

(3)LEABX,BLOCK

MOVSI,10

MOVCX,[BX][SI]

3.9执行下列指令后,AX寄存器中的内容是什么?

TABLEDB10,20,30,40,50

ENTRYDW3

MOVBX,OFFSETTABLE

ADDBX,ENTRY

MOVAX,[BX]

AX=__________

[解答]AX=3228H

3.10下面是将内存一字节数据高4位和低4位互换并放回原位置的程序,找出错误并改正。

DATASEGMENT

DD1DB23H

DATAENDS

CODESEGMENT

ASSUMECS:CODE,DS:DATA

START:MOVAX,DATA

MOVDS,AX

LEASI,OFFSETDD1

MOVAL,[SI]

MOVCL,4

RCRAL,CL

MOV[SI],AL

MOVAH,4cH

INT21H

CODEENDS

ENDSTART

【解答】程序第8行错误:LEASI,OFFSETDD1,应去掉OFFSET;

程序第10行错误:RCRAL,CL,应使用ROR或ROL,改为RORAL,CL3.il已知用寄存

器BX作地址指针,自BUF所指的内存单元开始连续存放着3个无符号数字数据,编程序求它们的和,

并将结果存放在这3个数之后。

【解答】参考程序如下:

LEABX,BUF

MOVAX,[BX]

ADDAX,[BX+2]

ADDAX,[BX+4]

MOV[BX+6],AX

3.12分析汇编语言源程序应该由哪些逻辑段组成?各段的作用是什么?语句标号和变量应具备哪

3种属性?

【解答】汇编语言源程序应该由若干个逻辑段组成,可以有若干个数据段、代码段、堆栈段和附加

数据段,至少要有一个代码段。各段的作用如下:

(1)代码段用来存放程序和常数。

(2)数据段用于数据的保存.

(3)堆栈段用于保护数据,尤其在子程序调用、中断过程中进行现场信息保护。

(4)附加数据段用于数据的保存。

语句标号和变量应具备的3种属性:段属性、偏移属性和类型属性。

3.13执行完下列程序后,回答指定的问题。

MOVAX,0

MOVBX,2

MOVCX,50

LP:ADDAX,BX

ADDBX,2

LOOPLP

问:(1)该程序的功能是。

(2)程序执行完成后,(AX)=。

【解答】

(1)完成0到100间所有偶数求和的功能。

(2)2550

3.14编写程序,计算下面函数的值。

2xU<0)

3x(0<=x<=10)

4xx>10

【解答】

DATASEGMENT

XDW34

SDW?

DATAENDS

CODESEGMENT

ASSUMECS:CODE,DS:DATA

START:MOVAX,DATA

MOVDS,AX

MOVAX,X;将X送到AX中

CMPAX,0;(AX)>0吗?

JLDOUB;是,转向doub

CMPAX,10;否,(ax)<10吗?

JLETRIB;是,转向trib

SALAX,1;否,乘以4

SALAX,1

JMPEXIT

DOUB:SALAX,1;乘以2

JMPEXIT

TRIB:SALAX,1;乘以3

ADDAX,X

EXIT:MOVS,AX;保存结果

MOVAH,4CH;结束

INT21H

CODEENDS

ENDSTART

注意,在比较的过程中使用的是针对带符号数的跳转指令,X应该看作带符号数。程序中还用了移

位指令代替了乘法指令。

3.15从键盘输入一系列字符,以回车符结束,编程统计其中非数字字符的个数。

【解答】

DATASEGMENT

BLOCKDB100DUP(?)

COUNTDB?

DATAENDS

CODESEGMENT

ASSUMEDS:DATA,CS:CODE

START:MOVAX,DATA

MOVDS,AX

MOVDL,0

LEASI,BLOCK

LP:MOVAH,1

INT21H

CMPAL,0DH

JZEXIT

MOV[SI],AL

CMPAL,30H

JAENEXT

CMPAL,39H

JBENEXT

INCDL

NEXT:INCSI

JMPLP

EXIT:MOVCOUNT,DL

MOVAH,4CH

INT21H

CODEENDS

ENDSTART

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论