《汇编语言程序设计》网络学院模拟试卷一 2004.4
班级________________ 姓名______________ 学号______________ 成绩______
一、改错题(10分,每题1分,在错误处划线,线下写上正确答案) 1. SHR BH, 8 2. ADD [BX], –15 3. LEA POINT, BUF 4. IN DX, 200
5. PUSH DH 6. MUL 25 7. XLAT BX, TAB 8. REPNZ MOVSW
9. MOV AX, 2[SI][DI] 10. MOV [BX], [SI]
二、单选题(20分,每题1分) 1.MOV指令的特点是________。 A.影响DF B.影响SF C.影响CF D.不影响标志位 2.使用寄存器间接寻址方式访问堆栈中某变量时,要选用________寄存器。 A.BX B.BP C.SI D.SP 3.8086标志寄存器中的三个控制标志是________。 A. IF、PF、SF B.DF、OF、CF C.DF、IF、TF D.TF、AF、IF 4.若有符号数运算的结果溢出,则置________为1。 A.OF B.CF C.SF D.IF
5.若某存贮器操作数的偏移地址在SI中,访问该操作数应采用________寻址方式。 A.立即 B.寄存器 C.寄存器问址 D.直接 6.串操作指令中,目的串的逻辑地址应为________。 A.DS:[SI] B.DS:[DI] C.ES:[DI] D.ES:[SI] 7.不在本模块定义而在本模块中引用的符号称________符号。 A.公共 B.局部 C.自定义 D.外部 8.若(CL)= 4,(AX)=0FF0FH,执行语句“ROR AX, CL”后 ,(AX)=________。 A.0FFFFH B.0FFF0H C.0F0FFH D.0FFFH
9.已知AL中存放着一个压缩BCD码,为实现AL减1操作,应选用________指令序列。 A.DEC AL B.SBB AL,0 C.SUB AL,1 D.SUB AL,1 AAS DAS AAS DAS
10.要将BL中的8位数据送到1234H端口号的外部设备中去,应选用________指令序列。
A.OUT 1234H, BL B.MOV DX,1234H OUT DX, BL C.MOV AL, BL D.MOV DX,1234H MOV DX,1234H MOV AL, BL OUT DX,AL OUT AL, DX 11.已知AX,BX中均为有符号数据,当进行字除法时,应采用________指令序列。 .... A.XOR DX,DX B.CBW C.IDIV BX D.CWD DIV BX IDIV BX IDIV BX
1
12.要将DX的内容送入堆栈中从当前栈顶起第10个字中,应使用________语句。 A.MOV 18[SP],DX B.MOV 18[BP],DX
C.MOV BP,SP D.PUSH 18[DX] MOV 18[BP],DX
13.要将CL中8位有符号数送入SI中去,应采用________。 A.MOV SI, CL B.MOV BYTE PTR SI, CL
C.MOV CH,O D.MOV AL,CL MOV SI, CX CBW MOV SI, AX 14.8086指令系统中的PUSH操作,会对SP自动进行________操作。 A.减1 B.加2 C.减2 D.加1 15.下列指令执行后,对源、目的操作数均无影响的指令是________。 A.XCHG AX,BX B.CMP AX,BX
C.SBB AX,[BX] D.MOV AX,BX
16.用REPE SCASB指令对某字符串进行扫描,若当扫描结束时CX≠0,则表示________。 A.在字符串中有一个与(AL)不同的字符
B.在字符串中找到了第1个与(AL)不同的字符 C.在字符串中有一个与(AL)相同的字符
D.在字符串中找到了第1个与(AL)相同的字符 17.条件转移指令JNLE的转移条件是________。 A.SF ⊕ OF= 0,且ZF= 0 B.SF ⊕ OF= 1,且ZF= 0
C.SF ⊕ OF= 0,且ZF= 1 D.SF ⊕ OF= 1,且ZF= 1 18.表示宏定义结束的伪指令是________。 A.ENDM B.ENDS C.ENDP D.END 19.设(SS)= 448AH,(SP)= 450H,执行
PUSHAX后,当前栈顶的物理地址=_______。
PUSHF A.44CE6H B.44CECH C.44CF4H D.44CF2H 20.下列数据定义伪指令中,________是错误的。 A.DB 12H B.DW 1234H C.DB ' ABCD ' D.DW ' ABCD ' 三、填空题(10分,每题1分)
1.要清除AX中的D15~11位,需采用___AND 0FFFH______________指令来实现。 2.已知(AX)= 789AH,问执行指令CBW后,(AX)=_______FF9AH_____________。 3.使用DOS中2号功能调用时,需先将_____要显示的字符的ASCII码______送入DL中。 4.在MOV AX, –5[BX] [DI]中,源操作数采用是_____相对基址加变址______寻址方式。 5.已知在DATA数据段中已定义有变量DUF,AA等,问与MOVAX DATA中划线语句等效
MOV DS, AX的指令是________________。
6.与MOV AX, OFFSET BUF等效的LEA指令是____LEA AX,BUF_______________。 7.与JNL指令等同的指令操作符是_______JNB______________。
8.中断类型号为25H的中断服务程序的中断矢量存放在内存 94H ~ __96H 单元中。 9.主、子程序间参递参数的常用三种方式是___寄存器传递__、约定内存传递__和_堆栈传递___法。
10.要对DX中的内容求绝对值,在横线上应填入何指令。___AND DX, 7FFFH________
AND DX, DX JNS L1 ______________ L1:……
2
∶
四、作图及填充题(10分)
DATA 已知数据段定义如下: DATA SEGMENT C1 DB ' 0AH ', 2 DUP ( ' 12 ' , 1), –7 C2 DW ' 0A ',–7 C3 EQU $ – C2 ORG 20 C4 DW C2+2 DATA ENDS
1.画出数据在主存中的分配图(细化到字节)(5分) 2.在划线处填上执行结果。
① MOV AX, C2-3 ;(AX)= __________ ② MOV DX, C2+2 ;(DX)= __________ ③ MOV BL, C1+5 ;(BL)= __________ ④ MOV BX, OFFSET C1+3 ;(BX)= __________ ⑤ MOV CL, C3-4 ;(CL)= __________
五、程序分析题(每小题3分,共24分)
1.已知 BX=0F0FH,
∶ 请判别右边程序段执行 TEST BX,80H
后,程序转向_______执行。
T JNE JMP T
NT 2.设A变量的偏移地址为100 NT:… :… ∶
A DW 5665H, 1234H
∶ LEA SI, A 左边程序段的二条指令执行后 (S I) =________ LDS BX, A (BX)=________ ∶
3.如果在执行以下程序段前堆栈为空栈, 且程序其余处也未用堆栈操作指令。
要求:① 画出执行完①时堆栈变化示意图 SS ∶ . . CALL PRO1 . B1: ……
∶
B2: ……
∶
PRO1 PROC
PUSH CX
SP PUSH BX① ∶ POP BX ② 从子程序能返回到主程序B1处吗?为什么? RET ______________________________________ PRO1 ENDP ______________________________________
3