文档库 最新最全的文档下载
当前位置:文档库 › 计算机组成原理与汇编语言课后习题及作业答案

计算机组成原理与汇编语言课后习题及作业答案

计算机组成原理与汇编语言课后习题及作业答案
计算机组成原理与汇编语言课后习题及作业答案

《计算机组成原理与汇编语言》课后习题及作业答案

王建东20XX年9月

第一章习题参考答案

1、什么是存储程序工作方式?

(P.2.)

答:(1) 事先编制程序

(2) 实现存储程序

(3) 自动、连续地执行程序

2、采用数字化方法表示信息有哪些优点?

(P.5.)

答:(1) 抗干扰能力强,可靠性高

(2) 在表示数值时,可以获得很宽的表示范围以及很高的精度。

(3) 数字化的信息可以存储,信息传送也比较容易实现。

(4) 可表示的信息类型与范围及其广泛,几乎没有限制。

(5) 能用逻辑代数等数字逻辑技术进行信息处理,着就形成了计算机硬件设计的基础。

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

0000000

0001000

0010100

0100010

0111110

0100010

0100010

0100010

0000000

4、数字计算机的主要特点是什么?(P.16.)

答:(1) 能在程序控制下自动连续地工作

(2) 运算速度快

(3) 运算精度高

(4) 具有很强的信息存储能力

(5) 通用性强,应用领域极其广泛5、衡量计算机的基本指标有哪些?

(P.17.)

答:(1)基本字长

(2)数据通路宽度

(3)运算速度

(4) 主存储器容量

(5) 外存容量

(6) 配置的外围设备及其性能

(7) 系统软件配置

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

7、软件系统一般包含哪些部分?列举你熟悉的三种系统软件。

(P.9.)

答:系统软件是一组使计算机良好运行而编制的基础软件。它包括:

(1)操作系统如:Windows 2000,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 )10

= (000101110010.100001110101 ) BCD

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原= 0.1010,真值= +0.1010

8、若X补= 1.1010,则X原、真值等于什么?

(P.33.)

答:X补= 1.1010 ,X原= 1.0110,真值= -0.0110

9、某定点小数字长16位,含1位符号,原码表示,分别写出下列典型值的二进制代码与十进制真值。

(P.35.)

答:真值代码

非零最小正数 +2-15 0000000000000001

最大正数 1-2-15 0111111111111111

绝对值最小负数 -2-15 1000000000000001

绝对值最大负数 -(1-2-15 ) 1111111111111111

10、某定点小数字长16位,含1位符号,补码表示,分别写出下列典型值的二进制代码与十进制真值。

(P.35.)

答:真值代码

非零最小正数 +2-15 0000000000000001

最大正数 1-2-15 0111111111111111

绝对值最小负数 -2-15 1111111111111111

绝对值最大负数 -1 1000000000000000

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.10010101 x 2110)2

00000011010010101000000000000000

13、简化地址结构的基本途径是什么?

(P.42. )

答:采用隐地址(隐含约定)可以简化指令地址结构,即减少指令中的显地址数。

14、减少指令中一个地址码位数的方法是什么?

(P.46. )

答:采用寄存器寻址方式、寄存器间址方式可以使指令中为给出一个地址所需的位数减少。

15、某主存部分单元的地址码与存储内容对应关系如下:

地址码存储内容

1000H A307H

1001H 0B3FH

1002H 1200H

1003H F03CH

1004H D024H

(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-011x 0.1101112,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)尾数求和

00.011100+11.010111=11.110011

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-100 x (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=1001 Y=1101

B(被乘数)1001

C a A (部分积)C(乘数)

0 0000 1101

0 00001101

+B 1001

C0= 0 1001

0100 1110

+0 0000

C0= 0 0100

0010 0111

+B 1001

C0= 0 1011

0101 1011

+B 1001

C0= 0 1110

0111 0101

X * Y =01110101

(2)X=1101 Y=1111

B(被乘数)1101

C a A (部分积)C(乘数)

0 0000 1111

0 00001111

+B 1101

C0= 0 1101

0110 1111

+B 1101

C0= 1 0011

1001 1111

+B 1101

C0= 1 0110

1011 0111

+B 1101

C0= 1 1000

11000011 X * Y =11000011

(3)X=1010 Y=1001

B(被乘数)1010

C a A (部分积)C(乘数)

0 0000 1001

0 00001001

+B 1010

C0= 0 1010

0101 0100

+0 0000

C0= 0 0101

0010 1010

+0 0000

C0= 0 0010

0001 0101

+B 1010

C0= 0 1011

0101 1010

X * Y =01011010

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

答:(红色是被除数,褐色是除数)

(1)X=00101001 Y=1011

B(除数) 01011 [-B]补=10101

A (被除数高位) C(被除数低位)

000101001初始状态

<- 00101 0010 A、C左移一位

+) -B 10101 减除数

A<0 11010 0010A<0,商0,下步左移后+B

<- 10100 0100A、C左移一位

+) +B 01011 加除数

A<0 11111 0100A<0,商0,下步左移后+B

<- 11110 1000A、C左移一位

+) +B 01011 加除数

A>0 01001 1001A>0,商1,下步左移后-B

<- 100110010A、C左移一位

+) -B 10101 减除数

A>0 01000 0011A>0,商1

余数商

X÷Y=0011 余1000

(2)X=00110110 Y=1111

B(除数) 01111 [-B]补=10001

A (被除数高位) C(被除数低位)

000110110初始状态

<- 00110 1100 A、C左移一位 +) -B 10001 减除数

A<0 10111 1100A<0,商0,下步左移后+B <- 01111 1000A、C左移一位

+) +B 01111 加除数

A<0 11110 1000A<0,商0,下步左移后+B

<- 11101 0000A、C左移一位

+) +B 01111 加除数

A>0 01100 0001A>0,商1,下步左移后-B

<- 110000010A、C左移一位

+) -B 10001 减除数

A>0 01001 0011A>0,商1

余数商

X÷Y=0011 余1001

(3)X=01011010 Y=1001

B(除数) 01001 [-B]补=10111

