华中科技大学 80X86汇编语言程序设计试卷

更新时间:2023-10-28 21:16:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

《汇编语言程序设计》网络学院模拟试卷一 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位,需采用________________________指令来实现。 2.已知(AX)= 789AH,问执行指令CBW后,(AX)=________________________。 3.使用DOS中2号功能调用时,需先将________________________________送入DL中。 4.在MOV AX, –5[BX] [DI]中,源操作数采用是________________________寻址方式。 5.已知在DATA数据段中已定义有变量DUF,AA等,问与MOVAX DATA中划线语句等效

MOV DS, AX的指令是________________。

6.与MOV AX, OFFSET BUF等效的LEA指令是________________________________。 7.与JNL指令等同的指令操作符是________________________。

8.中断类型号为25H的中断服务程序的中断矢量存放在内存 ~ ___ 单元中。 9.主、子程序间参递参数的常用三种方式是_____________、_____________和___________法。 10.要对DX中的内容求绝对值,在横线上应填入何指令。_____________

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 ∶ JNE JMP BX,80H

T

NT T:? 2.设A变量的偏移地址为100 NT :? ∶

A DW 5665H, 1234H ∶ LEA SI, A 左边程序段的二条指令执行后 (S I) =________ LDS BX, A (BX)=________ ∶

3.如果在执行以下程序段前堆栈为空栈, 且程序其余处也未用堆栈操作指令。

要求:① 画出执行完①时堆栈变化示意图 SS ∶ PRO1 . . CALL . B1: ??

B2: ??

PRO1 PROC

PUSH CX

SP PUSH BX① ∶ POP BX ② 从子程序能返回到主程序B1处吗?为什么? RET ______________________________________ PRO1 ENDP ______________________________________ ∶

3

4.已知DS和ES指向同一个段,且当前数据段偏离0000H~00FFH的存贮单元中依次存放的内容为0~0FFH,请回答下列程序段执行后0000H~0009H单元中的内容为: ∶ ___________________________________________。 MOV SI, 0000H MOV DI, 0001H MOV CX, 10 CLD REP MOVSW ∶ 5. ∶

STR1 DB ' COMPUTERNDPASCAXZ ' SZM DB ' E '

MOV AL, SZM LEA DI, STR1 问左边程序段执行到NEXT处时, MOV CX, 17 (CX)=__________ CLD (ZF)=__________ REPNE SCASB NEXT: ? ∶

6.已知:AX=0D800H, DX=0003H ∶ MOV CX, 2 L: SHL AX, 1 问左边程序段执行后 RCL DX, 1 (AX)=__________ LOOP ∶

L (DX)=__________

7.程序段的功能是将数组的最大数送AL,请在各空白处填上一条合适的指令。

AA DB 3,7,32,10,100, ?? N EQU ∶

$ – AA

MOV CX, N MOV DI, OFFSET AA MOV AL, [DI] BB: INC DI __________________① JAE CC MOV AL, [DI] CC: ___________________②。 8. ∶ A DW ? B DW ?

左边程序段为判A、B两字变量是否同为正数。 MOV AX, A 是,置AX为0,否则,置AX为非零。 MOV BX, B XOR AX, BX

请在各空白处填上一条合适的条件转移指令。 _________________①

(两处不能用同一条条件转移指令。) TEST BX, 8000H _________________③ MOV AX, 0 NEXT: ??∶

4

9.读下面程序,回答下列问题:

①当输入为:ABCD↙ 时,输出什么?_____。 ②在程序中的宏指令的;后,写出其宏扩展的形式。 ③当输入字符串为①所述,则(BUF1+1)=________。

④若漏写了一条DEC SI指令,程序结束后又显示什么?____________。 RW MACRO A,B MOV AH,A LEA DX,B INT 21H ENDM DATA SEGMENT

BUF1 DB 30, ?, 30 DUP (0) BUF2 DB ' PLEASE INPUT: ' BUF3 DB 0AH, 0DH, ' $ ' DATA ENDS

CODE SEGMENT ASSUME CS: CODE, DS: DATE START: MOV AX, DATE MOV DS, AX RW 9, BUF2; RW 10, BUF1; RW 9, BUF3; MOV CL, BUF1+1 MOV CH, 0 MOV SI, CX MOV AH, 2

LOPA: MOV DL, BUF1+1 [SI] INT 21H DEC SI LOOP LOPA MOV AH, 4CH INT 21H CODE ENDS END START

六、设计程序或程序段(26分)

1.设计将当前数据段偏移地址1000H至3000H 的字存贮单元中全设置为–1的程序段。(用二.种不同方法) (4分)

5

本文来源:https://www.bwwdw.com/article/2j42.html

Top