计算机组成与汇编答案_第1页
计算机组成与汇编答案_第2页
计算机组成与汇编答案_第3页
计算机组成与汇编答案_第4页
计算机组成与汇编答案_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

《计算机组成原理与汇编语言》课后习题及作业答案王建东2006年9月第一章习题参考答案

1、什么是存储程序工作方式?(P.2.)答:(1)事先编制程序(2)实现存储程序(3)自动、连续地执行程序

2、采用数字化方法表示信息有哪些优点?(P.5.)答:(1)抗干扰能力强,可靠性高(2)在表示数值时,可以获得很宽的表示范围以及很高的精度。(3)数字化的信息可以存储,信息传送也比较容易实现。(4)可表示的信息类型与范围及其广泛,几乎没有限制。(5)能用逻辑代数等数字逻辑技术进行信息处理,着就形成了计算机硬件设计的基础。

3、如果有7X9点阵显示出字符A的图像,请用9个七位二进制代码表示A的点阵信息。000000000010000010100010001001111100100010010001001000100000000

4、数字计算机的主要特点是什么?(P.16.)答:(1)能在程序控制下自动连续地工作(2)运算速度快(3)运算精度高(4)具有很强的信息存储能力(5)通用性强,应用领域极其广泛

5、衡量计算机的基本指标有哪些?(P.17.)答:(1)基本字长(2)数据通路宽度(3)运算速度(4)主存储器容量(5)外存容量(6)配置的外围设备及其性能(7)系统软件配置

6、举出一种实际计算机,列举出各部件、设备的技术性能及常配置的软件?略

7、软件系统一般包含哪些部分?列举你熟悉的三种系统软件。(P.9.)答:系统软件是一组使计算机良好运行而编制的基础软件。它包括:(1)操作系统如:Windows2000,Linux,Unix(2)编译程序、解释程序如:C++编译程序,Peal解释程序(3)各种软件平台如:数据库管理系统

8、对源程序的处理有哪两种基本方式?(P.11.)答:对源程序的处理有解释和编译两种类型。解释方式是边解释边执行。如:BASIC它的优点是支持人机对话方式的程序设计,可以边执行边修改;所需要的主存空间较小。但这种方式执行速度较慢,不能解释那些前后关联较多,较难理解的程序设计语言。编译方式是将源程序全部翻译成机器语言的指令序列,称为目标程序(目标代码)。执行时,计算机将直接执行目标程序,不再需要源程序与翻译程序。在执行程序时,所需主存小,执行速度也较快。

第二章习题参考答案

1、将二进制数(101010.01)2转换为十进制数及BCD码(P.25.)答:(101010.01)2=1x25+1x23+1x21+1x2-2=(42.25)10=(01000010.00100101)BCD

2、将八进制数(37.2)8转换为十进制数及BCD码(P.25.)答:(37.2)8=3x81+7x80+2x8-1=(31.25)10=(00110001.00100101)BCD

3、将十六进制数(AC.E)16转换为十进制数及BCD码(P.25.)答:(AC.E)16=10x161+12x160+14x16-1=(172.875)10BCD

4、将十进制数(75.34)10转换为二进制数及八进制数、十六进制数(P.25.)答:(73.34)10=(1001001.010101011)2=(111.253)8=(49.55)16

5、将十进制数(13/128)10转换为二进制数(P.25.)答:(13/128)10=(1101/10000000)2=(1101/27)2=(0.0001101)2

6、分别写出下列各二进制数的原码、补码、字长(含一位数符)为8位(P30.)答:(1)0原码=00000000补码=00000000(2)-0原码=10000000补码=无(3)0.1010原码=01010000补码=01010000(4)-0.1010原码=11010000补码=10110000(5)1010原码=00001010补码=00001010(6)-1010原码=10001010补码=11110110

7、若X补=0.1010,则X原、真值等于什么?(P.33.)答:X补=0.1010,X原

8、若X补=1.1010,则X原、真值等于什么?(P.33.)答:X补=1.1010,X原