A (被除数高位) C(被除数低位)

001011010初始状态

<- 01011 0100 A、C左移一位

+) -B 10111 减除数

A>0 00010 0101A>0,商1,下步左移后-B

<- 00100 1010A、C左移一位

+) -B 10111 减除数

A<0 11011 1010A<0,商0,下步左移后+B

<- 10111 0100A、C左移一位

+) +B 01001 加除数

A>0 00000 0101A>0,商1,下步左移

<- 00000 1010A、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.)在微程序控制器中,可设置一个微程序计数器(μPC),在顺序执行微指令时,后继指令地址由现行微地址(即μPC内容)加上一个增量(通常为1)来形成,遇到转移时,由微指令给出转移微地址,使微程序按新的顺序执行。

汇编语言程序设计练习题

汇编语言程序设计练习题 一、字符与串处理类 1.逆序输出字符串“BASED ADDRESSING”。 2.试编写一段程序,要求对键盘输入的小写字母用大写字母显示出来。 3.编写程序,从键盘接收一个小写字母,然后找出它的前导字符和后续字符,再按顺序显示这三个字符。 4.从键盘上输入一系列以$为结束符的字符串,然后对其中的非数字字符计数,并显示计数结果。 5.从键盘上输入一串字符(用回车键结束,使用0A号功能调用。)放在STRING中,试编制一个程序测试字符串中是否存在数字。如有,则把CL的第5位置1,否则将该位置置0。 6.从键盘上输入一串字符(用回车键结束,使用0A号功能调用。),将其中的小写英文字母变换为大写英文字母,其他字符保持不变。然后将变换后的字符串显示出来。 7.试编制一个程序:从键盘输入一行字符,要求第一个键入的字符必须是空格符,如不是,则退出程序;如是,则开始接收键入的字符并顺序存放在首地址为buffer的缓冲区中(空格符不存入),直到接收到第二个空格符时退出程序。 8.试编写一段程序,要求比较两个字符串string1和string2所含字符是否相等,如相等则显示“MATCH”, 若不相同则显示“NO MATCH”。 9.试编写一段程序,要求输入两个字符串,如两个字符串相等则显示“MATCH”, 否则显示“NO MATCH”。 10.试编写一段程序,要求在长度为100H字节的数组中,找出大于61H的无符号数的个数并存入字节单元UP中,找出小于2FH的无符号数的个数并存入字节单元DOWN中。 11.在内存区域0B800:0000-0B800:0FFFF(都是16进制数)内查找首地址为SOURCE的串(SOURCE的首字节为串长度),如果找到,则把AL的第0位置0,否则将该位置置1。 12.已知数组A包含15个互不相等的整数,数组B包含20个互不相等的整数。试编制一个程序,把既在A中又在B中出现的整数存放于数组C中。 13.在附加段中,有一个首地址为LIST和未经排序的字数组。在数组的第一个字中,存放着该数组的长度,数组的首地址已存放在DI寄存器中,AX寄存器中存放着一个数。要求编制一个程序:在数组中查找该数,如果找到此数,则把它从数组中删除。 二、数字输入输出类 1. 试编制一个程序,把BX寄存器内的二进制数以十六进制数的形式在屏幕上显示出来。 2. 试编制一个程序,把BX寄存器内的二进制数以八进制数的形式在屏幕上显示出来。 3. 试编制一个程序,把BX寄存器内的二进制数以十进制数的形式在屏幕上显示出来。 4.从键盘上输入2个一位数,求出它们的和(假设和不超过1位)。 5.试编写一段程序,从键盘接收一个四位的十六进制数,并在终端上显示与它等值的二进制数。 6.试编写一段程序,从键盘接收一个0-65535间的十进制无符号数,并在终端上显示与它等值的二进制数。 7.试编写一段程序,从键盘接收一个-32768-32767间的十进制有符号数,并在终端上显示与它等值的二进制数。 8.编写一个程序,从键盘输入一个0~65535之间的10进制无符号数,然后以16进制

汇编语言试题及参考答案

汇编语言试题及参考答案 一,填空题 1.ZF标志位是标志结果是否为零的,若结果,ZF为( 1 ),否则ZF为( 0 ).当ZF为1时,SF为( 0 ) 2.标号可以有两种类型属性.它们是( )和( ) 3.8位无符号整数的表示范围为0--255,写成16进制形式为( ),8位有符号整数的表示范围为-128--+127,写成16进制形式为( ) 4.伪指令DB,GROUP 和NAME 三个标号名字域必须有名字的是( ),不得有名字的是( ),可有可无名字的是( ). 5.循环程序通常由( )( )( )和循环结果外理四部分构成 6.在数值不达式中,各种运算符可可混合使用,其优先次序规则*,/( )于+,-;XOR,OR( )于AND,LT( )于GT 7. 宏指令定义必须由伪指令( )开始,伪指令( )结束,两者之间的语句称为( ) 8.调用程序与子程序之间的参数传递方法有四种,即堆栈法( )( )( ) 9.分别用一条语句实现下述指明的功能 (1)栈顶内容弹出送字变量AYW( ) (2)双字变量AYD存放的地址指针送ES和SI( ) (3)变量AY2类型属性送AH( ) (4)不允许中断即关中断( ) (5)将字符串'HOW ARE YOU!'存入变量AYB( ) (6)子程序返回调用程序( ) (7)地址表达式AYY[4]的偏移地址送字变量ADDR( ) (8)AX的内容加1,要求不影响CF( ) (9)BX的内容加1,要求影响所有标志位( ) (10)若操作结果为零转向短号GOON( ) 二,单选题 1.IBM PC微机中,有符号数是用( )表示的 1.原码 2.补码 3.反码 4.BCD码 2.把汇编源程序变成代码程序的过程是( ) 1.编译 2.汇编 3.编辑 4.链接

汇编语言课后习题答案

