《《汇编语言程序设计》试卷-福建农林大学解析(共32页).doc》由会员分享,可在线阅读,更多相关《《汇编语言程序设计》试卷-福建农林大学解析(共32页).doc(32页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上第4篇 模拟试卷试卷一一、单项选择题(本大题共15小题,每小题2分,共30分)1与MOV BX, OFFSET VAR指令完全等效的指令是( )。(A)MOV BX, VAR (B)LDS BX, VAR(C)LES BX, VAR (D)LEA BX, VAR2. DEBUG中的执行一段子程序的命令是( )。(A)D(B)T (C)P(D)U3不能作为地址指针的寄存器是( )。(A)CX (B) BX (C)DI (D)SI4已知, (AX)=0F234H,执行OR AX, 963FH后,则SF,CF的值为( )。(A)SF=1,CF=1 (B)SF=1,CF=0(
2、C)SF=0,CF=1 (D)SF=0,CF=05AL=B ,CL=2,执行SAR AL, CL后,AL寄存器的内容是( )。(A) (B)(C) (D) 6下面两个传送指令语句中源操作数寻址方式是( )。 VAR1 DW 32H VAR2=32H . MOV AX, VAR1 MOV BX, VAR2(A)都是立即数寻址(B)立即数寻址,直接寻址(C)直接寻址,立即数寻址(D)都是直接寻址7变量具有( )。(A)偏移属性 (B) 符号属性(C)段属性 (D)段属性和偏移属性8寄存器间接寻址方式中,操作数在( )中。(A)通用寄存器 (B)堆栈 (C) 内存单元 (D)段寄存器9下列对END语
3、句的叙述正确的是( )。(A)END是一可执行语句(B)END表示程序执行到此结束(C)END表示源程序到此结束(D)END在汇编后产生机器码10下列叙述不正确的是( )。(A)存储单元与逻辑地址之间的关系是一一对应的(B)存储单元与物理地址之间是一一对应的(C)一个逻辑地址对应一个存储单元(D)一个存储单元可以用不同的段地址和偏移地址表示11下列指令合法的是( )。(A)OUT AX, 30H (B)OUT DX, AL(C)OUT AL, DX (D)OUT 30H, AH12当一个带符号数大于0FBH时程序转移,选择的条件转移指令是( )。(A)JNLE (B)JLE(C)JNL (D)
4、JA13用于显示单个字符的DOS系统功能调用,应设置AH寄存器的内容为( )。(A)1H (B)2H (C)9 H (D)0AH14. 完成与指令XCHG AX, BX 相同功能的指令或指令序列是( )。(A)MOV AX, BX (B)MOV BX, AX (C)PUSH AX (D)MOV CX, AX POP BX MOV AX, BX MOV BX, CX15下面的CMP指令中,语法正确的指令是( ).(A)CMP BUF1, BUF2 (B)CMP AL, 0FH(C)CMP BUF1, 0FH (D)CMP AL, BX二、阅读程序题(本大题共3小题,每小题6分,共18分)1.阅读
5、程序(1)写出程序的功能;(2)程序执行后 DAT和DAT+1单元的内容是什么?DATASEGMENT DATDB98H, 27HDATAENDSCODESEGMENT ASSUMECS: CODE, DS: DATASTART:MOVAX, DATA MOV DS, AX MOVAL, DAT CMP AL, DAT+1 JNG DONE XCHG AL, DAT+1 MOV DAT, AL DONE: MOVAH, 4CH INT21H CODE ENDS ENDSTART 2. 对于下面的数据定义,各条MOV指令单独执行后,请填写有关寄存器的内容。DATA SEGMENTTABLE1DW
6、 30HTABLE2DW 20 DUP (?)TABLE3 DB ABCDDATA ENDS.MOV BX, TYPE TABLE2 (BX=_ )MOV CX, LENGTH TABLE2 (CX=_ )MOV DX, OFFSET TBLE3 (DX=_ )3阅读下列程序,写出指令段实现的功能。 MOVAL, X ADD AL, Y MOV CL, 3 SAL AL, CL MOVBL, X SUB BL, Y SAL BL, 1 SUB AL, BL MOV CL, 4 SAR AL, CL MOV Z, AL三、阅读填空题(本大题共2小题,共有6个空,每个空格2分,共12分)1从DAT
7、开始的单元中存放着多个有符号的字节数。下面程序实现对其处理。如果数据大于等于0,则屏蔽高4位;如果小于0则将其求补,处理后的数据仍保留在原单元中。在下面每一空白处填上一条适当的指令。DATASSEGMENT DATDB 77H, 88H, 0AAH, 0BBH, 13H COUNT EQU $-DATDATAS ENDSCODE SEGMENT ASSUME CS: CODE, DS: DATASSTART: MOVAX, DATAS MOV DS, AX LEA SI, DAT MOV CX, COUNTLL1: MOVAL, SI CMP AL, 0 JGE LL2 JMP PPLL2:
8、PP: INC SI LOOPLL1 MOV AH,4CH INT 21HSUB1PROC NEGAL MOV SI, AL RETSUB1 ENDPSUB2 PROC RETSUB2 ENDPCODEENDS ENDSTART2下面程序段是完成用单个字符输入的1号功能调用,从键盘输入10个字符。然后再用单个字符显示输出的2号功能调用,并以相反顺序显示输出这10个字符。试在空白处填上适当的指令(每个空白处只能填一条指令)。 MOVCX, 10LOP1: MOV AH, 01H INT 21H LOOPLOP1 MOV CX, 10LOP2: MOVAH, 02H INT21H LOOP LOP
9、2 四、程序设计题(本大题共3小题,其中第1小题12分,第2小题13分,第3小题15分,共40分)1.X,Y, W为字节类型的数,求Z=(W-X)*10+5)/(X+Y),其中X,Y,W为字节类型的数,数值分别为:38H,28H,48H 。2.利用主程序调用子程序,比较BUF1和BUF2缓冲区中不相等的字符,并将不相等的字符显示出来。3.在首地址为TAB的数组中按递增次序存放着100个数,试编程将出现次数最多的数以及出现的次数分别存放于变量NUM和COUNT中,并以:COUNT=? 的形式输出COUNT的值(设最多重复次数10) 。试卷二一、单项选择题(本大题共20小题,每小题2分,共40分)
10、1.下列四个寄存器中,可作为16位寄存器的是( )。(A)AL(B)BL(C)BP(D)BH2.逻辑移位指令SHL,用于( )。(A)带符号数倍增 (B)带符号数倍减(C)无符号数倍增 (D)无符号数倍减3.在程序的运行过程中,确定下一条指令的物理地址的计算表达式是( )。(A)CS*16+IP (B) DX*16+DI(C)SS*16+SP (D)ES*16+SI4.下面表示宏定义结束的命令是( )。(A)ENDP(B)ENDS(C)ENDM (D)END5.用于输入单个字符的DOS系统功能调用,应设置AH寄存器的值为( )。(A)1H (B)2H (C)9 H (D)0AH6.下列指令中有
11、语法错误的是( )。(A)MOV 100H,BX (B)MOV 100H, 25(C)MOV 100H, BX (D)MOV BX, 100H7.两个无符号数比较,如表示大于时转到NEXT处,应选用的指令是( )。(A)JNBE NEXT (B)JNLE NEXT(C)JBE NEXT (D)JLE NEXT8.寄存器直接寻址方式中,操作数在( )中。(A)通用寄存器 (B)堆栈(C)内存单元 (D)段寄存器9.下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是( )。(A)AX, BX, CX, DX (B)BX, BP, SI, DI(C)SP, IP, BP, DX (D)CS, D
12、S, ES, SS10.下面指令序列执行后完成的运算,正确的算术表达式是( )。 MOVDL, X SARDL, 1 MOVY, DL(A)Y=X*2 (B)X=Y*2 (C)Y=X/2(D)X=Y/211.在标志寄存器中,用以记录当前运算结果是否为0的标志位是( )。(A)CF (B)ZF (C) OF (D)SF12.当前指令的地址存放在()中(A)DS: BP (B)SS: SP (C)CS: PC (D)CS: IP13.下列指令执行后,可能改变BL寄存器内容的指令是( )。(A)TESTBL, 0FFH (B)ORBL, 00H(C)CMP BL, 00H (D)XORBL, BL1
13、4.与MOV BX, OFFSET VAR指令完全等效的指令是( )。(A)MOVBX, VAR (B)LDS BX, VAR(C)LES BX, VAR (D)LEA BX, VAR15.汇编语言源程序中,每个语句由四项组成,如语句要完成一定的功能,不可省略的项是( )。(A)名字项 (B)操作项(C)操作数项(D)注释项16.汇编语言源程序的扩展名是( )。(A).ASM(B).OBJ(C).EXE(D).COM17.能够将BL的低4位清0的指令是( )。(A)AND BL , 0F0H(B)AND BL , 00H(C)OR BL , 0F0H (D)ORBL , 00H18.已知,(A
14、X)=9023H,执行OR AX, 001BH后,则SF,CF的值为( )。(A)SF=1,CF=1(B)SF=1,CF=0 (C)SF=0,CF=1 (D)SF=0,CF=019.设OP1、OP2是变量,下面哪条指令是正确的( )。(A)CMPBX, OP2 (B)CMPAX, OP2 (C)CMPOP1, OP2 (D)CMPOP2, 0FFH 20.用DEBUG调试程序时,单步执行命令是( )。(A)G(B)U (C)D (D) T二、阅读程序题(本大题共3小题,其第1、2小题均为6分,第3小题为6分,共20分)1执行下面程序段后,AX、CX的值为多少? CODESEGMENT ASSU
15、MECS: CODESTART:MOVCH, 0 MOVCL, 1 MOVBL, 2 MOVAH, 0AGAIN: MOVAL, BL INCBL MULBL ADDCX, AX CMPAX, 0015H JBAGAIN MOVAH, 4CH INT21H CODEENDS ENDSTART2阅读程序,写出指令段实现的数学公式。 MOV BL, X ADDBL, Y MOVAL, W SUBAL, X IMULTEN ADDAX, 5 IDIVBL MOVZ, AX MOVAL, 03.写出程序的功能和结果。DSEGSEGMENTNUM1DB 1, 2, 3 ,4, 5, 6, 7, 8NUM
16、2DB1, 2, 3, 4, 5, 6, 7, 8RESULT DW?DSEGENDSCSEGSEGMENT ASSUMECS: CSEG, DS: DSEGSTART: MOVAX, DSEG MOVDS, AX MOVCX, 8 MOVBX, 0 MOVSI, OFFSET NUM1 MOVDI, OFFSET NUM2AGAIN: MOVAL, SI MULBYTE PTRDI ADDBX, AX INCDI INCSI LOOPAGAIN MOVRESULT, BX MOVAL, 0 MOVAH, 4CH INT21HCSEGENDS ENDSTART三、程序设计题(本大题共3小题,其
17、中第1小题12分,第2小题13分,第3小题15分,共40分)1编程显示以下图案。*2首地址为BUF 的内存单元中存有10个字节数,统计其中单元内容为0的单元个数,并将统计的结果显示出来。3编写子程序搜索指定字符缓冲区中是否有小写字母N,如果有则用Y替代。江调用子程序将BUF1,BUF2中的N全部用Y替代。 试卷三一、单项选择题(本大题共20小题,每小题1分,共20分)1下面四个寄存器中,不能作为间接寻址的寄存器是( )。(A)BX(B)DX(C)BP (D)DI2用来表示堆栈指针的寄存器是( )。(A)IP (B)BP (C)SP (D)SS3完成BX清零,并使标志位CF清零,下面错误的指令是
18、( )。(A)SUB BX, BX(B)XOR BX, BX(C)MOV BX, 00H(D)AMD BX, 00H4下面数据传送指令中,正确的指令是( )。(A)MOV BUF1, BUF2(B)MOV CS, AX(C)MOV CL, 1000H(D)MOV DX, WORD PTR BX+DI5下面指令中,源操作数的寻址方式为直接寻址的指令是( )。(A)ADD AX, WORD PTR BX+SI(B)ADD AX, B (C)INC CX, 1000H(D)MOV BX, 7FFFH6下面表示段定义结束的命令是( )。(A)ENDP (B)ENDS (C)ENDM (D)END7设A
19、L,BL中都是有符号数,当ALBL时转至NEXT处,在CMP AL, BL指令后应选用正确的条件转移指令是( )。(A)JBE (B)JNC (C)JNA (D)JNLE8指令LOOPZ的循环执行条件是( )。(A)CX0并且ZH=0(B)CX0或ZH=0(C)CX0并且ZH=1(D)CX0或ZH=19执行下列指令后,SP寄存器的值是( )。MOV SP, 1000HPUSH AX(A)0FFEH (B)0FFFH (C)1001H (D)1002H10完成有符号数BX的内容除以2的正确指令是( )。(A)SHR BX, 1(B)SAR BX, 1(C)ROR BX, 1(D)RCR BX,
20、111下面指令中影响状态标志位CF的指令是( )。(A)INC AX(B)DEC AX(C)NOT AX(D)DEC AX12判断当CX=0时,转ZERO执行的错误指令是( )。(A)CMP CX, 0 (B)MOV AX, CX JZ ZERO JZ ZERO(C)OR CX, CX (D)JCXZ ZERO JZ ZERO13执行1号DOS系统功能调用后,从键盘输入的字符应存放在( )。(A)AL中 (B)BL中 (C)CL中 (D)DL中14设数据定义如下:ARRAY DW 1, 2, 3执行指令ADD SI, TYPE ARRAY相当于完成下面同等功能的指令是( )。(A)ADD SI
21、, 1(B)ADD SI, 2(C)ADD SI, 3(D)ADD SI, 015设数据定义如下:BUF DW 100 DUP (?)执行指令MOV CX, LENGTH BUF相当于完成下面同等功能的指令是( )。(A)MOV CX, 00C8H(B)MOV CX, 0200H (C)MOV CX, 0064H (D)MOV CX, 0100H16完成对字单元BUF的内容加1运算,下面错误的指令是( )。(A)MOV CX, BUF (B)MOV BX, OFFSET BUF INC BX INC WORD PTR BX MOV BUF, BX(C)MOV BX, BUF(D)MOV BX,
22、 0 INC WORD PTR BX INC WORD PTR BUF BX17完成对寄存器BX内容的求补运算,下面错误的指令是( )。(A)NEG BX (B)NOT BX INC BX(C)XOR BX, 0FFFFH (D)MOV AX, 0 INC BX SUB AX, BX18判断当AX的内容为负数时,转MINUS执行,下面错误的指令是( )。(A)NOT AX (B)TEST AX, 8000H JNS MINUS JNS MINUS(C)SHL AX, 1 (D)OR AX, AX JC MINUS JNS MINUS19下面指令执行后,正确的结果是( )。MOV AL, 0FE
23、HADD AL, ALADC AL, AL(A)AL=0F8HCF=1 (B)AL=0F8HCF=0 (C)AL=0F9HCF=0 (D)AL=0F9HCF=120现有数据存储如下图所示:设AL=01H,BX=0100H,DX=3000H,执行换码指令XLAT后正确的结果是( )。30100H40H30101H79H30102H24H30103H30H(A)AL=00H(B)AL=40H(C)AL=01H(D)AL=79H二、填空题(本大题共6小题,每空1分,共14分)18086CPU允许的最大存储空间为 ,其地址编号从 到 H。2汇编语言是一种面向 的语言。完成将汇编语言源程序翻译成机器语言
24、目的程序的翻译程序称 。38086的存储器是分段的,因此存储单元的物理地址是由 和组合 而成的。4标号和变量(名字)均有三种属性,它们是 、 和 属性5判断无符号运算是否溢出,应根据 标志位;而判断有符号数运算是否溢出,应根据 标志位。6在16位存储单元中能存储的最大无符号数为65535,能表示的有符号数的范围是 H到 H。三、简答题(本大题共3小题,每小题3分,共9分)1数据存储示意如下图所示,请用DUP语句写出合适的数据定义伪指令: BUFFER1232341232342选用合适的指令,分别完成下列操作:A)将字变量VARW的偏移地址送BX寄存器;B)将字变量VARW的内容送CX寄存器;C
25、)将字变量VARW的类型值送DX寄存器。3设有数据定义伪指令如下: ORG 2000HARRAYDW 0100H, 0200H, $+2, 0300H, $+2 请画出存储单元数据的存储形式。四、程序分析题(本大题共5小题,每小题6分,共30分)1MOVAX, 00FFHMOVBX, 0FFFFHXORAX, BXNEGAX问:该程序段执行后AX= ,CF= 。2 MOVAX, BXNEGAXADDAX, BX 问:该程序执行后AX= ,CF= 。3 BUFDW0000HLEABX, BUFSTCRCRWORDPTRBX, 1MOVCL, 3SARWORDPTRBX, CL 问:该程序执行后,
26、存储单元BUF的内容为 。4BLOCKDB20H, 1FH, 08H, 81H, 0FFHRESULTDB?START:LEASI, BLOCKMOVCX, SIINCSIMOVAL, SILOP1:CMPAL, SI+1 JNGNEXTMOVAL, SI+1NEXT:INCSILOOPLOP1MOVRESULT,ALHLT问:(1)该程序所完成的功能是 ; (2)该程序循环次数是: 。5 CODESEGMENTASSUMECS: CODESTART:MOVCX, 1MOVBL, 2AGAIN:MOVAL, BLINCBLINC BLADDCX, AXCMPAX, 002AHJBAGAINMO
27、VAH, 4CHINT21HCODEENDSENDSTART问:(1)该程序所完成的功能可用算术表达式表示为 ; (2)该程序完成后CX= 。五、程序填空题(本大题共2小题,每小题6分,共12分)(下列各小题中,每空只能填一条指令)1下面程序完成十进制数3298+4651的运算,并将结果存入SUM单元开始的2个字节单元中,请将程序补充完整。DA1DB98H, 32HDA2DB51H, 46HSUMDB2DUP (?)MOVSI, OFFSET DATLEADI, DAT ADDAL, DI MOVSUM, ALMOVAL,SI+1 DAAMOVSUM+1, ALHLT2下面程序利用DOS系统功
28、能调用,完成将键盘输入的小写字母转换成大写字母后输出显示,直到输入$字符结束。请将程序补充完整。CODESEGMENTASSUMECS: CODEDISPLAYPROCNEARBEGINMOVAH, 01HINT21HJZSTOPCMPAL, aJBSTOPCMPAL, zJASTOP MOVAH, 02HINT21HJMPBEGINSTOP:RETDISPLAYENDPCODEENDS六、程序设计题(本大题共2小题,其中第1小题5分,第人小题10分,共15分)1设在DAT1,DAT2字单元中存放一双字长有符号数,编一程序段,完成求出该双字长数的绝对值后送ABS1和ABS2字存储单元。(本小题
29、5分)2在附加数据段中有一首址为ADDR的没有排序的字数组,数据的第一个字为数组长度,第二个字开始存放数组各元素。在KEY单元存放一要删除的字数据。要求编一完整程序,在数组中查找该数,如果找到该数,将其从数组中删除,并修改数组长度。(本小题10分)试卷一参考答案一、填空题1 D 2 C 3 A 4 B 5 D 6 C 7 D 8 C 9C 10 A 11 B 12 A 13 B 14 B 15 B二、阅读题1.(1)比较DAT与DAT+1单元的内容,小的数放在DAT单元 (2)27H,98H2.BX=2 CX=20 DX=423.Z(X+Y)*8-(X-Y)*2)/16三、程序填空题1. CA
30、LLSUB2 CALL SUB1 AND AL, 0FH MOV SI , AL2. PUSHAXPOPDX四、程序设计题(参考答案,也可以用其它方法)1. DSEGSEGMENTXDB 38HY DB 20HWDB 30HZ DW ? TENDB 10DSEG ENDSCSEG SEGMENTPARAPUBLIC CODE ASSUME CS: CSEG, DS: DSEGSTART:MOVAX, DSEG MOVDS, AX MOVBL, X ADD BL, Y ;先求分母,存于BL MOV AL, W SUB AL, X IMUL TEN ADD AX, 5 IDIV BL MOVZ,
31、AX MOV AL, 0 MOV AH, 4CH INT21HCSEG ENDS END START2.DATASEGMENT BUF1 DB HUIFEHJFKHKFJ LEN1 =$-BUF1 BUF2 DB HUIFEHJFIOIHJ BUF DB LEN1 DUP (?) ;不相同的字符存在BUF开始的缓冲区DATAENDSCODE SEGMENT ASSUME CS: CODE, DS: DATASTART:MOVAX, DATA MOVDS, AX LEADI, BUF1 LEASI, BUF2 MOVCX, LEN1 LEABX, BUF CALLKLL MOVBYTE PTRBX, $ ;在要显示的字符串末尾加$ :显示字符串BUF LEA DX, BUF CALL PRINT MOVAH, 4CH INT 21H;比较2个字符串,将不相同的字符送到BX开始的存储空间,入口参数为2个字符串的偏移地址SI,DI,以及字符串的长度CXKLL PROCAL1:MOVAL, SI CMP DI, AL JE AL2 MOV BX, AL INC BXAL2:INCSI INCDI LOOPAL1 RETKLL ENDPPRINT