刘臣奇主编-汇编语言程序设计-课外练习题参考答案 下载本文

第一章课外练习题

一、单项选择题:

1.从键盘输入的字符,在计算机内存储的是它的( A )

(A)二进制编码 (B)四进制编码 (C)八进制编码(D)十六进制编码 2.6位无符号二进制数能表示的最大十进制数是( B )。

(A) 64 (B) 63 (C) 32 3.十进制数269变换为十六进制数是( C )。 (A)10B (B)10C (C)10D

(D) 31 (D)10E

4.8位的微型计算机系统是以16位来表示地址,则该微机系统有( C )个地址空间。 (A)255 (B)65535 (C)65536 (D)1048576 5.8位有符号二进制数能表示的最大十进制数是( D )。 (A)256 (B)255 (C)128

(D)127

6.十六进制数88H,可表示成下面几种形式,请找出错误的表示( D )。 (A)无符号十进制数136 (B)带符号十进制数-120 (C)压缩型BCD十进制数88 (D)8位二进制数-8的补码表示

7.有一个数值152,它与十六进制数6A相等,那么该数值是( B )。 (A)二进制数 (B)八进制数 (C)十进制数 (D)四进制数 8.7位ASCII总共可表示( C )个符号。 (A)256 (B)127 (C)128

(D)255 (D)64位

(×)。 (×)。 (√)。 (×)。

9.4B的字长是( C )。

(A)8位 (B)16位 (C)32位

二、判断题(判断每题正误,对的在题后括号内划 “√”,错的划“×”)

1.字节通常用英文单词“Bit”来表示

2.目前广泛使用的Pentium计算机其字长为5个字节

3.存储器中将8个相邻的二进制位作为一个单位,这种单位称为字节

4.微型计算机的字长并不一定是字节的整数倍 三、填空题

1.8位有/无符号整数的表示范围写成16进制形式为(80~~7F) /( 00~~FF)。 2.己知:计算机中有一个“01100001”编码,如果把它看作是无符号数,它是十进制什么数(97);如果认为它是BCD,则表示(01100001)BCD;认为它是某个ASCII,则代表( a )字符。

3.若[X]补=X,则X为 ( 非负数)。 4.(00101011)B+(13)D+(1B)H=(123)Q

5.已知:A=10001011,B=11011010,求A∧B=(10001010);A∨B=(11011011)。

6.已知:X=+0010011B,Y= -0111100B,试用补码完成真值(X+Y)=(11010111);(X - Y)=(01001111)。

7.十进制数的(731)=(011100110001)BCD。

8.(011100110001)BCD=(731)十进制数。 9.将一个0~9之间的数据转换为ASCII需加(30H)。

10.大写英文字母转换为小写英文字母需加(20H)。

11.英文字母“A”~“F”转换为十六进制数值A~F需要减(37H)。

四、简答题

1.什么是汇编语言?为什么要学习汇编语言?

答:汇编语言是机器语言的符号表示形式。它不仅是计算机原理、操作系统等课程的必要先

修课,而且对于训练学生掌握计算机工作原理、程序设计技术、熟练上机操作和程序调试技术都有重要作用。

3.把下列二进制数转换成十进制数。

① 1101.01=13.25 ② 111001.00011=57.9375 ③ 111.001=7.125 ④ 1010.1=10.5 5.把下列十六进制数转换成十进制数。 ① A6.DC=166. ② 9AC.BD=2476.

③ B4A.8D=2890.

④ 1AC.0A=428.

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

① Water=5761746572 ② Great=4772656174

③ Good=476F6F64 ④ After=4166746572

7.回车键、空格键的ASCII代码及其功能是什么?答:0DH、20H。字符从头开始、空一个字符的位置。

第二章课外练习题

一、单项选择题:

1.下列四个寄存器中,哪个寄存器在程序设计中是不可省略的( A )。

(A)CS (B)DS (C)ES (D)SS 2.指令MOV AX, 10[SI]的源操作数字段的寻址方式是( C )。 (A)寄存器寻址 (B)寄存器间址 (C)变址寻址 (D)基址寻址 3.8086∕8088 CPU中可用作寄存器间址的寄存器是( B )。 (A)BX、SI、DI (B)BX、BP、SI、DI (C)BX、IP、SI、DI (D)BX,DX,SI,DI

4.指令MOV 100[SI][BP],AX 目标操作数的隐含段为( B )。 (A)数据段 (B)堆栈段 (C)代码段 (D)附加段

二、判断题(判断每题正误,对的在题后括号内划 “√”,错的划“×”)

1. 当SP, BP, SI,DI用于指针和变址寄存器使用时;

① SP中所含的偏移地址是堆栈段中的偏移地址。

② BP、SI、DI所含的偏移地址是数据段中的偏移地址。

( √ ) ( × )

2. 奇偶标志位PF,当运算结果的低8位中有偶数个1时,被置为0。 ( × ) 3. 零标志位ZF,当运算结果为0时,被置为0。 ( × ) 4. 符号标志位SF,在运算结果为负时被置为1。 ( √ ) 三、填空题