2.1已知DS=2000H、BX=0100H、SI=0002H,存储单元[20100H]~[20103H]依次存放12345678H,[21200H]~[21203H]依次存放2A4C B765H,说明下列每条指令执行完后AX寄存器的内容。 (1)mov ax,1200h (2)mov ax,bx (3)mov ax,[1200h] (4)mov ax,[bx] (5)mov ax,[bx+1100h] (6)mov ax,[bx+si] (7)mov ax,[bx][si+1100h] 〔解答〕 (1)AX=1200H (2)AX=0100H (3)AX=4C2AH;偏移地址=bx=0100h (4)AX=3412H;偏移地址=bx=0100h (5)AX=4C2AH;偏移地址=bx+1100h=1200h (6)AX=7856H;偏移地址=bx+si=0100h+0002h=0102h (7)AX=65B7H;偏移地址=bx+si+1100h=0100h+0002h+1100h=1202h 〔习题2.2〕指出下列指令的错误 (1)mov cx,dl (2)mov ip,ax (3)mov es,1234h (4)mov es,ds (5)mov al,300 (6)mov[sp],ax (7)mov ax,bx+di

(8)mov20h,ah 〔解答〕 (1)两操作数类型不匹配 (2)IP指令指针禁止用户访问 (3)立即数不允许传给段寄存器 (4)段寄存器之间不允许传送 (5)两操作数类型不匹配 (6)目的操作数应为[SI] (7)源操作数应为[BX+DI] (8)立即数不能作目的操作数 〔习题2.5〕已知SS=2200H、SP=00B0H,画图说明执行下面指令序列时,堆栈区和SP的内容如何变化?mov ax,8057h push ax mov ax,0f79h push ax pop bx pop[bx] 〔解答〕 mov ax,8057h push ax mov ax,0f79h push ax pop bx;bx=0f79h pop[bx];DS:[0f79h]=8057h

汇编程序习题

汇编程序习题 1.试分析以下程序段完成什么功能? MOV CL,4 SHL DX,CL SHL AX,CL SHR BL,CL INT 3 2.写出执行以下计算的指令序列: 1)Z←W+(Z-X)2)Z←W-(X+6)-(R+10) 3)Z←(W*X)/(R+6)4)Z←((W-X)/5*Y)*2 3.求两个数56H和67H进行ADD,并求出标志OF,CF,SF,ZF的值。4.阅读程序段,回答下述问题: 1)MOV AX,4000H 2)MOV AX,5678H 3)MOV AX,1234H OV DS,AX MOV BX,99AAH MOV CX,8912H MOV BX,1238H PUSH BX CMP AX,CX MOV〔BX〕,2244H PUSH AX INT 3 MOV AL,〔BX〕 POP DX SF=?OF=?JA成立否? INT 3 POP CX AL=?存储器的物理地址=?DX=?CX=? 5.下列程序能完成什么功能? DATY1 DB 300DUP(?) DATY2 DB 100DUP(?) …… MOV CX,100 MOV BX,200 MOV SI,0 MOV DI,0 NEXT:MOV AL,DATY1〔BX〕〔SI〕 MOV DATY2〔DI〕,AL

INC SI INC DI LOOP NEXT 6.下列指令哪些是错误的?并简述之。 1)MOV 15,BX 2)CMP OP1,OP2(假定OP1,OP2是用DB定义的变量) 3)CMP AX,OP1 4)CMP OP1,25H 5)MOV DS,CS 7.下列程序段执行后,BX的值是什么? MOV CL,3 MOV BX,0B8H ROL BX,1 ROR BX,CL 8.编写一个程序段,将内存200H单元开始的256个单元的内容,取绝对值后传送到400H开始的256个单元中。 9.求出下列各数与62A0H之和,并根据结果确定SF,ZF,CF,OF的值。 1)1234H 2)4321H 3)CFA0H 4)9D60H 10.求出下列各数与4AE0H之差,并根据结果确定SF,ZF,CF,OF的值。 1)1234H 2)5D80H 3)9090H 4)EA04H

微机原理与汇编语言复习题及参考答案

微机原理与汇编语言复习题及参考答案 ——CSDN下载频道提供,请尊重原创 一、选择题: 1. 设AL=0A8H,CX=2,CF=1,执行RCL AL,CL指令后,AL中的值为() A. 51H B. A3H C. 47H D. 0C5H 2. 下述指令的执行结果是() MOV AL,0C2H AND AL,0F0H A.AL=40H B.AL=20H C.AL=0C0H D.AL=0E0H 3. 完成对CL寄存器的容乘以4的正确操作是() A.ROL CL,1 B.MUL 4 C.SHL CL,1 D.MOV CL,2 ROL CL,1 SHL CL,1 SHL CL,CL 4. 无论BH中原有的数是奇数或偶数,若要使BH中的数一定为奇数,应执行的指() A. ADD BH,01H B. OR BH,01H C. XOR BH,01H D. TEST BH,01H 5. 假设(AL)= 37H,(BL)= 95H,执行指令IMUL BL后(AX)= () A. 0E903H B. 2003H C. 0DBBH D. 2008H 6. 下面的数据传送指令中,错误的操作是() A. MOV SS:[BX+DI],1000H B. MOV DX,1000H C. MOV WORD PTR[BX],1000H D. MOV DS,2000H 7. CPU要访问的某一存储单元的实际地址称() A.段地址B.偏移地址C.物理地址D.逻辑地址 8. 某存储单元的物理地址是12345H,可以作为它的段地址有() A.2345H B.12345H C.12340H D.1234H 9. 计算机能直接识别的的语言() A.汇编语言 B.机器语言C.高级语言D.低级语言 10. 下列指令中操作数在代码段中的是() A.MOV AL,25H B.ADD AH,BL C.INC DS:[25] D.CMP AL,BL 11.直接、间接、立即三种寻址方式指令的执行速度,由决至慢的排序为()A.直接、立即、间接B.直接、间接、立即 C.立即、直接、间接D.不一定 12.若栈顶的物理地址是2010011,当执行完指令CALL AX后,栈顶的物理地址是()A.2010211 B.2010111 C.200FFH D.200FEH 13.当执行完下列指令序列后,标志位CF和OF的值是() MOV AX,OC126H MOV BX,5AB7H SUB AX,BX A.0,0 B.0,1 C.1,0 D.1,1 14. JMP BX的目标地址偏移量是(D)。 A.SI的容B.SI所指向的存字单元之容 C.IP+SI的容D.IP+[SI] 15.指令MOV AX,10[BX]的源操作数的寻址方式是() A.基址寻址B.寄存器寻址MOV AX,BX C.变址寻址AX【BX+DI】(只能用BX,BP;SI和DI) D.寄存器相对寻址 16.指出下列哪个数据在汇编语言中是非法的。()

