内容发布更新时间 : 2024/12/26 13:14:26星期一 下面是文章的全部内容请认真阅读。
汇编语言程序设计模拟试题及参考答案3
一、单项选择题(从四个备选答案中选出一个正确的答案填在题干的括号内)(20分)
1. 指令MOV AL,[BX+SI]的源操作数的寻址方式为 ( )。 A. 变址寻址 B. 寄存器间接寻址 C. 基址寻址 D.基址变址寻址 2.确定下列哪些数据在汇编语言中的表示是正确的 ( ) A.19B+25D B. 25 AND 0D3H C.108Q-102 D. 101B MUL 0ABH 3.已知AL,BX为带符号数,计算AL*BX的乘积,使用下述程序段 ( )。 A. MOV AH,0 B. XOR AH,AH MUL BX MUL BX
C. MOV AH,-1 D. CBW IMUL BX IMUL BX
4. 已知AL=68H,BL=5AH,指令ADD AL,BL执行后,OF和CF的值分别为 ( )。
A. 0,0 B. 0,1 C. 1,0 D. 1,1 5. 已知SP=100H, 指令CALL WORD PTR[SI]执行后,SP的内容为 ( )
A. 100H B. 102H C. 00FEH D. 98H 6. 已知AH=0FFH, AL=0FFH, 执行IMUL AH后, AX的内容应为 ( )。
A. 0FFFFH B. 0FFH C. 0001H D. 0FF01H 7. JMP DWORD PTR[SI] 的目标地址偏移量为 ( )。 A. IP+[SI] B. IP+SI的内容 C. SI所指向的内存字单元的内容 D. SI所指向的内存双字单元的内容
8. 下述对近类型的子程序PN的调用中,哪一个不能够正确地调用该子程序 ( )。 A. CALL PN B. LEA AX,PN CALL AX
C. MOV AX,PN D. MOV AX,OFFSET PN
CALL AX CALL AX
9. 初始化8259A时,ICW2的值为15H,当IR4端有中断请求时,8259A送出的中断方式码是( )。
A. 10H B. 14H C. 15H D. 19H
10. 在两个8259A级联的中断系统中,从8259A连接在主8259A的IR5上,主8259A和从8259A的ICW3应设置为 ( )。
A. 10H,05H B. 05H,10H C. 20H,05H D. 05H,20H
二、判断题(判断每题正误,对的在题后的括号内打“√”;错的在题后的括号内打“×”)。(10分) 1. MOV DS,CS ( ) 6. INT 10H ( ) 2. NOT AL ( ) 7. REP LODSB ( ) 3. ADD AX, SS ( ) 8. LOOP 100 ( ) 4. LEA AX, [SI] ( ) 9. CLD ( ) 5. RET 2 ( ) 10. CALL 100 ( ) 三、填空题。(20分)
1. 已知:BX=100H,BP=200H,SI=300H,DS=1000H,SS=2000H,CS=3000H,指出下述指令中存储器操作数的有效地址及实际地址。(6分)
第 1 页 共 6 页
指 令 有效地址 实际地址
MOV AL,[SI+50H] MOV AL,[BP]
MOV CS:[BX-30H],AL
2. 写出下述两条数据定义伪指令语句经过汇编后的内存分配情况。(6分) DATA1 DB -63,‘63’ DATA2 DW -63,‘63’
DATA1 DATA2
3. 依据下述子程序说明文件把子程序补充完整。(8分)
1)子程序名:MSUB;
2)子程序功能:多字节数据相减;
3)入口条件:被减数和减数的低字节地址分别在SI和DI中,字节数在CX中; 4)出口条件:结果值在被减数单元(SI为地址指示器); 被减数大于或等于减数时,CF=0,否则CF=1; 5)受影响的寄存器:F。
MSUB PROC PUSH SI PUSH AX PUSH CX PUSH DI ( )
MSUB1: MOV AL,[DI] SBB [SI],AL ( ) ( )
LOOP MSUB1 POP DI POP CX POP AX POP SI ( )
MSUB ENDP 四、改错题。(10分)
下列程序中至少有10个语法性的错,请将这些错误找出来。 1. ********EXAM??.?******
2. DSEG SEGMENT 3. ARGX DB 100
第 2 页 共 6 页
4. RLT DB ? 5. DSEG END 6. CSEG SEGENT 7. ASSUME CS:CSEG;DS:DSEG 8. BEGIN: MOV AX,DATA 9. MOV DS,AX 10. MOV AX,ARGX 11. OR AL,AL 12. JS ABS1 13. JE MOVE 14. CMP AL,8 15. JBE ONE 16. CMP AL,0FH 17. JGE MOVE 18. SHL AL,2 19. ADD AL,ARGX 20. SUB AL,2 21. JMP MOVE 22. ONE ADD AL,10 23. JMP MOVE 24. ABS1 NEG AL,AL 25. MOVE MOV RLT,AX 26. HALT 27. DSEG ENDP 28. ENDS START
五、简答题(25分):用尽可能少的指令编写完成下列功能的程序段。 1. 将寄存器AL的第4、3位清零,其余位保持不变。
2.如果BX中的数据与CX中的数据相加产生溢出, 则将AL清0,否则将AL置0FFH。 3.将寄存器AL的第i位置1,AL的其他位状态不允许改变,已知i在CL中。 4.如果AH的第4,3位为01,则将AH清0,否则置全1。
5. 已知一个设备的中断服务程序入口地址为SERVER,中断方式码为30H,写出将该设备的中断服务程序的入口地址写入中断向量表的程序段。
六、程序设计题。(15分)
已知一组带符号字节数据存放在内存DATA开始的连续单元中,数据个数在CNT单元存放。 编制程序求出该组数据的最小值,并将其存入MIN单元。
第 3 页 共 6 页