1.在8086/8088CPU中,有许多寄存器,他们是通用寄存器:( AX )( BX )( CX )( DX );指针和变址寄存器:( SP )( BP )( SI )( DI );段寄存器:( CS )( DS )( SS )( ES );指令指针:( IP )还有一个标志寄存器:( PSW ),他们都是( 16 )位的。

2.IBM PC机内存容量最大为( 1M )B,要寻找这样大的空间,需要( 20 )根地址线。 3.每个逻辑段的最大长度为( 64KB )。

4.在IBM PC机中,有4个专门存放段地址的寄存器,称为段寄存器,请写出以下段寄存器的符号:

代码段寄存器:( CS )

堆栈段寄存器:( SS )

四、简答题

数据段寄存器:( DS ) 附加段寄存器:( ES )

1.IBM PC 的存储器为什么采用分段结构?

答:是因为要寻找20位存储器地址的需要。使用两个十六进制的寄存器做一个寻找20位寄存器

工作的一种方法。

2.什么是逻辑地址?什么是物理地址?如何由逻辑地址计算物理地址?

答:逻辑地址是由两部分组成的,即段的基地址和偏移地址。程序员在编写程序时使用的都是逻辑地址。物理地址就是内存单元中的一个惟一的20位二进制数表示的地址,物理地址的范围是从00000H到FFFFFH。CPU与存储器进行数据交换时所使用的地址就是物理地址。

物理地址=段地址×16D+偏移地址。

3.如果在一个程序段开始执行之前,CS=0A7F0H,IP=2B40H,试问该程序段的第一个字的物理地址是多少?答:物理地址=段地址×16D+偏移地址=0A7F0H×16D+2B40H=0AAA00H

4.一个有16个字的数据区,它的起始地址为70A0:DDF6,那么该数据区的最后一个字单元地址是多少?

答:=DDF6H+20H-2H(16个字=32个字节=20H个字节)=DE14即70A0::DE14

5.哪些寄存器可以用来指示存储器地址?答:BX、BP、SI和DI。

6.有一个由20个字组成的存储区,其起始处段地址为4701H,偏移地址为2012H。试写出该存储区首单元和末单元的物理地址。答:该存储区末单元的偏移地址=2012H+28H-2(20个字=40个字节=28H个字节)=2038H。即首单元和末单元的物理地址为49022H和49048H。

7.8086微处理器由哪几部分组成?各部分的功能是什么?

答:8086/8088微处理器由两大部分组成:总线接口单元 BIU和执行单元 EU。 ①BIU:负责与存储器接口,即CPU与存储器之间的信息传送。即: BIU从内存的指定部分取出指令,送至指令队列排队。

从内存的指定部分取出执行指令时所需的操作数,送至EU部分。 ②EU:负责指令的执行。

8.简述8086 CPU的寄存器组织。

答:8086/8088CPU的寄存器是由①通用寄存器②控制寄存器③段寄存器组成。 9.试述8086 CPU标志寄存器各位的含义与作用。

答:它含有9个有用的标志位(其余7位不用),用于记录指令操作后的结果状态信息或控制处理器操作的标志。其含义与作用如下:

进位标志C(Carry Flag)——当加减运算操作后,结果的最高位产生一个进位或借位,则C=1,否则C=0。各种移位指令,逻辑操作指令等也可影响CF的状态。CF位也可表示无符号数的溢出。

溢出标志O(Overflow Flag)——在算术运算中,带符号数的运算结果超出机器所能表示的数据范围称为溢出,当溢出发生时,则O=1,否则O=0。

带符号数的数据范围。8位运算时为:﹣128 ~ +127;16位:﹣32768 ~ +32767。

符号标志S(Sign Flag)——若运算结果的最高位(D15或D7)为1,则S=1,否则 S=0。 零标志Z(Zero Flag)——若运算的结果为0,则Z=1,否则Z=0。

奇偶标志P(Parity Flag)—— 若运算结果中‘1’的个数为偶数,则P=1,否则P=0。

辅助进位标志A(Auxitiary Carry Flag)——记录运算时第3位(半个字节)产生的进位值,若第3位产生进位,则A=1,否则A=0。在执行BCD调整时使用此标志。

方向标志DF(Direction Flag)——用于在串处理指令中控制处理信息的方向。当DF=1时,每次操作后使变址寄存器SI和DI减小,这样就使得串处理操作从高地址向低地址方向处理。当DF=0时,则使SI和DI增大,使得串处理从低地址向高地址方向处理。

中断标志IF(Interrupt Flag)——当IF=1时,允许CPU响应可屏蔽中断请求,否则关闭中断。 陷阱标志TF(Trap Flag) ——又称单步跟踪。用于调试时的单步方式操作。当TF=1时,每条指令执行完后产生陷阱,由系统控制计算机;当TF=0时,CPU正常工作,不产生陷阱。

10.指出下列MOV指令的源操作数的寻址方式。

MOV AX,1234H

MOV MOV MOV MOV MOV MOV MOV

AX,BX

=立即 =寄存器

AX,[BX] =寄存器间接 AX,TABLE ;TABLE是一个变量名 =直接 AX,[1234H] AX,[BX+1234H] AX,[BP][SI]

=直接 =基址 =基址变址 =基址变址

AX,[BX+SI-1234H]