《《汇编语言》练习题库参考答案.pdf》由会员分享,可在线阅读,更多相关《《汇编语言》练习题库参考答案.pdf(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实用文档.华中师范大学网络教育学院汇编语言程序设计练习测试题库参考答案一、选择题答案:1.B 2.C 3.B 4.C 5.C 6.C 7.A 8.A 9.D 10.C 11.B 12.A 13.C 14.B 15.A 16.D 17.A 18.A 19.D 20.A 21.A 22.D 23.C 24.B 25.C 26.D 27.B 28.D 29.A 30.A 31.D 32.A 33.D 34.D 35.D 36.D 37.B 38.C 39.A 实用文档.40.D 41.A 42.C 43.B 44.B 45.C 46.D 47.D 48.D 49.A 50.A 51.D 52.B 5
2、3.C 54.A 55.B 56.C 57.A 58.C 59.D 60.C 61.A 62.D 63.C 64.C 65.D 66.A 67.B 68.C 69.B 70.D 71.D 72.A 73.D 74.C 75.D 76.C 77.C 78.D 79.D 80.B 二、判断题答案:1.实用文档.2.3.4.5.6.7.8.9.10.11.1213.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28 29.30.31.32.33.34.35.36.37.38.39.40.41.42.三、填空题答案:实用文档.1运行管理程序2汇编程序汇编3存储器译
3、码分析4源地址目标地址存储器 IO 设备5.6 3 664KD 字节7不能 64K 8.00 9.55 10.FF 11.55 12.源操作数13.目的操作数14.CNT 1 CL 15.字 字节16.带符号数无符号数17.CF OF 18.SI DI 19.AL AX DF 20.AL AX SI 21.+-22.段内转移段间转移23.24.段地址偏移地址25.-128+127 26.条件码27.末尾28.不影响29.内部外部30.IP CS PSW 31.第一个32.不能33.PTR 34.标号35.:36.PTR 37.地址表达式38.SEG 39.OFFSET 40.TYPE 41.L
4、ENGTH 42.HIGH 43.标号、变量44.指令、伪操作、宏指令的助记符实用文档.45.表达式46.注释项47.操作数项48.顺序线性法49算法存储工作50 1-几 没有51.00H 4CH 52数据工作53.计数控制法54.任一55.256 56.已知未知57.单重循环58.满足59.条件60.DO-UNTIL DO-WHILE 61.IF 62.EXE 63.堆栈 ,SS 64.;(或分号)65.AH 66.用寄存器传递、用存储单元传递、用堆栈传递(顺序可调换)67.中断 ,中断源。68.SI ,DI 69.接口70.16H 、10H 和 17H 71.ASCII码 ,属性72.00
5、0DH 85B92H 73.85B92H 74.SHL AX,1 SHL,AX,1 75.OF,AF,PF 76.DH=0F0H CF=1 77.+65528_,_-32760_ 78._ 状态 _,_ 控制 _ 79._CF_,_ OF_ 80.下一条指令的首地址81._6_,_3_ 82._ ES:DI_ 83.SI或 DI 84.320EH 85.100H 四、编程题答案:1.试编写一个程序段,要求能从键盘接收一个个位数N,然后响铃N次(响铃的ASCII 码实用文档.为 07)。MOV AH,01 INT 21H MOV CH,AL DOWN:MOV AH,02H MOV DL,07H
6、INT 21H DEC CH JNZ DOWN 2.编写一个完整的汇编语言程序,在屏幕上显示“华中师范大学”的英文名称。DATA SEGMENT STR DB”HUA ZHONG SHI FAN DA XUE$”DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA BEGIN:MOV AX,DATA MOV DS,AX LEA DX,STR MOV AH,09H INT 21H MOV AH,4CH INT 21H CODE ENDS END BEGIN 3.编程求从1 开始连续50 个奇数之和,并将结果存放在SUM 字存储单元中。DATA SEGMENT
7、 SUM DW?DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA BEGIN:MOV AX,DATA MOV DS,AX MOV CX,50 MOV AX,1 MOV BX,1 LOP:ADD AX,BX ADD BX,2 DEC CX JNZ LOP MOV SUM,AX 实用文档.MOV AH,4CH INT 21H CODE ENDS END BEGIN 4.已知数组A包含 6 个互不相等的整数,数组B包含 9个互不相等的整数,试编一程序将在 A、B两数组中都出现的整数存放于数组C中。DATA SEGMENT A DB 2,B DB 5,.C D
8、B?DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA BEGIN:MOV AX,DATA MOV DS,AX LEA SI,A LEA DI,B LEA BX,C MOV CH,6 LOP1:MOV CL,9 LOP:MOV AH,SI CMP DI,AH JNZ L MOV BX,AH INC BX L:INC DI DEC CL JNZ LOP INC SI LEA DI.B DEC CH JNZ LOP1 MOV AH.4CH INT 21H CODE ENDS END BEGIN 5.试编写从内存BUF单元开始的256 个字单元的清零程序。DA
9、TA SEGMENT BUF DW 21,22,.DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA 实用文档.BEGIN:MOV AX,DATA MOV DS,AX LEA BX,BUF MOV CX,0FFH LOP:MOV BX,0 ADD BX,2 DEC CX JNZ LOP MOV AH,4CH INT 21H CODE ENDS END BEGIN 6.设在变量ADR为起始地址的字节存储单元中存放一组有符号数据,编写程序分别统计:(1)正数的个数;(2)负数的个数;(3)0 的个数。DATA SEGMENT ADR BD 9,-1,3,-5
10、,4,.SUM DB?,?,?DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA BEGIN:MOV AX,DATA MOV DS.AX LEA BX,ADR LOP:MOV AH,BX CMP AH,0 JZ L1 JL L2 INC CH JMP DOWN L1:INC CL JMP DOWN L2:INC DL DOWN:DEC DL JNZ LOP MOV SUM,CL MOV SUM+1,CH MOV SUM+2,DL MOV AH,4CH INT 21H CODE ENDS END BEGIN 7.在 DATA1首址区有100 个字节数据,试
11、编写一个完整程序,将其中的奇、偶数分开。统计实用文档.奇、偶数的个数,并将奇数送DATA2首址区,偶数送DATA3首址区。DATA SEGMENT DATA1 DB 12,3,4,.DATA2 DB 100 DUP(?)DATA3 DB 100 DUP(?)DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA BEGIN:MOV AX,DATA MOV DS,AX LEA BX,DATA1 LEA SI,DATA2 LEA DI,DATA3 MOV CH,0 MOV CL,0 MOV DX,100 LOP:MOV AH,BX TEST AH,01H JNZ
12、 L MOV DI,AH INC DI INC CL JMP L1 L:MOVSI,AH INC SI INC CH L1:INC BX DEC DX JNZ LOP MOV AH,4CH INT 21H CODE ENDS END BEGIN 8.编写一程序段,将AL 中的第 7 位和第 0 位,第 6 位和第 1 位,第 5 位和第 2 位,第 4位和第 3 位互换。MOV CX,8MOV AH,0 K1:SHR AL,1 实用文档.RCL AH,1 DEC CX JNZ K1 MOV AL,AH 9.编制一个程序求数组变量ARRAY 中有多少个二进制位为1 的程序。DATA SEGMEN
13、T ARRAY DW-l,7FFFH,-80000H+9,-56ABH DW 0B12H,-2,O,6578H,30EFH COUNT EQU($-ARRAY)2 NUMBIT DB 2 DUP(?)TEM DW?DATA ENDS STACK SEGMENT STAPN DB 1000 DUP(?)SYACK ENDS CODE SEGMENT ASSUME CS,CODE,DS:DATA,SS:STACK BEGIN PROC FAR PUSH DS SUB AX,AX PUSH AX MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX MOV TEM
14、,SP LEA BX,ARRAY MOV CX,COUNT GOON:MOV AX,LBX AGAIN:SHL AX,1 JNC NEXT ADD WORD PTR NUMBIT+1 ADC NUMBIT+2,0 NEXT:AND AX,AX JNZ AGAlN ADD BX,2 实用文档.LOOP GOON MOV SP,TEM RET BEGIN ENDP CODE ENDS 10写一子程序CRLF,其功能是输出回车换行。CRLF PROC PUSH AX PUSH DX MOV AH,2 MOV DL 0DH INT 21H MOV DL,0AH INT 21H POP DX POP A
15、X RET CRLF ENDP 11.编一程序将字节变量DATAl中的压缩BCD数转换成二进制数,并将其存储到原变量中去的程序。DATA SEGMENT DATAl DB 99H TEM DW?DATA ENDS STACK SEGMENT STAB DB l00 DUP(?)STACK ENDS CODE SEGMENT ASSUME CS;CODE,DS:DATA,SS:STACK START PROC FAR PUSH DS SUB AX,AX PUSH AX MOV AX,DATA MOV DS,AX MOV TEM,SP MOV AL,DATAl MOV CL 4 SHR AL,CL
16、 MOV DL,lO MUL BL 实用文档.MOV DL,Al MOV AL,DATAl AND AL,0FH ADD AL,BL MOV DATA1。AL MOV SP,TEM RET START ENDP CODE ENDS END START 12.试编写一程序段,在CHAR 为首址的26 个字节单元中依次存放字母AZ。char db 26 dup(?).start:lea bx,char mov al,A mov cx,26 lop1:mov bx,al inc al inc bx loop lop1.13.设在 DAT1,DAT2字单元中存放一双字长有符号数,编一程序段,完成求出该
17、双字长数的绝对值后送ABS1和 ABS2字存储单元。start:mov ax,dat1 mov dx,dat2 实用文档.or dx,dx jns next not ax not dx add ax,1 adc dx,0 next:mov abs1,ax mov abs2,dx 14.有两个无符号数分别存放于DATA1和 DATA2单元,要求将两数中大的一个挑选出来,并送入 DATA3单元。MOV AL,DATA1 CMP AL,DATA2 JNC S1 MOV AL,DATA2 S1:MOV DATA3,AL HLT 15.试编写一个汇编语言程序,要求对键盘输入的小写字母用大写字母显示出来。
18、BEGIN:MOV AH,1 实用文档.INT 21H CMP AL,aJB STOP CMP AL,zJA STOP SUB AL,20H MOV DL,AL MOV AH,2 INT 21H JMP BEGIN STOP:RET 16.编制程序段实现:将AX 寄存器中的16 位二进制数分成四组,每组4 位,然后把这4组数分别放在AL、BL、CL、和 DL中。BC MOV BH,AL MOV CH,AH MOV AL,AH AND AL,0F0H MOV BL,AH AND BL,0FH MOV CL,BH AND CL,0F0H MOV DL,BH AND DL,0FH 17.编制完整程序
19、实现下列算式:W=X+Y+36-Z。设 X、Y、Z、W均为双字长数据,各自的低十六位数和高十六位数分别存放在X、X+2、Y、Y+2、Z、Z+2 的存储单元中,结果的低十六位字和高十六位字分别存放在W 和 W 2两个单元中。BC DATA SEGMENT X DD Y DD Z DD W DD DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA 实用文档.START:MOV AX,DATA MOV DS,AX MOV AX,X ADD AX,Y MOV BX,X+2 ADC BX,Y+2 ADD AX,36 ADC BX,0 SUB AX,Z SBB BX
20、,Z+2 MOV W,AX MOV W+2,BX CODE ENDS END START 18.下述程序段完成计算220 之间的偶数的和,并存于 AX中。试把空白处填上适当的指令。CXTK XOR AX,AX MOV BX,0 MOV CX,10 或 MOV CX,0AH CONT:ADD AX,BX ADD BX,2 LOOP CONT 19.试编制一源程序,统计 DA1字单元中含0 的个数,如统计的个数为奇数,则将进位位置1,否则进位位清0。BC DATA SEGMENT DA1 DW XXXX DATA ENDS 答:CODE SEGMENT ASSUME CS:CODE,DS:DATA
21、 START:MOV AX,DATA MOV DS,AX LEA SI,DA1 MOV CX,16 XOR BL,BL AGAIN:MOV AL,SI HL AL,1 JC NEXT INC BL NEXT:INC SI LOOP AGAIN TEST BL,01H 实用文档.JNE L1 CLC JMP DONE L1:STC DONE:MOV AH,4CH INT 21H CODE ENDS END START 20.设在内存单元SQTAB 首址开始存放了015 的平方数表。要求用直接查表法编一程序,求出 A单元中给定数(=15的平方值送B单元保存。BC 答:DATA SEGMENT SQTAB DB 0,1,4,9,16,25,36,49,64,81 DB 100,121,144,169,196,225 A DB 12 B DB?DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START PROC FAR PUSH DX XOR AX,AX PUSH AX MOV AX,DATA MOV DS,AX MOV BX,OFFSET SQTAB MOV AL,A XLAT MOV B,AL RET START ENDP CODE ENDS END START
限制150内