9、某定点小数字长16位,含1位符号,原码表示,分别写出下列典型值的二进制代码与十进制真值。(P.35.)答:真值代码非零最小正数+2-150000000000000001最大正数1-2-15绝对值最小负数-2-15绝对值最大负数-(1-2-15

10、某定点小数字长16位,含1位符号,补码表示,分别写出下列典型值的二进制代码与十进制真值。(P.35.)答:真值代码非零最小正数+2-150000000000000001最大正数1-2-15绝对值最小负数-2-15绝对值最大负数

11、某浮点数字长16位,其中阶码6位,含1位阶符,补码表示,以2为底;尾数10位(含1位数符),补码表示,规格化。分别写出下列各典型值的二进制代码与十进制真值。(P.37.m=5,n=9)答:代码真值非零最小正数100000,0.100000000略最大正数011111,0.111111111略绝对值最小负数100000,1.100000000略绝对值最大负数011111,1.000000000略

12、若采用图2-2IEEE754短浮点数格式,请将十进制数37.25写成浮点数,列出其二进制代码序列。(P.37.)答:(37.25)10=(100101.01)2=(0.10010101x2110)200000011010010101000000000000000

13、简化地址结构的基本途径是什么?(P.42.)答:采用隐地址(隐含约定)可以简化指令地址结构,即减少指令中的显地址数。

14、减少指令中一个地址码位数的方法是什么?(P.46.)答:采用寄存器寻址方式、寄存器间址方式可以使指令中为给出一个地址所需的位数减少。

15、某主存部分单元的地址码与存储内容对应关系如下:地址码存储内容1000HA307H1001H0B3FH1002H1200H1003HF03CH1004HD024H(1)若采用寄存器间址方式读取操作数,指定R0的内容为1002H则操作数是多少?(2)若采用自增型寄存器间址方式(R0)+,R0内容为1000H,则操作数是多少,指令执行完后,R0内容是什么?(3)若采用自增减型寄存器间址方式-(R1),R1内容为1003H,则操作数是多少,指令执行完后,R1内容是什么?(4)若采用变址寻址方式,X(R2),指令中给出形式地址d=3H,变址寄存器R2内容为 1000H,则操作数是多少?(P.47.)答:(1)操作数为1200H(2)操作数为A307H,R0=1001H(3)操作数为1200H,R1=1002H(4)操作数为F03CH

16、对I/O设备的编址方法有哪几种?请稍作解释。(P.52.)答:I/O设备的编址方法有两类(1)外围设备单独编址为每台设备分配一个设备码。或为I/O接口中的有关寄存器分配I/O端口地址,。(2)外围设备统一编址将I/O接口中的有关寄存器与主存单元统一编址,为它们分配统一的总线地址。

17、对I/O指令的设置方法有哪几种?请稍作解释。(P.52.)答:常见I/O指令的设置方法:(1)设置专用的I/O指令(2)用通用的数据传送指令实现I/O操作(3)通过I/O处理器或处理机控制I/O操作

第三章习题参考答案

1、试说明串行进位和并行进位方式的不同之处。(P.61.)答:串行进位中进位是逐级形成的,每一级的进位直接依赖于前一级的进位,延迟时间较长,但节省器件,成本低。并行进位中,各位进位信号都有独自的进位形成逻辑,每位进位信号的产生时间都相同,与低位进位无关,可有效地减少进位延迟时间。但这是以增加逻辑线路为代价的。

2、用74181和74182芯片构成一个64位的ALU,采用分级分组并行进位链。画出逻辑框图,并注明输入、输出等。

参考(P.63.图3-6)

答:P.63.图3-6画出了一个16位的并行进位ALU结构(每个74181芯片处理4位,16位需要4片74181芯片,组间用1片74182芯片产生组间并行进位。)64位ALU,可采用4组图3-6的结构,每组处理16位,再用1片74182,处理组间进位。

3、用变形补码计算[X]补+[Y]补,并指出是否溢出,说明是正溢还是负溢。(P.66.)答:(1)[X]补=00,110011[Y]补=00,101101[X]补+[Y]补=01,100000,正溢出(2)[X]补=00,010110[Y]补=00,100101[X]补+[Y]补=00,111011无溢出(3)[X]补=00,1110011[Y]补=11,101101[X]补+[Y]补=11,100000,无溢出(4)[X]补=11,001101[Y]补=11,010011[X]补+[Y]补=10,100000,负溢出

4、用变形补码计算[X]补-[Y]补,并指出是否溢出。(P.64.P.66.)答:(1)[X]补=00,110011[Y]补=00,101101[-Y]补=11,010011[X]补-[Y]补=[X]补+[-Y]补=00,000110(2)[X]补=00,110011[Y]补=11,010011[-Y]补=00,101101[X]补-[Y]补=[X]补+[-Y]补=01,100000(3)[X]补=00,100011[Y]补=00,110100[-Y]补=11,001100[X]补-[Y]补=[X]补+[-Y]补=11,101111(4)[X]补=11,101010[Y]补=11,110111[-Y]补=00,110111[X]补-[Y]补=[X]补+[-Y]补=11,110011

5、设两个浮点数X=2-0112,Y=2-010x(-0.101001)2,其浮点格式为:阶码4位,尾数8位,且均用双符号位补码表示。试按浮点加减运算规则计算[X]补+[Y]补和[X]补-[Y]补(P.70.)答:按照浮点格式:阶码4位,尾数8位,且均用双符号位补码表示

阶码尾数[X]浮=1101;00.110111[Y]浮=1110;11.010111执行[X]补+[Y]补的过程:(1)对阶求阶差[Ex]补=1101[Ey]补=1110[-Ey]补=0010[△E]=[Ex]补-[Ey]补=[Ex]补+[-Ey]补=1101+0010=1111[△E]=-1表明X的阶码较小,按对阶规则,将X尾数右移一位,其阶码加1,得:[X]浮=1110;00.0110111按舍0入1的原则[X]浮=1110;00.011100

(2)尾数求和

3规格化及判溢出尾数不是规格化的数,需要左移2位,规格化,11.110011->11.001100阶码减2:1100[X]补+[Y]补=1100;11.001100溢出问题:-4≤E≤3而Ex+y=-4未溢出

4不用舍入由于是左规,结果不需要舍入。[X]补+[Y]补=1100;11.001100=2-100x(0.110111)2

执行[X]补-[Y]补的过程:(1)对阶求阶差[Ex]补=1101[Ey]补=1110[-Ey]补=0010[△E]=[Ex]补-[Ey]补=[Ex]补+[-Ey]补=1101+0010=1111[△E]=-1表明X的阶码较小,按对阶规则,将X尾数右移一位,其阶码加1,得:[X]浮=1110;00.0110111按舍0入1的原则[X]浮=1110;00.011100

(2)尾数相减[Mx]补=00.011100[My]补=11.010111[-My]补=00.101001[Mx]补-[My]补=[Mx]补+[-My]补=00.011100+00.101001=01.000101

3规格化及判溢出溢出问题:尾数数符为01,发生正溢出,结果不正确。

6、用无符号数一位乘法计算X*Y,写出规范的运算过程。(P.74.)(绿色数字代表部分积,紫色代表部分积进位,红色是被乘数,褐色是乘数)答:(1)

X=1001Y=1101

B(被乘数)1001CaA(部分积)C(乘数)000001101

000001101+B1001C0=0100101001110+00000C0=0010000100111+B1001C0=0101101011011+B1001C0=0111001110101X*Y=01110101

(2)

X=1101Y=1111B(被乘数)1101CaA(部分积)C(乘数)000001111

000001111+B1101C0=0110101101111+B1101C0=1001110011111+B1101C0=1011010110111+B1101C0=110001100

0011

X*Y=11000011

(3)X=1010Y=1001B(被乘数)1010CaA(部分积)C(乘数)000001001

000001001+B1010C0=0101001010100+00000C0=0010100101010+00000C0=0001000010101+B1010C0=0101101011010

X*Y=01011010

7、用无符号数不恢复余数法求X÷Y,写出运算过程,分别给出求得的尚和余数。(P.76.)答:(红色是被除数,褐色是除数)(1)

X=00101001Y=1011B(除数)01011[-B]补=10101A(被除数高位)C(被除数低位)000101001初始状态<-001010010A、C左移一位+)-B10101减除数A<0110100010A<0,商0,下步左移后+B<-101000100A、C左移一位+)+B01011加除数A<0111110100A<0,商0,下步左移后+B

