汇编语言试题 A 一 单项选择题 ( 本大题共 20 小题, 每小题 1 分, 共 20 分 ) 在每小题列出的四个备选项中只有一个是符合题目要求的, 请将其代码填写在题后的括号 内 错选 多选或未选均无分 1. 当执行 ADD AX,BX 指令后, 若 AX 的内容为 4E52H 时, 设置的奇偶标志位 PF=0, 下 面的叙述正确的是 ( ) A. 表示结果中含 1 的个数是奇数 B. 表示结果中含 1 的个数是偶数 C. 表示该数是奇数 D. 表示结果中低 8 位中含 1 的个数是奇数 2. 设物理地址 (21000H)=20H,(21001H)=30H,(21002H)=40H 如从地址 21001H 中取出一个 字的内容是 ( ) A.2030H C.3020H B.3040H D.4030H 3. 转移指令 JP NEAR PTR PROCA 的转移范围是 ( ) A.8000H~7FFFH C.80H~7FH B.7FFFH~0FFFH D.0FH~7FH 4. 设 CF=1, 实现 AL 内容乘 2 的指令是 ( ) A.RCL AL,1 C.SHL AL,1 B.SAR AL,1 D.ROR AL,1 5. 算术右移指令 SAR 和逻辑右移指令 SHR, 两条指令执行结果完全相同的条件是 ( ) A. 目的操作数最高位为 0 B. 目的操作数最高位为 1 C. 目的操作数为任意情况 D. 无论什么情况都不可能完全相同 6. 没有语法错误的输入指令是 ( ) A.IN AL,30H C.IN DX,AL B.IN 30H,AL D.IN AL,[BX] 7. 与 LEA BX,BUF 指令完全等效的指令是 ( ) A.OV BX, BUF C.OV BX,OFFSET BUF B.LDS BX,BUF 8. 设有变量 VAR 和标号 LAB, 不正确... 的指令是 ( ) A.LEA AX,VAR C.JP NEAR PTR VAR D.OV BX,WOKD PTR BUF B.LEA AX,LAB D.JP SHORT LAB 9. 设 SP 的初值为 1000H, 执行指令 PUSH AX 后 SP 的值是 ( ) A.OFFFH B.1001H 1
C.0FFEH D.1002H 10. 下列指令执行后既能使 AX=0 同时又使 CF=0,OF=0 的是 ( ) A.XOR AX,AX B.AND AX,AX C.OR AX,AX D.TEST AX,0 11. 在指令的操作数字段中, 允许出现表达式, 若 BUF1 与 BUF2 均为变量名, 下面指令中正确的是 ( ) A.OV DX,BUF1*BUF2 B.OV DX,BUF1/BUF2 C.OV DX,(BUF1*BUF2)-BUF1 D.OV DX,BUF2-BUF1 12. 汇编语言源程序, 可以是 ( ) A. 可以直接由机器执行 B. 必须由编译程序生成目标程序才能执行 C. 必须由解释程序生成目标程序才能执行 D. 必须由汇编程序汇编成目标程序才能执行 13. ORG 200H BUF DB 12H,34H OV AX, WORD PTR BUF 上述指令语句执行后 AX 中的内容是 ( ) A.3412H B.1234H C.0200H D.0012H 14. 伪指令 DA1 DB 04H DUP(3 DUP(2), 2 DUP(3)) 在数据区中能构成 0203H 操作数共有 ( ) A.07 个 B.04 个 C.03 个 D.02 个 15. 设 NU1 EQU 100 NU2= 64H 下面指令执行后, 使 BL 中为全 1 的指令是 ( ) A.OV BL,NU1 EQ NU2 B.OV BL,NU1 LT NU2 C.OV BL,NU1 NE NU2 D.OV BL,NU1 GT NU2 16. 设非压缩 BCD 码 (AL)=09H,(BL)=04H 在执行 SUB AL,BL 指令后应选的校正指令是 ( ) A.DAA B.AAS 2
C.DAS 17. 设 AX=9ABCH,DX=8765H D.AAA PUSH AX PUSH DX POP AX POP DX 上述 4 条指令执行后,AX,DX 中内容分别是 ( ) A.AX=9ABCH DX=8765H B.AX=9ABCH DX=9ABCH C.AX=8765H DX=8765H D.AX=8765H DX=9ABCH 18.DA1 EQU WORD PTR DA2 DA2 DB OABH,OCDH SHL DA1,1 SHR DA2,1 上述两条指令执行后,DA2 中两字节单元内容分别是 ( ) A.0ABH,0CDH B.2BH,9BH C.4DH,57H D.56H,9BH 19. 无条件转移指令 JP 实现段间间接转移, 转移的目标地址在 ( ) A. 某个字存储单元中 B. 某个双字存储单元中 C. 某个 16 位通用寄存器中 D. 两个 16 位通用寄存器中 20. 检查 BUF 单元的内容是否为正偶数, 下面程序段正确的是 ( ) A.OV AL,BUF B.OV AL,BUF JS K1 AND AL,11H SHR AL,1 JNE K1 JC K1 ; 是正偶数 ; 是正偶数 K1: K1: C.OV AL,BUF D.OV AL,BUF JNP K1 TEST AL,81H TEST AL,80H JNE K1 JNE K1 ; 是正偶数 3
; 是正偶数 K1: K1: 二 填空题 ( 本大题共 5 小题, 每小题 1 分, 共 5 分 ) 21.8086/8088 存贮器地址分段时, 每个段起始地址的特征是 22. 执行带符号数字节相乘指令 IUL BL 后,CF=1,OF=1 意味着 23. 假设执行前 AX=7862H, 指令 XOR AX,AX 执行后 AX 中的值是 24.ARRAY DB 0,2 DUP(1,2),0,3 汇编时生成的数据依次是 25. 在存取一个存储器操作数时, 段地址必须由 提供 三 简答题 ( 本大题共 3 小题, 每小题 2 分, 共 6 分 ) 26. 在汇编源程序时, 下面数据段共分配多少个字节存储单元? 变量 BUF 的偏移地址是多少? DATA SEGENT ORG $+20H DA1 DB 10H DUP(2,3) DA2 DW 10H DUP(2,3) ORG $+20H BUF DD DA1,DA2 DATA ENDS 27. 设 BX=0FFFFH, 下面指令序列中, 每条指令执行后, 分别为 0,1 表示 SF ZF CF 的值, 若对标志位无影响, 用斜杠 / 表示 SF ZF CF STC XOR BX, BX ADD BX,8001H SAR BX,1 28. 如果执行 NEG AL 指令后 AL 中的内容仍保持不变, 那么 AL 中的值是多少? 执行后 OF 的值又是多少? 四 程序分析题 ( 本大题共 7 小题, 每小题 5 分, 共 35 分 ) 29. DA1 DB 01234 DA2 DB 5 DUP(0) OV SI,0 4
OV CX,5 LOP:OV AL,DA1[SI] ADD AL,11H OR AL,01H OV DA2[SI],AL INC SI LOOP LOP 试问 :(1) 程序段执行后, 写出 DA2 各字节中的数据 (2) 程序中 OV AL,DA1[SI] 指令的源操作数是什么寻址方式 30.VAR1 DW 1234H,89,255,-2,-0AH VAR2 DB 34,78H,44,22,19,-12 OV AH,23H LEA BX,VAR1+4 OV AL,BYTE PTR [BX+1] OV SI,WORD PTR VAR2+3 程序段执行后 AX=,SI= 31.BUF DW 1,0,0AB1CH,582H,9,3A04H,9,0 LEA DI,BUF OV CX,8 OV AX,9 REPNZ SCASW JNZ K1 SUB DI,OFFSET BUF OV DX,DI SHR DX,1 ADD DL,30H OV AH,2 INT 21H K1: 上述程序执行后 :(1) 程序完成什么功能?(2) 显示输出的是什么值? 5
32. OV BX,1 XOR AX,AX OV CX,5 NEXT:ADD AX,BX INC BX LOOP NEXT 上述程序段执行后 AX= ;BX= 33. 设 AL 中高低 4 位分别有大于 7 的数, OV AH,AL AND AH,88H OV AL,AH OR AL,11H 程序段运行后,AH=,AL= 34.AT DB 0AH,0BH,0CH,0DH,0EH,0FH,00H OV BX,0 LOP:OV DL,AT[BX] CP DL,0 JZ DONE ADD DL,37H OV AH,2 INT 21H INC BX JP LOP DONE: 1 上述程序段执行后在屏幕上显示的内容依次是 : 2 执行后 BX= 35.DEC2 DB 56 XOR DI,DI OV BL,DEC2[DI+1] AND BL,0FH 6
OV AL,DEC2[DI] AND AL,0FH OV DL,10 UL DL ADD AL,BL 上述程序段运行后,AL=,BL= 五 程序填空题 ( 本大题共 2 小题, 每小题 6 分, 共 12 分 ) 36.NU 和 NU+1 单元分别存有一个 8 位带符号数, 下面程序段将两数中大者 NU 单元, 小者 NU+1 单元, 请在方框处各填一条指令补充完整 OV AL,NU CP AL,NU+1 1 2 OV NU,AL DONE: 37. 下面程序段是将 BUFF 单元的绝对值送入 DAR 单元, 请将空白处各填上一条指令 BUFF DW DAR DW? OV AX,BUFF 1 JZ NEXT 2 NEXT:OV DAR,AX 六 编制程序题 ( 本大题共 3 小题, 共 22 分 ) 38. 用字符串指令编制一程序段, 把以 DAT1 为首址的数据区中的 100 个字节数据依次传送到以 DAT2 为首址的数据区中 要求 : 在程序中按地址递减方式进行数据传送 (5 分 ) 39. 设有 DX:AX 构成一个 32 位数据, 从 AX 的低位 ( 第 0 位 ) 开始, 逐位向高位和 DX 置 1, 置 1 的个数由 CX 的内容确定 ( 已知 CX<32) 试编制一程序段, 实现上述要求 (5 分 ) 7
40. 编写一完整源程序, 将 DB1 中的二进制数按位倒排送 DB2 中, 即 DB1 第 0 位送 DB2 第 7 位,DB1 第 1 位送 DB2 第 6 位, 依次类推 (12 分 ) DATA DB1 DB2 DATA SEGENT DB XX; 任一字节数 DB? ENDS 8
9
10
11