【汇编语言程序设计】试题及答案合集

《汇编语言程序设计试题及答案》合集 汇编语言程序设计试题及答案 1.对于有符号的数来说,下列哪个值最大(D) A:0F8H B:11010011B C:82 D:123Q 2.下列有关汇编语言中标号的命名规则中,错误的是(D) A:通常由字母打头的字符、数字串组成 B:标号长度不能超过31个字符 C:?和$不能单独作为标号 D:.号不可位于标号首 3.8088/8086存储器分段,每个段不超过(D ) A.64K个字 B.32K个字节 C.1兆个字节 D.64K个字节 4.寻址指令MOV CX, [BX + DI + 20]使用的是哪一种寻址方式(B)A:寄存器寻址B:相对基址变址寻址 C:变址寻址D:基址变址寻址 5.若AX= - 15要得到AX=15应执行的指令是(A ) A.NEG AX B.NOT AX C.INC AX D.DEC AX 6.8086/8088系统执行传送指令MOV时( A) A.不影响标志位 B.影响DF方向标志 C.影响SF符号标志 D.影响CF进位标志 7.若要求一个操作数中的若干位维持不变,若干位置?1?,可以使用(B)A:NOT B:OR C:AND D:XOR 8.下列指令中段默认为堆栈段的是( C) A.MOV AX,[BX+SI+10] B.ADD AX,ES:[SI] C.SUB [BX],[BP][DI] D. MOV DX,[1000H] 9.关于8086/8088微机系列,下列说法哪个是正确的(D) A:一个存储单元由16个二进制位组成,简称字。

B:当存储一个字数据时,低字节放高地址位,高字节放低地址位。 C:在内存空间中,可以无限分配段,且段的大小不受限制。 D:段与段之间可以邻接,也可以重叠。 10.下列关于堆栈的说法,错误的是(D) A:以?先入后出?为原则。 B:栈区最高地址单元的前一个单元为栈底。 C:运行中SP寄存器动态跟踪栈顶位置。 D:压栈和弹出都是以字节为单位。 11.表示过程定义结束的伪指令是( A) A.ENDP B.ENDS C.END D.ENDM 12.BUF1 DB 3 DUP(0,2 DUP (1,2),3) COUNT EQU $-BUF1 符号COUNT等价的值是( B) A.6 B.18 C.16 D.9 13.下列标志位中,可以用来判断计算结果正负的是(B) A:PF B:SF C:DF D:OF 14.下列指令正确的是( CD) A. MOV [100H], [BX] B.MOV DS, ES C. ADD V[BX], CX D.MOV AX, 34H 15.下列哪个寄存器是属于指针寄存器(C) A:SI B:DX C:SP D:ES 二、填空题 (每小题4 分,共 20 分) 1.下列程序段求数组FLD的平均值,结果在AL中。请将程序填写完整(不考虑溢出) FLD DW 10, -20, 30, -60, -71, 80, 79, 56 _LEA SI,FLD______ MOV CX, 8 XOR AX, AX

汇编语言课后习题解答

第1章基础知识 检测点1.1(第9页) (1)1个CPU的寻址能力为8KB,那么它的地址总线的宽度为13位。 (2)1KB的存储器有1024个存储单元,存储单元的编号从0到1023。 (3)1KB的存储器可以存储8192(2^13)个bit,1024个Byte。 (4)1GB是1073741824(2^30)个Byte、1MB是1048576(2^20)个Byte、1KB是1024(2^10)个Byte。 (5)8080、8088、80296、80386的地址总线宽度分别为16根、20根、24根、32根,则它们的寻址能力分别为: 64(KB)、1(MB)、16(MB)、4(GB)。 (6)8080、8088、8086、80286、80386的数据总线宽度分别为8根、8根、16根、16根、32根。则它们一次可以传送的数据为: 1(B)、1(B)、2(B)、2(B)、4(B)。 (7)从内存中读取1024字节的数据,8086至少要读512次,80386至少要读256次。 (8)在存储器中,数据和程序以二进制形式存放。

(1)1KB=1024B,8KB=1024B*8=2^N,N=13。 (2)存储器的容量是以字节为最小单位来计算的,1KB=1024B。 (3)8Bit=1Byte,1024Byte=1KB(1KB=1024B=1024B*8Bit)。 (4)1GB=1073741824B(即2^30)1MB=1048576B(即2^20)1KB=1024B(即2^10)。(5)一个CPU有N根地址线,则可以说这个CPU的地址总线的宽度为N。这样的CPU 最多可以寻找2的N次方个内存单元。(一个内存单元=1Byte)。 (6)8根数据总线一次可以传送8位二进制数据(即一个字节)。 (7)8086的数据总线宽度为16根(即一次传送的数据为2B)1024B/2B=512,同理1024B/4B=256。 (8)在存储器中指令和数据没有任何区别,都是二进制信息。

51汇编程序练习题1