<-111101000A、C左移一位+)+B01011加除数A>0010011001A>0,商1,下步左移后-B

<-100110010A、C左移一位+)-B10101减除数A>0010000011A>0,商1余数商X÷Y=0011余1000

(2)

X=00110110Y=1111B(除数)01111[-B]补=10001A(被除数高位)C(被除数低位)000110110初始状态<-001101100A、C左移一位+)-B10001减除数A<0101111100A<0,商0,下步左移后+B<-011111000A、C左移一位+)+B01111加除数A<0111101000A<0,商0,下步左移后+B

<-111010000A、C左移一位+)+B01111加除数A>0011000001A>0,商1,下步左移后-B

<-110000010A、C左移一位+)-B10001减除数A>0010010011A>0,商1余数商

X÷Y=0011余1001

(3)X=01011010Y=1001B(除数)01001[-B]补=10111A(被除数高位)C(被除数低位)001011010初始状态<-010110100A、C左移一位+)-B10111减除数A>0000100101A>0,商1,下步左移后-B<-001001010A、C左移一位+)-B10111减除数A<0110111010A<0,商0,下步左移后+B

<-101110100A、C左移一位+)+B01001加除数A>0000000101A>0,商1,下步左移<-000001010A、C左移一位,余数商(因为余数为0,商补0)X÷Y=1010余0000

