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

举报
资源描述
^` 《汇编语言程序设计》网络学院模拟试卷一 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 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,执行后,当前栈顶的物理地址=_______。 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等,问与中划线语句等效的指令是________________。 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:…… ∶ DATA 四、作图及填充题(10分) 已知数据段定义如下: 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)= __________ ∶ TEST BX,80H JNE T JMP NT T:… NT:… ∶ 五、程序分析题(每小题3分,共24分) 1.已知 BX=0F0FH, 请判别右边程序段执行 后,程序转向_______执行。 2.设A变量的偏移地址为100 A DW 5665H, 1234H ∶ LEA SI, A 左边程序段的二条指令执行后 (S I) =________ LDS BX, A (BX)=________ ∶ 3.如果在执行以下程序段前堆栈为空栈, . . . SS SP 且程序其余处也未用堆栈操作指令。 要求:① 画出执行完①时堆栈变化示意图 ∶ CALL PRO1 B1: …… ∶ B2: …… ∶ PRO1 PROC PUSH CX PUSH BX① ∶ POP BX ② 从子程序能返回到主程序B1处吗?为什么? RET ______________________________________ PRO1 ENDP ______________________________________ ∶ 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 ? 左边程序段为判A、B两字变量是否同为正数。是,置AX为0,否则,置AX为非零。 请在各空白处填上一条合适的条件转移指令。(两处不能用同一条条件转移指令。) B DW ? ∶ MOV AX, A MOV BX, B XOR AX, BX _________________① TEST BX, 8000H _________________③ MOV AX, 0 NEXT: …… ∶ 9.读下面程序,回答下列问题: ①当输入为:ABCD↙ 时,输出什么?_____。 ②在程序中的宏指令的;后,写出其宏扩展的形式。 ③当输入字符串为①所述,则(BUF1+1)=________。 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 ④若漏写了一条DEC SI指令,程序结束后又显示什么?____________。 六、设计程序或程序段(26分) 1.设计将当前数据段偏移地址1000H至3000H 的字存贮单元中全设置为–1的程序段。(用二种不同方法) (4分) 2.设计求某无符号字节变量A的9倍的程序段(结果不超过一无符号字节数的范围)。(用二种不同方法) (4分) 3.用二种不同的方法设计将DI的高8位与DI的低8位互换的程序段。(用二种方法)(4分) 4.编写从键盘输入一串字符,从中找出字母A出现的个数,并将此数在屏幕下一行上用十进制数形式显示出来的程序。要求: ① 结构完整。 (3分) ② 回车换行用宏指令。 (2分) ③ 将AX中16位无符号二进制数→十进制数并在屏幕显示可调用已有的子程序PROS。(2分) ④ 画出流程图。 (2分) (或子模块PROS) ⑤ 程序正确。 (5分) 《汇编语言程序设计》网络学院模拟试卷二 2004.4 班级________________ 姓名______________ 学号______________ 成绩______ 一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题中的括号内。每小题1分,共10分) 1.CPU发出的访问存储器的地址是( )。 A.物理地址 B.偏移地址 C.逻辑地址 D.段地址 2.将高级语言的程序翻译成机器码程序的实用程序是( )。 A.编译程序 B.汇编程序 C.解释程序 D.目标程序 3.DEC BYTE PTR [BX] 指令中的操作数据类型是( )。 A.字 B.双字 C.字节 D.字符 4.在下列语句中,BUFFER称为( )。 A.符号 B.变量 C.助记符 D.标号 5.串操作指令中,源串操作数的段地址一定在( )寄存器中。 A.CS B.SS C.DS D.ES 6.使计算机执行某种基本操作的命令是( )。 A.伪指令 B.指令 C.标号 D.助符 7.将数据5618H存放在存储单元中的伪指令是( )。 A.DATA1 DW 1856H B.DATA1 DB 18H,56H C.DATA1 EQU 5618H D.DATA1 DB 18H,00H,56H,00H 8.若AX=3500H,CX=56B8H,当AND AX,CX指令执行后,AX=( )。 A.1400H B.77F8H C.0000H D.0FF 9.计算机处理问题中会碰到大量的字符、符号,对此必须采用统一的二进制编码。目前,微机中普遍采用的是( )。 A.BCD码 B.二进制码 C.ASCII码 D.十六进制码 10.用指令的助记符、符号地址、标号和伪指令、宏指令以及规定的格式书写程序的语言称为( )。 A.汇编语言 B.高级语言 C.机器语言 D.低级语言 二、填空题(每空1分,共20分) 1.在8086/8088汇编语言中,有五条串操作指令,其中搜索字符串指令的助记符是__SCASB,SACSW,SCASD______。 2.通常所说的计算机系统包括__硬件___和_软件___两大部分。 3.8086/8088存储器分四个段,这四个段的段名所对应的段寄存器分别是_DS_、__CS_、___SS___、____ES__。 4.现有AX=2000H,BX=1200H,DS=3000H,DI=0002H,(31200H)=50H,(3120H)=02H,(31202H)=40H,请写出下列各条指令独立执行完后有关寄存器及存储单元的内容,并指出标志位ZF、CF的值。 A.ADD AX,1200H ;问AX=__0___H ZF=__1__。 B.SUB AX,BX ;问AX=_EE00_H ZF=__0__。 C.MOV AX,[BX] ;问AX=__50H_H CF=_1___。 D.NEG WORD PTR [1200H];问(31200H)=___EE00___H CF=___1____, 5.设DS=2200H,BX=1000H,SI=0100H,偏移量D=0A2B1H,试计算出下列各种寻址方式下的有效地址,并填入括号中。 A.使用D的直接寻址( 0A2B1H ) B.使用BX的寄存器间接寻址( 1000H ) C.使用BX和D的寄存器相对寻址( B2B1H ) D.使用BX、SI和D的相对基址变址寻址( B3B1H ) E.使用BX、SI的基址变址寻址( 1100H ) 三、简答题(共20分) 1.程序在数据段中定义的数组如下:(4分) ARRAY DB ‘YES IS’ DB 20 DB ‘DO NOT’ 请指出下列指令是否正确?若不正确,错在哪里? A. MOV BX, OFFSET ARRAY MOV AX, [BX+8] B. MOV AX, ARRAY C. MOV BX, 2 MOV SI, 3 MOV AX, ARRAY [BX][SI] D. MOV BX, 22 MOV SI, 3 MOV AX, OFFSET ARRAY [BX][SI] INC [AX] 2.如TABLE为数据段中0100单元的符号名,其中存放的内容为0FF00H,试问以下两条指令有什么区别?指令执行后,AX寄存器的内容是什么?(3分) MOV AX,TABLE MOV AX,OFFSET TABLE 3.对于下面的数据定义,三条MOV指令分别汇编成什么?(3分) TAB1 DW 10 DUP(?) TAB2 DB 10 DUP(?) TAB3 DB ‘1234’ MOV AX,LENGTH TAB1 MOV BL,LENGTH TAB2 MOV CL,LENGTH TAB3 4.子程序的说明文件中应包括哪几方面的内容?(5分) 5.分别指出下列指令中源操作数的寻址方式:(5分) A.MOV SI, 100 B.MOV CX, DATA [SI] C.MOV [SI],AX D.ADD AX, [BX][DI] E.PUSHF 四、程序分析(每小题5分,共20分) 1.下列程序段完成什么工作? DAT1 DB 30 DUP(?) DAT2 DB 10 DUP(?) MOV CX, 10 MOV BX, 20 MOV SI, 0 MOV DI, 0 NEXT: MOV AL, DAT1 [BX][SI] MOV DAT2[DI], AL INC SI INC DI LOOP NEXT 2.执行下列指令后,AX寄存器中的内容是什么? START DW 10H,20H,30H,40H,50H EE1 DW 3 MOV BX,OFFSET START ADD BX,EE1 MOV AX,[BX] 3.试分析下面程序段的功能是什么? CMP AL, ‘A’ JC OTHER CMP AL, ‘Z’+1 JNC OTHER JMP LETTER OTHER: LETTER: 4.下面程序段执行完以后,AL的内容是什么? MOV BX,00FFH AND BX,0FFFH OR BX,0F0FH XOR BX,00FFH 五、程序设计(每小题10分,共30分) 1.试编写出把DX、AX中的双字右移四位的程序段。 2.定义一个数据区,它包含有23H,24H,25H和26H四个字节数据,把这个数据区复制20次,并显示出复制结果。 3.内存自BUF单元开始的缓冲区连续存放着100个学生的英文分数,编程序统计其中90~100,60~89,60以下者各有多少人?并把结果连续存放到自RESUT开始的单元中。(要求画出程序流程图,各段定义完整) 《汇编语言程序设计》网络学院模拟试卷三 2004.4 班级________________ 姓名______________ 学号______________ 成绩______ 一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题中的括号内。每小题1分,共10分) 1.把若干个模块连接起来成为可执行文件的系统程序是( )。 A.汇编程序 B.连接程序 C.机器语言程序 D.源代码程序 2.使汇编程序执行某种操作的命令是( )。 A.变量 B.指令 C.伪指令 D.宏指令 3.串操作指令中,目的操作数的段地址一定在( )寄存器中。 A.CS B.SS C.DS D.ES 4.在下列语句中,AGAIN称为( )。 AGAIN: INC SI A.符号 B.助记符 C.标号 D.变量 5.MOV BH, 1000[SI],该指令中源操作数采用的寻址方式是( )。 A.立即 B.直接 C.寄存器相对 D.寄存器间接 6.OR AL, AL是( )操作指令。 A.异或 B.加法 C.右移 D.逻辑或 7.DOS系统功能调用中,显示单个字符的系统调用号是( )H。 A.01H B.02H C.08H D.09H 8.使计算机执行某种操作的命令是( )。 A.宏指令 B.指令 C.伪指令 D.语句 9.换码指令的助记符是( )。 A.XCHG B.LEAS C.XLAT D.MOV 10.计算机能直接识别并执行的语言是( )。 A.汇编语言 B.机器语言 C.高级语言 D.低级语言 二、填空题(每空1分,共20分) 1.假设BL=0C5H,CL=2,CF=1,确定下列各条指令独立执行后,BL和CF中的值,并填入括号中。 A.SHR BL,1 ; BL=( 53H ) CF=( 0 ) B.SAR BL,CL ; BL=( 18H ) CF=( 1 ) C.ROR BL,1 ; BL=( 9H ) CF=( 0 ) D.RCL BL,CL ; BL=( 3H ) CF=( 0 ) 2.现有数据定义伪指令如下,写出对应的数据在存储单元中的存放形式。 BUF1 DB 01,52H BUF2 DW 3 DUP(? ,0) BUF3 DW 2 DUP(0,2 DUP(1,2),3) DUF1 BUF2 BUF3 3.计算机处理问题中会碰到大量的字符、符号,对此必须采用统一的二进制编码。目前,微机中普遍采用的是___ASCII__码,称为美国________码。 4.8086/8088CUP中,有二个变址寄存器,分别是__SI____和__DI____,二个指针寄存器,分别是__源变址寄存器__和_目的变址寄存器____。 三、简答题(每小题5分,共20分) 1.请指出下列指令错误原因: A. OR AX, [CX] B. ADD [SI], [BX][DI] C. JMP BYTE PTR LOOPS D. SAR AX, 4 E. RCL DX 2.A.下面两个语句有何区别? X1 EQU 1000H X2 = 1000H B.下面的程序段有错吗?若有,请指出错误。 CRAY PROC PUSH AX ADD AX, BX RET CRAY ENDP 3.假设程序中的数据定义如下: ARRAY1 DW ? ARRAY2 DB 16 DUP(?) ARRAY3 DD ? PLENTH EQU $–ARRAY1 问PLENTH的值为多少?它表示什么意义? 4.试根据以下要求,分别写出相应的汇编语言指令。 A.把AX寄存器和BX寄存器的内容相加,结果存入AX中。 B.用BX和SI的基址变址寻址方式,把存储器中的一个字节与DL的内容相加,并把结果送回DL中。 C.把数0BEH与AH内容相加,结果送回AH中。 D.用SI和位移量0200H的寄存器相对寻址方式把存储器中的一个字与AX相加,并把结果送回存储单元中。 E.用位移量0860H的直接寻址方式把存储器中一个字与数2EA0H相加,结果回送存储器中。 四、程序分析(每小题5分,共20分) 1.试分析下面程序段完成什么功能? CON1 DW H CON2 DW H MOV AX, CON1 MOV BX, CON2 CMP AX, BX JGE GREAT LESS: … GREAT:… 2.试分析下面程序段完成什么功能? OR AL,AL JZ L0 CMP AL, 1 JZ L1 CMP AL, 2 JZ L2 JMP STOP L0: … L1: … L2: … STOP: HLT 3.试问下面的程序段完成的功能是什么?程序执行后,AX的内容是什么? XOR AX,AX MOV BX,2 MOV CX,10 L: ADD AX,BX ADD BX,2 LOOP L HLT 4.试分析下面的程序段完成什么功能? MOV CL,04 SHL DX,CL MOV BL,AH SHR AX,CL SHR BL,CL OR DL,BL 五、程序设计(每小题10分,共30分) 1.试编写使AL寄存器中的无符号数乘20的程序段。 2.编写程序将ELEMS中的100个字节数据的位置颠倒过来(即第一个字节和第100个字节的内容交换,第二个字节和99个字节的内容交换……)。 3.仔细阅读下列程序段,它是二个ASCII码转换为一字节十六进制数的子程序,请回答下列问题: A.说明一个ASCII码字符转换为一位十六进制数的算法。 B.程序执行结束后,HEXUF字节单元中的内容是什么? C.对程序进行注释,说明指令执行的工作。 ASCBUF DB 38H,41H HEXBUF DB ? LEA SI, ASCBUF LEA DI, HEXBUF MOV CL, 4 MOV AL, [SI] CALL ASC–HEX SHL AL, CL MOV [DI], AL MOV AL, [SI+1] CALL ASC–HEX OR [DI], AL HLT ASC_HEX PROC NEAR CMP AL,3AH JC ASC1 SUB AL,7 ASC1: SUB AL,30H RET ASC_HEX ENDP
展开阅读全文
温馨提示:
得力文库 - 分享文档赚钱的网站所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
相关搜索

当前位置:首页 > 教育专区 > 教案示例


本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com