[汇编语言程序设计]期末考试-试卷及答案
《汇编语言程序设计》期末考试-试卷及答案
一、 选择题(每题1分,共20分)
1、下面存储器中属于辅助存储器的是:(CDE)
A. RAM B. ROM C.磁盘 D.光盘 E. 硬盘 2、通常说计算机的内存为32M、64M或128M指的是:(C)
A. RAM的容量 B. ROM的容量 C. RAM和ROM的容量 D.硬盘的容量
3、下面的说法正确的是:(AE)
A. 存储器是计算机中存放程序和数据的记忆部件。 B. 存储器中的信息被读出后即从存储器中消失。
C. 存储器中如果已经存有数据,则不能再向其中写入新的数据。 D. 半导体存储器的存取速度比CD-ROM的存取速度要慢。 E. 辅助存储器需要CPU通过I/O接口访问,因而速度较慢。 4、下面属于系统软件的有(A)
A. WINDOWS B. MASM C. Visual C++ D. WORD 5. 汇编语言的优点不包括__D___。
A 直接有效地控制硬件 B 生成的代码序列短小 C 运行速度快 D 编程容易
6. 下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是( AB) A、AX,BX,CX,DX B、BX,BP,SI,DI C、SP,IP,BP,DX D、CS,DS,ES,SS
7. 可用作寄存器间接寻址或基址、变址寻址的地址寄存器,正确的是( D)。 A.AX,BX,CX,DX B.DS,ES,CS,SS C.SP,BP,IP,BX D.SI,DI,BP,BX
8.某存储单元的物理地址是12345H,可以作为它的段地址有(D ) A.2345H B.12345H C.12340H D.1234H
9、循环指令LOOPNZ终止循环的条件是(B )。 A、CX=0,且ZF=0 B、CX=0,或ZF=1 C、CX≠0,且ZF=0 D、CX≠0,或ZF=1
10.执行下列指令后,正确的结果是(B )。 MOV AL,100 MOV BL,-2
A、 AL=100H BL=02H B、 AL=64H BL=0FEH C、 AL=64H BL=82H D、 AL=100H BL=0FEH
11、执行INC指令除对SF、ZF有影响外,还要影响的标志位是( A)。 A、OF,AF,PF C、OF,PF,CF
B、OF,AF,CF D、AF,PF,CF
12.AND,OR,XOR,NOT为四条逻辑运算指令,下面的解释正确的是(C ) A.指令XOR AX,AX执行后,AX内容不变,但设置了标志位 B.指令OR DX,1000H执行后,将DX最高位置1,其余各位置0 C.指令AND AX,0FH执行后,分离出AL低四位
D.NOT AX,执行后,将AX清0
13、下列传送指令中有语法错误的是( A)。 A、MOV CS,AX C、MOV SS,AX A.ADD BH,01H C.XOR BH,01H A、CF,OF
B、MOV DS,AX D、MOV ES,AX
14.无论BH中原有的数是奇数或偶数,若要使BH中的数一定为奇数,应执行的指令是(B )
B.OR BH,01H D.TEST BH,01H
B、SF,ZF
D、AF,CF,OF,PF,SF,ZF都不确定
B.MOV [DX+DI],AL
15、执行除法指令后,影响的标志位是(D )。 C、CF,OF,SF
16.下面各传送指令中,正确的是(C ) A.MOV [DI],[SI]
C.MOV WORD PTR [BX],0100H D.MOV AL,BX
17、与MOV BX,OFFSET VAR指令完全等效的指令是(D )。 A、MOV BX,VAR B、LDS BX,VAR C、LES BX,VAR D、LEA BX,VAR
18.检查二个无符号数的关系,若要实现AL≥BL时分支去LOP1处,那么在“CMP AL,BL”指令后应跟的分支指令是( A) A.JNC LOP1 B.JA LOP1 C.JC LOP1 D.JGE LOP1
19、编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令有( D)。 A、CMP B、SUB C、AND D、MOV
20.设AL=0AH,下列指令执行后能使AL=05H的是(C ) A.NOT AL B.AND AL,0FH C.XOR AL,0FH D.OR AL,0FH 二、 填空题(每空1分,共23分)
1.计算机的系统分为_硬件(系统)__和 _软件(系统)__两大部分。其中___硬件(系统)_是计算机工作的物质基础,由运算器、控制器、存储器、输入设备和输出设备组成;_软件(系统)_是为了运行、管理和维护计算机而编制的各种程序的总和。
2、中央处理单元的英文缩写是_CPU_,它包括_运算器_、_控制器_、_寄存器_ 三部分。 3、存储器中数据是以__字节_____为单位存放的,它是一个__8__位二进制数。 4、在表达存储容量时,1KB=_1024KB;1MB=_1024____KB。 5、8086/8088CPU的地址线有20条,它的存储容量为_1MB(220)__。 6、在微机系统中,常用的输入设备有___键盘(鼠标)_______________,
输出设备有__________显示器______,光盘和磁盘等辅存可以认为是_既是输入设备又是输出设备_____。
7、系统通过__端口(I/O接口)__与外设进行通信。
8机器指令是一组 ___二进制代码_______,由__操作码_____和__操作数___构成。
9汇编语言是用___助记符______表示的指令。用汇编语言编写的程序叫做_汇编语言源程序____。他不能被直接执行,需要经过__汇编程序____翻译成机器语言代码才可以执行。 三、 简答题(共57分)
1. 汇编语言与高级语言的比较(3分)
(简述汇编语言相对高级语言的特点)要求程序执行较快,占用较小的存储容量; 要求直接、有效地控制硬件;
大型软件中需要提高性能、优化处理的部分; 开发新的处理器程序的时候;底层系统软件分析; 加密解密,分析和防治计算机病毒。 2. 汇编语言的应用场合 (4分)
要求程序执行较快,占用较小的存储容量;
要求直接、有效地控制硬件;
大型软件中需要提高性能、优化处理的部分; 开发新的处理器程序的时候; 底层系统软件分析;
加密解密,分析和防治计算机病毒。
3. 将十进制数据“46”和“-46”用8比特位原码、补码表示。(4分)
先将“46”转换为二进制数:(46)10=(2E)16=(00101110)2 “46”用原码表示为:46=(00101110)原码 “46”用补码表示为:46=(00101110)补码 “-46”用原码表示为:-46=(10101110)原码 “-46”用补码表示为:-46=(11010010)补码
4. 完成同指令XCHG AX,BX相同功能的指令或指令序列(4分)
MOV CX,AX MOV AX,BX MOV BX,CX
5. 假定(DS)=2000H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(BX)=0100H,(BP)=0010H,数
据段中变量名VAL的偏移地址为0050H,试指出下列源操作数字段的寻址方式是什么?其物理地址值是多少?(12分) (1) MOV
AX, 0ABH
(2) MOV
AX, BX
(3) MOV AX, [100H] (5) MOV AX, [BX] (7) MOV AX, [BP] (11) MOV
(4) MOV AX, VAL (6) MOV AX, ES:[BX] (8) MOV AX, [SI] (10) MOV
AX, VAL[BX]
AX, VAL[BX][SI]
(12) MOV
(9) MOV AX, [BX+10]
(1) 立即方式;
AX, [BX][SI]
操作数在本条指令中 操作数为 (BX)=0100H PA=20100H PA=20050H PA=20100H PA=15010H PA=200A0H PA=20110H PA=20150H PA=201A0H
(2) 寄存器寻址方式; (3) 直接寻址方式; (4) 直接寻址方式;
(5) BX寄存器间接寻址方式; (7) BP寄存器间接寻址方式; (8) SI寄存器间接寻址方式; (9) BX寄存器相对寻址方式;
(6) 附加段BX寄存器间接寻址方式; PA=21100H
(10) BX寄存器相对寻址方式;
(11) BX和SI寄存器基址变址寻址方式;
(12) BX和SI寄存器相对基址变址寻址方式; PA=201F0H
6. 在ARRAY数组中依次存储了七个字数据,紧接着是名为ZERO的字单元,表示如下:(4分)
ARRAY
DW 23, 36, 2, 100, 32000, 54, 0
ZERO DW ?
(1) 如果BX包含数组ARRAY的初始地址,请编写指令将数据0传送给ZERO单元。 (2) 如果BX包含数据0在数组中的位移量,请编写指令将数据0传送给ZERO单元。
TABLE 0AH
00H MOV [BX+(7)*2], AX
14H (2) MOV AX, ARRAY [BX]
00H
MOV ARRAY [BX+2], AX
1EH
00H 28H 7 如TABLE为数据段中0032单元的符号名,其中存放的内容为1234H,试问以下两条指
00H 令有什么区别?指令执行完后AX寄存器的内容是什么?(4分)
32H MOV AX, TABLE
00H LEA AX, TABLE
8题的TABLE存
答:MOV AX, TABLE是将TABLE单元的内容送到AX,(AX)=1234H
储方式
答:(1) MOV AX, [BX+(7-1)*2]
LEA
AX,TABLE是将TABLE单元的有效地址送到AX,(AX)=0032H
8 执行下列指令后AX寄存器中的内容是什么?(4分)
TABLE ENTRY
DW 10, 20, 30, 40, 50 DW 3 ┇
MOV BX, OFFSET TABLE ADD BX, ENTRY MOV AX, [BX] 答:(AX)=1E00H
9设(DS)=1B00H,(ES)=2B00H,有关存储单元的内容如上右图所示。请写出两条指令把字变量X装入AX寄存器。(4分)
答:MOV BX, [2000H]
MOV AX, ES:[BX]
10.写出执行以下计算的指令序列,其中X、Y、Z、R、W均为存放16位带符号数单元的地址。(8分)
(1) Z←W+(Z-X)
(2) Z←W-(X+6)-(R+9) (4) Z←((W-X)/5*Y)*2
(3) Z←(W*X)/(Y+6),R←余数 答:(1) MOV AX, Z
SUB AX, X ADD AX, W MOV Z, AX (2) MOV BX, X ADD BX, 6 MOV CX, R ADD CR, 9 MOV AX, W SUB AX, BX SUB AX, CX MOV Z, AX (3) ADD Y, 6 MOV AX, W IMUL X IDIV Y MOV Z, AX MOV R, DX (4) MOV AX, W SUB AX, X CWD
MOV BX, 5 IDIV BX IMUL Y
SHL AX, 1 ;((DX),(AX))*2
RCL DX, 1
11. 已知程序段如下: (6分)
MOV AX, 1234H
;000AH, 0014H, 001EH, 0028H, 0032H
;以下程序都未考虑带符号数的溢出
MOV CL, 4 DEC AX MOV CX, 4 MUL CX INT
20H
ROL AX, CL
(1) 每条指令执行完后,AX寄存器的内容是什么? (2) 每条指令执行完后,进位、符号和零标志的值是什么? (3) 程序结束时,AX和DX的内容是什么?
MOV AX, 1234H MOV CL, 4 DEC AX MOV CX, 4 MUL CX INT 试问:
(1) 每条指令执行完后,AX寄存器的内容是什么? (2) 每条指令执行完后,进位、符号和零标志的值是什么? (3) 程序结束时,AX和DX的内容是什么? 答:(1) 见注释;
(2) 见注释;
(3) (AX)=8D00H,(DX)=0
20H
ROL AX, CL
;(AX)=1234H,标志位不变 ;(AX)和标志位都不变
;(AX)=2341H,CF=1,SF和ZF不变 ;(AX)=2340H,CF=1不变,SF=0,ZF=0 ;(AX)和标志位都不变
;(AX)=8D00H,CF=OF=0,其它标志无定义