8、简要解释下列名词术语:答:微命令:(p.81.)微操作命令是最基本的控制信号,通常是指直接作用于部件或控制门电路的控制信号,简称微命令。同步控制方式:(p.84.)同步控制方式是指各项操作由统一的时序信号进行同步控制,,各个微操作必须在规定时间内完成,到达规定时间就自动执行后继的微操作。指令周期:(p.85.)指令周期是指从取指令、分析指令到执行完该指令所需的时间。不同的指令,其指令周期的长短也可以不同。机器周期:(p.85.)在组合逻辑控制器中,通常将指令周期划分为几个不同的阶段,每个阶段所需的时间,称为机器周期,又称CPU工作周期或基本周期。(如取指周期、存储器读周期、存储器写周期、等)时钟周期:(p.86.)将一个机器周期划分为若干相等的时间段,每个时间段内完成一步基本操作。这个时间段用一个电平信号宽度对应,称为节拍或时钟周期。一个机器周期由若干个节拍组成,不同的机器周期,或不同指令中的同一机器周期,包含的节拍数可能不同。时钟脉冲:(p.86.)在时序系统中由时钟发生器产生时钟脉冲信号,作为时序系统的基本定时信号。指令流程:(p.94.)指令流程是指令序列的读取与执行过程,即讨论CPU的工作机制。微指令:(p.105.)若干个微命令的组合,以编码形式存放在控制存储器的一个单元中,控制实现一步操作。微程序:(p.105.)一系列微指令的有序集合微周期:(p.105.)通常指从控制存储器中读取一条微指令并执行相应的微操作所需的时间。直接控制编码:(p.105.)直接控制编码是指微指令的微命令字段中每一位都代表一个微命令。设计微指令时,选用或不选用某个微命令,只要将该微命令的对应位设置成1或0就可以了。因此微命令的产生不需译码。分段直接编译法:(p.106.)分段直接编译法是在直接编译法基础上,进一步缩短微指令字长的一种编码方法。在这种编译法中,一个字段的含义不仅决定于本字段编码,还兼由其它字段来解释,以便使用较少的信息位表示更多的微命令。增量方式:(p.108.)在微程序控制器中,可设置一个微程序计数器(mPC),在顺序执行微指令时,后继指令地址由现行微地址(即mPC内容)加上一个增量(通常为1)来形成,遇到转移时,由微指令给出转移微地址,使微程序按新的顺序执行。断定方式:(p.108.)断定型微地址是指后继微地址可由程序设计者指定,或者根据微指令所规定的测试结果直接决定后继微地址的全部或部分值。垂直型微指令:(p.109.)微指令较短,微指令的并行操作能力有限,一般一条微指令只能控制数据通路的一二种信息传送操作。水平型微指令:(p.109.)微指令较长,微指令中的微操作具有高度并行性。特点:执行效率高,灵活性好,微程序条数少,因此广泛应用于速度较快的机器中,但其微指令字较长,复杂程度高,难以实现微程序设计自动化。

9、试说明模型机中下列寄存器的作用:(P.78.)答:通用寄存器:R0、R1、R2、R3这是一组可编程访问,具有多种功能的寄存器。在指令系统中为这些寄存器分配了编号即寄存器地址,因此可编程指定使用某个寄存器。通用寄存器本身在逻辑上只具有接收信息、存储信息和发送信息的功能。但通过编程与运算部件的配合就可以实现多种功能。暂存器:暂存器有3个,C,D,Z。可以用来暂存从主存储器读出的数据,这个数据是不能存放在通用寄存器中,否则会破坏其原有的内容。指令系统中没有为暂存器分配编号,因此程序员不能编程访问它们,因而是透明的。IR:指令寄存器IR,用来存放当前正在执行的一条指令。当执行一条指令时,应先将指令从主存中读出到IR中。PC:程序计数器又称为指令计数器或指令指针IP,它的作用是提供指令的地址。PC具有加1计数功能,并可以编程访问。PS:程序状态字寄存器又称为标志寄存器,用来存放现行程序的运行状态和工作方式,其内容称为程序状态字PWS。MAR:地址寄存器MAR,用于存放CPU访问主存或I/O接口的地址。MDR:数据寄存器MDR,用于存放CPU访问主存或I/O接口之间传送的数据。

10、模型机中的脉冲型微命令有哪些?(P.81)答:模型机中,各寄存器均采用同步打入脉冲将ALU总线上的数据打入其中。脉冲型微命令有:CP10,CPR1,CPpc,CPIR,CPSP,CPMAR,CPMDR,…