单片机汇编程序设计练习 一、存储器之间的数据传送 1、编程实现将单片机内部RAM60H开始的连续32个单元置为FFH。 2、编程实现将内部RAM30H开始的连续16个数传送到内部RAM50H开始的连续单元中。 3、编程实现将单片机外部RAM2000H为首地址的数据块传送到单片机内部RAM30H开始的单元中,数据块的长度为32个字节。 4、编程实现将单片机内部RAM30H为首地址的数据块传送到外部RAM2000H 开始的单元中,数据块的长度存放于内部RAM的20H单元。 5、编程实现将单片机外部RAM2000H为首地址的数据块传送到单片机内部RAM30H开始的单元中,直到数据内容为0DH时停止传送。 6、编程实现将ROM1000H地址的内容传送到内部RAM的25H单元。 7、编程实现将ROM2000H开始的连续10个地址的内容传送到内部RAM的25H 开始的单元。 8、编程实现将ROM1000H开始的连续100个地址的内容传送到外部RAM2000H 开始的连续单元中。 二、查表程序设计 1、编写查表程序,要查表的数据存放在R7中,其范围为0~9。编程查其平方值,并存放于40H。 2、编写查表程序,要查表的数据存放在R7中,其范围为0~9。编程查其立方值,并存放于R6。 3、单片机外部ROM TAB1地址开始存放一组ASCII码表,试用查表方法,将R2的内容(范围为0~F)转换为与其对应 的ASCII码,并从P1口输出。 4、使用8051的P1口作为段控驱动共阳 LED数码管,硬件连接如图。 编程实现将8051 R7单元内容(在 00H-09H之间)显示在数码管上。00H-09H 的共阳字形代码如下表所示。 04H 05H 06H 07H 08H 09H

汇编语言复习题(附答案)

汇编语言复习题 注:蓝色标记的为答案,此答案仅供参考,大家自己做一下或看以一下,认为不对的地方,可以提出来一起讨论一下,另外看一下课后老师布置的相应作业。在此文档最后最后附有课 后四、六章的答案,大家抓紧时间复习哦! 一、选择题 1. 把要执行的程序与库文件连接起来形成可执行文件的系统程序是(B )。 A. 汇编程序 B. 连接程序 C. 机器语言程序 D.源代码程序 2. 在8088/8086的寄存器组中,CPU确定下一条指令的物理地址时需要用到的寄存器对是 (C )。 A..SS 和SP B.DS 和DI C.CS 和IP D.ES 和SI 3. 为了使主机访问外设方便起见,外设中的每个寄存器给予一个(C )。 A.物理地址 B. 逻辑地址 C. 端口地址 D. 段地址 4. MOV AX, 3064H,该指令中源操作数采用的寻址方式是(A )。 A.立即 B. 直接 C. 寄存器相对 D. 寄存器间接 5. 换码指令的助记符是(C )。 A. XCHG B. LEAS C.XLAT D. MOV 6. 如果A> B (A、B有符号数)发生转移,应选择的条件转移指令是(JGE )。 7. 下列符号中,可用作标识符的是(C )。 A.MOV B.AX C.MSG1 D.1ABC 8. X DB 10H DUP (1 , 2)内存变量定义语句拥有了( A )个字节的存储空间。 A.20D B.10D C.20H D.10H 9. 当DF=0时,执行串操作指令MOVSB变址寄存器SI、DI的值将(C )。 A.不变 B. 减1 C. 加1 D. 无法确定 10. 如下指令可将AX寄存器内容改变的是(A )。 A. AND AX , BX B . TEST AX , BX C. CMP AX , BX D . XCHG AX , AX 11.16位CPU支持的I/O 地址范围是(D )。 A. 0~0FFFFFH B. 0~0FFFFH C. 0~0FFFH D. 0~0FFH 12. MUL CL指令实现的功能是(A )。 A.无符号乘法:AX AL X CL B.有符号乘法:AX AL X CL C.无符号乘法:DX AL X CL D .有符号乘法:DX AL X CL 13. DOS系统功能调用(INT 21H )中,显示字符串的功能号是(D )。 A.01H B.02H C.08H D. 09H 14. 在16位CPU读取指令时,需要用到的寄存器对是(C )。 A.SS 和SP B.DS 和DI C.CS 和IP D.ES 和SI 15. 下列指令中,源操作数(既第2操作数)属于基址加变址寻址方式是(B )。 A.MOV AX,23H B. MOV AX,[BX+SI] C.SUB AX,[BX] D. ADD AX,BX 16. 有内存变量定义语句:VAR DW 10 DUP(1 , 2), 1234H, VAR的属性TYPE LENGTH和

汇编语言试题及答案(1)

一,单项选择题(每小题1分,共20分) 1.指令JMP FAR PTR DONE属于() A.段内转移直接寻址B.段内转移间接寻址C.段间转移直接寻址D.段间转移间接寻址2.下列叙述正确的是() A.对两个无符号数进行比较采用CMP指令,对两个有符号数比较用CMP S指令 B.对两个无符号数进行比较采用CMPS指令,对两个有符号数比较用CM P指令 C.对无符号数条件转移采用JAE/JNB指令,对有符号数条件转移用JGE/J NL指令 D.对无符号数条件转移采用JGE/JNL指令,对有符号数条件转移用JAE/J NB指令 3.一个有128个字的数据区,它的起始地址为12ABH:00ABH,请给出这个数据区最末一个字单元的物理地址是() A.12C5BH B.12B6BH C.12C5AH D.12BFEH 4.在下列指令的表示中,不正确的是() A.MOV AL,[BX+SI] B.JMP SHORT DONI C.DEC [BX] D.MUL CL 5.在进行二重循环程序设计时,下列描述正确的是() A.外循环初值应置外循环之外;内循环初值应置内循环之外,外循环之内 B.外循环初值应置外循环之内;内循环初值应置内循环之内 C.内、外循环初值都应置外循环之外 D.内、外循环初值都应置内循环之外,外循环之内 6.条件转移指令JNE的测试条件为() A.ZF=0 B.CF=0 C.ZF=1 D.CF=1 7.8086CPU在基址加变址的寻址方式中,变址寄存器可以为()A.BX或CX B.CX或SI C.DX或SI D.SI或DI 8.已知BX=2000H,SI=1234H,则指令MOV AX,[BX+SI+2]的源操作在()中。 A.数据段中偏移量为3236H的字节 B.附加段中偏移量为3234H的字节 C.数据段中偏移量为3234H的字节

汇编语言课后习题答案___郑晓薇(整理后的)