11、何谓组合逻辑控制器?何谓微程序控制器?试比较它们的优缺点。(P.87.P.102.P.103.)答:组合逻辑控制器是用逻辑门电路产生微命令的。每个微命令都需要一组逻辑门电路,根据相应的逻辑条件(如指令的操作码、寻址方式、时序信号等)产生该微命令。组合逻辑控制器一旦制造完成,这些逻辑电路之间的连接关系就固定了,不易改动,所以又称为硬连逻辑控制器。微程序控制器是采用微程序控制方式来产生微命令。基本思想:(1)将机器指令分解为基本的微命令序列,用二进制代码表示这些微命令,并编成微指令,多条微指令再形成微程序。(2)一条微指令包含的微命令,控制实现一步(一个节拍)操作;若干条微指令组成的一小段微程序解释执行一条机器指令。组合逻辑控制器其速度主要取决于电路延迟,因此在高速计算机如RISC处理器和巨型机中,常采用这种速度较快的硬连控制方式,但组合逻辑控制器的逻辑形态不规则,设计效率低,检查调试难,一旦制造完成,这些逻辑电路之间的连接关系就固定了,不易改动。微程序控制方式,将程序技术引入到CPU的构成级,即像编制程序那样编制微命令序列,从而使设计规整化。它将存储结构因入CPU,只要修改所存储的代码即微命令信息,就可修改有关的功能与执行的方式。

12、拟出下述指令的读取与执行流程:。(P.99.)答:MOVR0,R2

FT0PCàMARFT1MàMDRàIR,PC+1àPCET0R2àR0

MOVR1,(PC)+

FT0PCàMARFT1MàMDRàIR,PC+1àPCST0PCàMARST1MàMDRàDST2PC+1àZST3ZàPCET0DàR1

13、拟出下述指令的读取与执行流程:。(P.99.)答:ADDR0,X(R1)

FT0PCàMARFT1MàMDRàIR,PC+1àPCST0PCàMARST1MàMDRàD,PC+1àPCST2D+R1àZST3ZàMARST4MàMDRàDET0R0ADDDàZET1ZàR0

SUB(R1)+,(PC)+

FT0PCàMARFT1MàMDRàIR,PC+1àPCST0PCàMARST1MàMDRàDST2PC+1àZST3ZàPCDT0R1àMARDT1MàMDRàCDT2R1+1àZDT3ZàR1ET0CSUBDàZET1ZàMDRET2MDRàM

(6)INC-(R2)FT0PCàMARFT1MàMDRàIR,PC+1àPCDT0R2-1àZDT1ZàMAR,R2DT2MàMDRàDET0INCDàZET1ZàMDRET2MDRàM

14、拟出下述指令的读取与执行流程:。(P.100.)答:JMPR1FT0PCàMARFT1MàMDRàIR,PC+1àPCET0R1àPC

RST(SP)+FT0PCàMARFT1MàMDRàIR,PC+1àPCET0SPàMARET1MàMDRàPCET2SP+1àZET3ZàSP

JSR(R3)(P.101)FT0PCàMARFT1MàMDRàIR,PC+1àPCST0R3àMARST1MàMDRàCET0SP-1àZET1ZàMAR,SPET2PCàMDRET3MDRàMET4CàPC

第四章课后练习参考答案

1、8086/8088CPU中有哪些寄存器?各有什么用途?(P.117.)答:8086/8088CPU中有:通用寄存器:AX累加寄存器BX基址寄存器CX计数寄存器DX数据寄存器SP堆栈指针寄存器BP基址指针寄存器SI源变址寄存器DI目的变址寄存器段寄存器:CS代码段寄存器DS数据段寄存器SS堆栈段寄存器ES附加段寄存器控制寄存器:IP指令指针FLAGS标志寄存器

2、试说明8086/8088CPU中标志寄存器各标志位的含义。(P.120.)答:8086/8088CPU中设有一个16位标志寄存器FR,用来记录程序执行时的状态。FR中共有9个标志位。0CF:进位标志位有进位(或借位)时,CF=1;否则置02PF:奇偶标志位低8位中含“1”的个数为偶数时,PF=1;否则置04AF:辅助进位标志位低字节中低4位有进位(或借位)时,AF=1;否则置06ZF:零值标志位结果各位全为“0”时,ZF=17SF:符号标志位结果最高位为1时,SF=1,否则置08TF:单步标志位设置TF=1时,CPU进入单步执行指令工作方式9

IF:中断标志位设置IF=1时,允许CPU响应可屏蔽中断请求。10DF:方向标志位DF=0时,执行串操作指令,SI或DI内容自动递增,否则递减。11OF:溢出标志位运算结果超出补码表示数的范围OF=1。

3、在8086/8088CPU中,分别进行下列8位二进制数的运算后,标志寄存器中OF,ZF,SF,CF的值各是多少?(P.120.P.66.)答:(1)

10101011+010101011,0101011+0,101010110,0000000OF=0,无溢出;ZF=0,结果各位为全0;SF=0,结果最高位为0;CF=1,有进位;

(2)

11011010+111011011,1011010+1,110110111,1000111OF=0,无溢出;ZF=1,结果各位不为全0;SF=1,结果最高位为1;CF=1,有进位;

(3)

01010101–00111110=01010101+110000100,1010101+1,100001010,0010111OF=0,无溢出;ZF=1,结果各位不为全0;SF=0,结果最高位为0;CF=1,有进位;

(4)

10110011-0110001010110011–01100010=10110011+100111101,0110011+1,001111010,1010001OF=0,有溢出;ZF=1,结果各位不为全0;SF=0,结果最高位为0;CF=1,有进位;

4、在002B0H和002B3H字单元中,分别存放了2个16位字2C53H和1F0EH,试用图表示出它们在存储器中的存放情况。(P.120.P.66.)答:002B0H532C

002B3H0E1F

5、试说明段基址与段基值的不同之处。(P.122.P.116.)答:8086/8088将1M字节的主存空间按需要划分为若干段(segment),每个段都由连续的字节单元组成,最大长度为64K字节。一个段起始单元的地址,称为段基址(segmentbaseaddress)20位。8086/8088对段基址是有所限制的,不能起始于任意地址,要求其低4位必须为0(被16整除)。在1M字节的地址空间中,可作为段基址的共有64K个,可表示如下:00000H,00010H,00020H,…,FFFE0H,FFFF0H。

段基址的高16位称为段基值(segmentbasevalue)。如:0000H,0001H,0002H,…,FFFEH,FFFFH。

6、试说明8086/8088主存储器的逻辑地址由哪两部分组成。(P.129.)答:8086/8088主存储器的逻辑地址由段基值和偏移量两部分组成。段基值由某个寄存器提供。偏移量是指存放操作书的存储单元与段其始地址(段基址)之间的字节距离。

7、设某一存储单元的物理地址是34567H,试完成下列不同的逻辑地址表示。(P.129.)答:(1)3456H:0007H(2)3400H:0567H8、假设某个程序装入主存后,(SS)=0500H(SP)=64H,试计算该程序的堆栈栈底字单元的物理地址。(P.126.)答:(SS)=0500H(SP)=64H为堆栈的长度(此时SP指向栈底+2单元)栈底字单元的物理地址为05000H+64H-2=05062H

9、设堆栈段寄存器(SS)=1E2CH,程序中设置堆栈的长度为100个字节。试计算该程序的堆栈栈底字单元的物理地址,堆栈指针SP的初始值(即堆栈中没有数据时)和SP初始值指向的物理地址。(P.126.)答:(SS)=1E2CH堆栈的长度为100个字节,则堆栈指针SP的初始值:(SP)=100HSP初始值所指向的物理地址为:1E2C0H+100H=1E3C0H栈底字单元的物理地址为1E3C0H–2=1E3BEH

10、设(SP)=40H,(BX)=1234H,(DS)=5678H,如现有两条压栈指令:PUSHBXPUSHDS试问两条指令执行后,图4-46中各单元的数据是多少?(SP)等于多少?(P.126.)答:主存00000H(SP)à783CH563DH343EH123FHXX40HXXFFFFFH各单元的数据如上图所示,(SP)等于40H-2H-2H=3CH

11、设(SP)=60H,则执行下述3条指令后,(SP)的值为多少?PUSHAXPUSHBSPOPCX(P.126.)答:(SP)=60H-2H-2H+2H=5EH

12、试分别说明下列各指令中源操作数使用的寻址方式。若操作数是存储器寻址方式,试说明如何确定有效地址EA。答:(1)ADDAX,0A51H立即寻址(P.128.)(2)MOVBL,DATA1直接寻址(P.129.)EA=DATA1(3)MOVDS,AX寄存器寻址(P.128.)(4)ANDAL,VAR+2直接寻址(P.130.)EA=VAR+2(5)TEST[SI],CL寄存器间接寻址(P.130.)EA=SI(6)ORARRY[BX],-1基址寻址(P.131.)EA=ARRY+BX(7)SUBDS:[01FEH],DX直接寻址(P.130.)EA=01FEH(8)ADC[BP][DI],BH基址变址寻址(P.133.)EA=BP+DI(9)ANDCX,-19[BX][SI]基址变址寻址(P.133.)EA=BX+SI(10)PUSHES寄存器寻址(P.128.)(11)CLC(清进位标志)寄存器寻址(P.128.)

13、试分别指出下列各指令语句的语法是否有错,若有错,指明是什么错误。答:(1)MOVAL,0F5H正确(2)ADD[BX][BP],BX错误,不能同时使用[BX][BP]进行寻址(P.131.)(3)CMPAL,100H错误,AL为8位,100H大于8位,类型不匹配。(4)TEST[BP],DL正确(5)ADC15,CL错误,目的操作数不能是立即数(6)SUB[DI],DA_WORD错误,两个操作数不能同时是存储器操作数。(P.136.)(7)ORCH,CL正确(8)MOVAL,1000H错误,AL为8位,1000H为16位,类型不匹配。(9)SAR10H[DI],2错误,AL为8位,移位多次必须CL中。(P.150.)(10)NOTAL,BL错误,逻辑非操作是单操作指令。(P.149.)(11)DECCX,1错误,逻辑非操作是单操作指令。(P.143.)(12)LEAES,TAB[BX]错误,目的寄存器只能是通用寄存器。(P.139.)