习题一 1 无符号数: 11010011=211=D3H,01110111=119=77H, 10000011=131=83H, 00101111=47=2FH, 10101010=170=AAH 带符号数:11010011= -45=D3H,01110111=+119=77H,10000011= -125=83H, 00101111=+47=2FH,10101010= -86=AAH 2 5E8AH,0BE6H,3DEH,4940H 3 00011101+00110101=01010010=5 2H=82 01001001+11101000=00110001=3 1H=49 10111110+01010010=00010000=1 0H=16 10011010+11110001=10001011=8 BH= -117 4 00101001+01010011=01111100+0 0000110=10000010=82H=82 01110011-00100100=01001111-00000110=01001001=49H=49 01100110+00011000=01111110+0 0000110=10000100=84H=84 0000000100110010+01110101=00 00000110100111+00000110 =0000001000000111=0207H=207 5 000020A3H,FF94H,00003456H,007FH,FFFFEC00H 6 无符号数:0~65535,0000H~FFFFH;带符号数:-32768~+32767,8000H~7FFFH 7 (1) 38H等于十进制数56,是十进制数56的补码,数字8的ASCII码,十进制数38的压缩BCD码 (2) FFH等于十进制数-1,是带符号数-1的补码,无符号数为255 (3) 5AH等于十进制数90,是十进制数90的补码,大写字母Z的ASCII码 (4) 0DH等于十进制数13,是十进制数13的补码,回车符的ASCII码 8 (1) 108=01101100B=6CH,补码01101100B,压缩BCD码0000000100001000,ASCII码313038H (2) 46=00101110B=2EH,补码00101110B,压缩BCD码01000110,ASCII码3436H (3) –15=11110001B=F1H,补码11110001B,ASCII码2D3135H (4) 254=0000000011111110B=00FEH,补码0000000011111110B,压缩BCD 码0000001001010100,ASCII码323534H 9 (1) 56+63=01110111B,CF=0,SF=0,ZF=0,OF=0 (2) 83-45=00100110B,CF=0,SF=0,ZF=0,OF=0 (3) -74+29=11010011B,CF=0, SF=1,ZF=0,OF=0 (4) -92-37=01111111B,CF=1, SF=0,ZF=0,OF=1 10 回车、换行、响铃、ESC键、空格键、@、P、p 习题二 9 最少划分为16个逻辑段,最多划分为65536个逻辑段(每段16个字节) 10 CS:IP,DS:BX、SI、DI,ES:BX、SI、DI,SS:SP、BP 11 字节单元保存8位数,字单元保存16位数。根据源操作数的属性确定要访问的是字节单元还是字单元。 12 对于字节单元来说,偶地址和奇地址一样;对于字单元而言,最好用偶地址保存,可减少CPU的访存次数。 13 首单元的物理地址=38AE8H,末单元的物理地址 =38AE8H+7FFFH=40AE7H

汇编语言程序例题0001

【例】试编写一程序计算以下表达式的值。 w = (v- (x * y + z -540 )) /x 式中x、y、z、v均为有符号字数据。 设x、y、z、v的值存放在字变量X、Y、Z、V中,结果存放在双字变量W之中,程序的流程图如图所示。 DATA SEGMENT X DW 200 Y DW 100 Z DW 3000 V DW 10000 W DW 2 DUP (?) DATA ENDS STACK SEGMENT STACK DB 200 DUP (0) STACK ENDS CODESEGMENT ASSUME DS DATA CS: CODE SS: STACK START MOV AX DATA MOV DS AX ; DATA>AX MOV AX X IMUL Y ; (X) * (DX AX MOV CX AX

MOV BX,DX ;(DX AX) T BX : CX ) MOV AX,Z CWD ; (Z)符号扩展 ADD CX,AX ADC BX,DX ; ( BX: CX)+( DX:AX)BX: CX) SUB CX,540 SBB BX,0 ;( BX:CX) - 5 40~BX : CX) MOV AX,V CWD ; (V)符号扩展 SUB AX,CX SBB DX, BX ;( DX: AX)-((BX CX DX: AX) IDIV X ;( DX:AX)/X MOV W,AX ;商5 MOV W+2 DX ;余数D?W+2 MOV AH,4CH INT 21H CODEENDS ;退出DOS 状态 END START 【例】已知某班学生的英语成绩按学号(从 1 开始)从小到大的顺序排列在要查的学 生的学号放在变量NO中,查表结果放在变量ENGLISH中。编写程序如下: STACK SEGMENT STACK DB 200 DUP(0) STACK ENDS DATA SEGMENT TAB DB 80 ,85,86,71,79,96 DB 83 ,56,32,66,78,84 NO DB 10 ENGLIST DB ? DATA ENDS CODE SEGMENT ASSUME DS: DATA,SS: STACK,CS: CODE BEGIN: MOV AX,DATA MOV DS,AX LEA BX,TAB MOV AL,NO DEL AL XLAT TAB MOV ENGLIS,H AL MOV AH,4CH INT 21H CODEENDS TAB表中,

汇编语言程序设计练习题

汇编语言程序设计练习题 阅读程序并完成填空: 1.1.MOV BL,85H MOV AL,17H ADD AL,BL AL=?,BL=?,CF=? 2.2.MOV AX,BX NOT AX ADD AX,BX INC AX AX=?,CF=? 3.3.MOV AX,0FF60H STC MOV DX,96 XOR DH,0FFH SBB AX,DX AX=?,CF=? 4.4.MOV BX,0FFFEH MOV CL,2 SAR BX,CL 5.5.MOV BX,0FFH AND BX,0FFFH OR BX,0F0FH XOR BX,00FFH 上述程序段运行后,BX=?,CF=? 6.6.CMP AX,BX JGE NEXT XCHG AX,BX NEXT:CMP AX,CX JGE DONE XCHG AX,CX DONE:。。。。。 试回答: (1)(1)上述程序段执行后,原有AX、BX、CX中最大数存放在哪个寄存器中? (2)(2)这3个数是带符号数还是无符号数?

7.7.在数据段ADDR1地址处有200个字节,要传送到数据段ADDR2处。 MOV AX,SEG ADDR1 MOV DS,AX MOV ES,------- MOV SI,------- MOV DI,OFFSET ADDR2 MOV-----,200 CLD REP--------- 8.8.ADDR1开始的单元中连续存放两个双字数据,将其求和存放在ADDR2开始的单元。 MOV CX,2 XOR BX,BX CLC NEXT:MOV AX,[ADDR1+BX] ADC AX,------- MOV[ADDR2+BX],AX ADD--------,2 ---------NEXT 9.9.设初值AX=1234H,BX=5678H,DX=0ABCDH,则执行下面一段程序后AX=------,BX=----,DX=--------。 MOV CL,4 SHL DX,CL MOV BL,AH SHL AX,CL SHR BL,CL OR DL,BL 10.10.设有一个首地址为ARRAY有N个字数据的数组,要求求出该数组之和,并把结果存入TOTAL地址中,有关程序如下:MOV CX,------ MOV AX,0 MOV SI,0 START:ADD AX,-----

汇编语言习题答案

第3章自测练习 一、选择题(四选一) 1.表示一条处理器指令所在存储单元的符号地址是 C。 A 变量 B 常量 C 标号 D 偏移量 2.汇编语言中的变量有多种类型属性,但错误的类型是 B 。 A 字节型byte B 字符型char C 字型word D 双字型dword 3.执行mov bx,seg var指令,BX得到变量var的 B 。 A 物理地址 B 段地址 C 偏移地址 D 内容 语句中,采用 C 分隔标号和指令。 A 逗号 B 分号 C 冒号 D 空格 5.欲设定从偏移地址100H开始安排程序,可使用 A 伪指令。 A org 100h B start=100h C start db 100h D start equ 100h 6.与“mov bx,offset var”指令等效的指令是 D 。 A mov bx,var B 1ds bx,var C les bx,var D 1ea bx,var. 7.下条语句 buf db l0 dup(3 dup(?,10),3,10) 汇编后,变量buf占有的存储单元字节数是 B 。 A 100 B 80 C 40 D 20 8.数据定义语句“numl dw(12 or 6 and 2) ge 0eh”,定义的num1单元的内容是 B。 A 0 B 0FFFFH C 1 D 0FFH 9.要求将A、B两个字符的ASCII码41H和42H顺序存放在连续两个字节存储单元中,可选用的语句是 A 。 A db`AB' B dw `AB' C db 0ABH D dw 0ABH 10.在汇编语言程序中,对END语句叙述正确的是 C 。 A END语句是一可执行语句 B END语句表示程序执行到此结束 C END语句表示源程序到此结束 D END语句在汇编后要产生机器码 11.下面的数据传送指令中,错误的操作是D。 A mov ss:[bx+di],byte ptr 10h B mov dx,l000h C mov word ptr[bx],1000h D mov ds,2000h 12.下面指令执行后,变量dab中的内容是 C 。 daw dw 2A05h dab db 0Fah … mov al,byte ptr daw sub dab,al A 0DAH B 0FAH C 0F5H D 0D0H

汇编语言课后习题答案郑晓薇后的

汇编语言课后习题答案郑 晓薇后的 Modified by JEEP on December 26th, 2020.

习题一1 2 5E8AH,0BE6H,3DEH,4940H 3 00011101+00110101=0101001 0=52H=82 4 5000020A3H,FF94H,00003456H,007FH, FFFFEC00H 6无符号数:0~65535,0000H~FFFFH;带符号数:-32768~ +32767,8000H~7FFFH 7 (1) 38H等于十进制数56,是十进制数56的补码,数字8的ASCII 码,十进制数38的压缩BCD码(2) FFH等于十进制数-1,是带符号数-1的补码,无符号数为255(3) 5AH等于十进制数90,是十进制数90的补码,大写字母Z的ASCII码(4) 0DH等于十进制数13,是十进制数13的补码,回车符的ASCII码8 (2) 46=00101110B=2EH,补码00101110B,压缩BCD码01000110,ASCII码3436H 9 (1) 56+63=01110111B, CF=0,SF=0,ZF=0,OF=0(2) 83-45=00100110B,CF=0, SF=0,ZF=0,OF=0(4) -92-37=01111111B,CF=1,SF=0,ZF=0,OF=1 10 回车、换行、响铃、ESC键、空格键、@、P、p 习题二 9 最少划分为16个逻辑段,最多划分为65536个逻辑段(每段16个字节) 10CS:IP,DS:BX、SI、DI,ES:BX、SI、DI,SS:SP、BP 11 字节单元保存8位数,字单元保存16位数。根据源操作数的属性确定要访问的是字节单元还是字单元。

《汇编语言》习题及解答

第1章基础知识 检测点(第9页) (1)1个CPU的寻址能力为8KB,那么它的地址总线的宽度为13位。 (2)1KB的存储器有1024个存储单元,存储单元的编号从0到1023。 (3)1KB的存储器可以存储8192(2^13)个bit,1024个Byte。 ~ (4)1GB是24(2^30)个Byte、1MB是1048576(2^20)个Byte、1KB是1024(2^10)个Byte。 (5)8080、8088、80296、80386的地址总线宽度分别为16根、20根、24根、32根,则它们的寻址能力分别为: 64(KB)、1(MB)、16(MB)、4(GB)。 (6)8080、8088、8086、80286、80386的数据总线宽度分别为8根、8根、16根、16根、32根。则它们一次可以传送的数据为: 1(B)、1(B)、2(B)、2(B)、4(B)。 (7)从内存中读取1024字节的数据,8086至少要读512次,80386至少要读256次。 (8)在存储器中,数据和程序以二进制形式存放。 解题过程: ' (1)1KB=1024B,8KB=1024B*8=2^N,N=13。 (2)存储器的容量是以字节为最小单位来计算的,1KB=1024B。 (3)8Bit=1Byte,1024Byte=1KB(1KB=1024B=1024B*8Bit)。 (4)1GB=24B(即2^30)1MB=1048576B(即2^20)1KB=1024B(即2^10)。 (5)一个CPU有N根地址线,则可以说这个CPU的地址总线的宽度为N。这样的CPU最多可以寻找2的N次方个内存单元。(一个内存单元=1Byte)。 (6)8根数据总线一次可以传送8位二进制数据(即一个字节)。 (7)8086的数据总线宽度为16根(即一次传送的数据为2B)1024B/2B=512,同理1024B/4B=256。 (8)在存储器中指令和数据没有任何区别,都是二进制信息。

汇编语言程序设计第3章【课后答案】

汇编语言程序设计第四版 【课后习题答案】--囮裑為檤第3章汇编语言程序格式 〔习题〕伪指令语句与硬指令语句的本质区别是什么伪指令有什么主要作用 〔解答〕 伪指令语句与硬指令语句的本质区别是能不能产生CPU动作; 伪指令的作用是完成对如存储模式、主存变量、子程序、宏及段定义等很多不产生CPU动作的说明,并在程序执行前由汇编程序完成处理。 〔习题〕什么是标识符,汇编程序中标识符怎样组成 〔解答〕 为了某种需要,每种程序语言都规定了在程序里如何描述名字,程序语言的名字通常被称为标识符; 汇编语言中的标识符一般最多由31个字母、数字及规定的特殊符号(如-,$,,@)组成,不能以数字开头。 〔习题〕什么是保留字,汇编语言的保留字有哪些类型,并举例说明。 〔解答 保留字是在每种语言中规定了有特殊意义和功能的不允许再做其它用处的字符串;汇编语言的保留字主要有硬指令助记、伪指令助记符、运算符、寄存器名以及预定义符号等。汇编语言对大小写不敏感。如定义字节数和字符串的DB就是伪指令助记符。 〔习题〕汇编语句有哪两种,每个语句由哪4个部分组成 〔解答〕 汇编语句有执行性语句和说明性语句; 执行性语句由标号、硬指令助记符、操作数和注释四部分组成; 说明性语句由名字、伪指令助记符、参数和注释四部分组成 〔习题〕汇编语言程序的开发有哪4个步骤,分别利用什么程序完成、产生什么输出文件。 〔解答〕 ⒈编辑文本编辑程序汇编语言源程序.asm ⒉汇编汇编程序目标模块文件.obj ⒊连接连接程序可执行文件.exe或

⒋调试调试程序应用程序 〔习题〕区分下列概念: (1)变量和标号 (2)数值表达式和地址表达式 (3)符号常量和字符串常量 〔解答〕 (1)变量是在程序运行过程中,其值可以被改变的量;标号是由用户自定义的标识符,指向存储单元,表示其存储内容的逻辑地址。 (2)数值表达式一般是由运算符连接的各种常数所构成的表达式,地址表达式是由名字、标号以及利用各种的操作符形成的表达式。 (3)在程序中,为了使常量更便于使用和阅读,经常将一些常量用常量定义语句定义为符号常量,被一对双引号括起来的若干个字符组成的字符序列被称为字符串常量。 〔习题〕假设myword是一个字变量,mybyte1和mybyte2是两个字节变量,指出下列语句中的错误原因。 (1) mov byte ptr [bx],1000 (2) mov bx,offset myword[si] (3) cmp mybyte1,mybyte2 (4) mov al,mybyte1+mybyte2 (5) sub al,myword (6) jnz myword 〔解答〕 (1)1000超出了一个字节范围 (2)寄存器的值只有程序执行时才能确定,而offset是汇编过程计算的偏移地址,故无法确定,改为lea bx,myword[si] (3)两个都是存储单元,指令不允许 (4)变量值只有执行时才确定,汇编过程不能计算 (5)字节量AL与字量myword,类型不匹配 (6)Jcc指令只有相对寻址方式,不支持间接寻址方式 〔习题〕OPR1是一个常量,问下列语句中两个AND操作有什么区别 AND AL,OPR1 AND 0feh 〔解答〕

《汇编语言》第二版习题答案(全)

教材:《汇编语言》 检测点1.1 (1)1个CPU的寻址能力为8KB,那么它的地址总线的宽度为 13位。 (2)1KB的存储器有 1024 个存储单元,存储单元的编号从 0 到 1023 。 (3)1KB的存储器可以存储 8192(2^13)个bit, 1024个Byte。 (4)1GB是 1073741824 (2^30)个Byte、1MB是 1048576(2^20)个Byte、1KB是 1024(2^10)个Byte。 (5)8080、8088、80296、80386的地址总线宽度分别为16根、20根、24根、32根,则它们的寻址能力分别为: 64 (KB)、 1 (MB)、 16 (MB)、 4 (GB)。 (6)8080、8088、8086、80286、80386的数据总线宽度分别为8根、8根、16根、16根、32根。则它们一次可以传送的数据为: 1 (B)、 1 (B)、 2 (B)、 2 (B)、 4 (B)。 (7)从内存中读取1024字节的数据,8086至少要读 512 次,80386至少要读 256 次。 (8)在存储器中,数据和程序以二进制形式存放。 解题过程: (1)1KB=1024B,8KB=1024B*8=2^N,N=13。 (2)存储器的容量是以字节为最小单位来计算的,1KB=1024B。 (3)8Bit=1Byte,1024Byte=1KB(1KB=1024B=1024B*8Bit)。 (4)1GB=1073741824B(即2^30)1MB=1048576B(即2^20)1KB=1024B(即2^10)。 (5)一个CPU有N根地址线,则可以说这个CPU的地址总线的宽度为N。这样的CPU最多可以寻找2的N 次方个内存单元。(一个内存单元=1Byte)。 (6)8根数据总线一次可以传送8位二进制数据(即一个字节)。 (7)8086的数据总线宽度为16根(即一次传送的数据为2B)1024B/2B=512,同理1024B/4B=256。(8)在存储器中指令和数据没有任何区别,都是二进制信息。 检测点 2.1 (1) 写出每条汇编指令执行后相关寄存器中的值。 mov ax,62627 AX=F4A3H mov ah,31H AX=31A3H mov al,23H AX=3123H add ax,ax AX=6246H mov bx,826CH BX=826CH mov cx,ax CX=6246H mov ax,bx AX=826CH add ax,bx AX=04D8H mov al,bh AX=0482H mov ah,bl AX=6C82H add ah,ah AX=D882H add al,6 AX=D888H add al,al AX=D810H mov ax,cx AX=6246H Microsoft(R) Windows DOS

相关文档
相关文档 最新文档