14、执行下面2条指令后,标志寄存器中CF、AF、ZF、SF和OF分别是什么状态?MOVAL,91ADDAL,0BAH答:91H=10010001+0BAH=10111010101001011CF=1(有进位)AF=0(无辅助进位)ZF=0(结果不为0)SF=0(符号标志位)OF=1(有溢出)

15、假设(DS)=091DH,(SS)=1E4AH,(AX)=1234H,(BX)=0024H,(CX)=5678H,(BP)=0024H,(SI)=0012H,(DI)=0032H,(09226H)=00F6H,(09228H)=1E40H,(1E4F6H)=091DH。试给出下列各指令或程序段的分别执行的结果。答:(1)

MOVCL,20H[BX][SI]有效地址EA=20H+[BX]+[SI]=20H+0024H+0012H=0056H逻辑地址DS:0056H物理地址=091D0H+0056H=09226H(逻辑地址左移1为加有效地址)CL=[09226H]=00F6H

(2)

MOV[BP][DI],CX有效地址EA=[BP]+[DI]=0024H+0032H=0056H逻辑地址SS:0056H物理地址=1E4A0H+0056H=1E4F6H[1E4F6H]=CX=5678H

(3)

LEABX,20H[BX][SI]MOVAX,2[BX]有效地址EA=20H+[BX]+[SI]=20H+0024H+0012H=0056HBX=0056H

有效地址EA=2H+[BX]=2H+0056H=0058H逻辑地址DS:0058H物理地址=091D0H+0058H=09228HAX=[09228H]=1E40H

(4)

LDSSI,[BX][DI]MOV[SI],BX有效地址EA=[BX]+[DI]=0024H+0032H=0056H逻辑地址DS:0056H物理地址=091D0H+0056H=09226HSI=[09226H]=00F6HDS=[09226H+2H]=[09228H]=1E40H

有效地址EA=[SI]=00F6H逻辑地址DS:00F6H物理地址=1E400H+00F6H=1E4F6H[1E4F6H]=BX=0024H

(5)

XCHGCX,32H[BX]XCHG20H[BX][SI],AX有效地址EA=32H+[BX]=32H+0024H=0056H逻辑地址DS:0056H物理地址=091D0H+0056H=09226HCX=[09226H]=00F6H[09226H]=5678H

有效地址EA=20H+[BX]+[SI]=20H+0024H+0012H=0056H逻辑地址DS:0056H物理地址=091D0H+0056H=09226H[09226H]=1234HAX=00F6H

16、假设(SS)=0915H,(DS)=0930H,(SI)=0A0H,(DI)=1C0H,(BX)=80H,(BP)=470H,现有一条指令“MOVAX,OPRD”,若源操作数的物理地址为095C0H,试用4种不同寻址方式改写此指令,并要求至少使用上述条件一次。答:(1)MOVAX,220H[SI](2)MOVAX,100H[DI](3)MOVAX,150H[BX](4)MOVAX,[BP]

17、假设(DS)=1234H,(SI)=124H,(12464H)=30ABH,(12484H)=464H,则下述程序段执行后,(DS)=,(SI)=,(AX)=。答:LEASI,[SI];SI=124HMOVAX,[SI];AX=[12340H+124H]=[12464H]=30ABHMOV[SI+22H],1200H;[12340H+124H+22H]=[12486]=1200HLDSSI,[SI+20H];SI=[12340H+124H+20H]=[12484H]=464HDS=[12486H]=1200HADDAX,[SI];AX=[12000H+464H]=[12464H]=30ABH程序段执行后,(DS)=1200H,(SI)=464H,(AX)=30ABH。

18、假设(AX)=0A5C6H,(CX)=0F03H,则下述3条指令执行后,(AX)=,(CF)=。答:STC;(P.408.)进位位置位,CF<=1,RCLAX,CL;CL=03H循环左移3次。CF=1ANDAH,CH;(AH)=00101110∧(CH)=00001111(AH)=00001110RCRAX,CL(则下述3条指令执行后,(AX)=0B1C6H,(CF)=1。

19、假设(AX)=0FC77H,(CX)=504H,则下述3条指令执行后,(AX)=,(CF)=。答:CLC;(P.402.)清进位标志,CF<=0,SARAX,CL;CL=04H算术右移4次。CF=0(算术右移,符号位不变)XCHGCH,CL;(CH)=04H,(CL)=05HSHLAX,CL;CL=04H逻辑左移4次。CF=0(逻辑左移,末位补0)指令执行后,(AX)=OFC70H,(CF)=1。

20、假设(AX)=1234H,(BX)=0FFFFH,则下述3条指令执行后,(AX)=,(BX)=。答:INCAX;(AX)=1234H+1=1235HNEGBX;(BX)=0-0FFFFH=0001HADDAX,BX;(AX)=1235H+0001H=1236H指令执行后,(AX)=1236H,(BX)=0001H。

21、假设(AX)=0FFFFH,则下述程序段执行后,(AX)=。答:INCAX;(AX)=0FFFFH+1=0000HNECAX;(AX)=0-0000H=0000HDECAX;(AX)=0000H-1=0FFFFHNEGAX;(AX)=0-0FFFFH=0001H程序段执行后,(AX)=0001H。

22、假设(BX)=12FFH,则下述程序段执行后,(BX)=,ZF=,CF=。答:MOVCL,8;(CL)=8ROLBX,CL;BL循环左移8位(P.153.)(BX)=0FF12HCF=0ANDBX,0FFH;(BX)=0012HCMPBX,0FFH;(BX)=0012H,ZF=0(结果不为0),CF=1(有借位)程序段执行后,(BX)=0012H,ZF=0,CF=1。

23、假设(AX)=0B55BH,(DX)=0F0FH则下述程序段执行后,(AX)=。答:ANDAH,DL;(AH)=B5H=10110101H∧(DL)=OFH=00001111H(AH)=00000101H=05HXORAL,DH;(AL)=5BH=01011011HÅ(DH)=OFH=00001111H(AL)=01010100HNEGAH;(AH)=0-05H=0FBHNOTAL;(AL)=10101011H=0ABH程序段执行后,(AX)=0FBABH。

24、假设(AX)=0FF60H,则下述程序段执行后,(AX)=,(CF)=。答:STC;(P.408.)进位位置位,CF<=1,MOVDX,96;(DX)=96XORDH,0FFH;(DH)=00H=00000000HÅOFFH=11111111H(DH)=11111111H=0FFHSBBAX,DX;(AX)=0FF60H-0FF96H=0FFCAH,(CF)=1(有借位)程序段执行后,(AX)=0FFCAH,(CF)=1。

25、假设(AL)=08,(BL)=07,则下述程序段执行后,(AH)=,(AL)=,(CF)=。答:ADDAL,BL;(AL)=08=00001000+(BL)=07=00000111(AL)=00001111AF=0(无辅助进位)AAA;因为AF=0,AL高4位清0(AL)=00001111=0FH(AF)=0,(CF)=0程序段执行后,(AH)=00H,(AL)=OFH,(CF)=0。

26、假设DF=0,(DS:0100H)=01A5H则下述程序段执行后,(AL)=,SI=。答:MOVSI,0100H;SI=0100HLODSW;(P.153.)源串地址为DS:[SI]即DS:0100H(AX)=01A5H,SI=0100H+2=0102H程序段执行后,(AL)=0A5H,SI=0102H。

27、用比较指令CMP比较两个带符号数,如果目的操作数大于源操作数,则标志位OF=SF,为什么?答:如果目的操作数大于源操作数,(1)若两数都为正数,则OF=0,无溢出,SF=0正数的符号位为0(2)若目的操作数为正数,源操作数为负数,无溢出时,OF=0,SF=0有溢出时,OF=1,SF=1(3)若两数都为负数则OF=0,无溢出,SF=0(目的操作数大于源操作数)

28、试按下列要求分别编制程序段:答:(1)

把标志寄存器中符号位SF置“1”(P.138.)MOVAH,10000000BSAHF(2)

寄存器AL中高低4位互换MOVCL,04HROLAL,CL(3)

假设有3个字存储单元A,B,C在不使用ADD和ADC指令的情况下,实现(A)+(B)=>CMOVAX,ANEGBSUBAX,BMOVC,AX

(4)

把DX,AX中的32位无符号数右移2位SHRDX,1RCRAX,1SHRDX,1RCRAX,1(5)

用一条指令把CX中的整数转变为奇数ORCX,0001H(6)

将AX中第1,3位变反,其余各位保持不变XORAL,00001010B

(7)

根据AX中有0的位对BX中对应位变反,其余各位保持不变。NOTAX(AX 中内容变反)XORBX,AX

29、简述80386与80486内部结构的异同。(P.158.)答:1985年Intel公司推出了其第一片32位微处理器80386。它的主要性能如下:32位地址,可直接寻址的物理存储空间为4G字节;具有片内存储管理部件;字长32位,系统总线的数据通路宽度32位;采用多级流水线结构;平均运算速度约为4MIPS。1989年Intel公司又推出80486,它相当于一个增强型的80386、一个增强型的80387数值协处理器(也称浮点部件FPU)和一个8K字节的高速缓存(cache)的集成,基

温馨提示

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

评论

0/150

提交评论