汇编语言程序设计试卷及答案AB卷.doc
【精品文档】如有侵权,请联系网站删除,仅供学习与交流汇编语言程序设计试卷及答案AB卷.精品文档. 装 订 线 考 生 答 题 不 得 超 过 此 线 20102011学年度第(1)学期期末考试试卷科 目:汇编语言程序设计 (A)卷考试形式:闭卷 考试时间: 120 分钟系别、班级: 姓名: 学号: 题 目一二三四五六总分标准分数20149301215100实得分数一、单项选择题:(本题共20小题,每小题1分,共20分)1. 设DS=5788H,偏移地址为94H,该字节的物理地址是 。(A) 57974H(B) 57914H(C) 5883H(D) 58ECH2. IP指令指针寄存器是属于 。 (A) 通用寄存器(B) 段寄存器(C) 变址寄存器(D) 控制寄存器 3. 下面有语法错误的指令是 。 (A) ADD AL,AH(B) ADD BX+3,AL (C) ADD AH,DI(D) ADD BX,DA1(DA1是变量名) 4. 完成对DX的有符号数除以2的指令是 。 (A) IDIV 2(B) SAR DX,1 (C) DIV 2(D) RCR DX,1 5. 使进位位置1的指令是 。 (A) CLC(B) CMC(C) STC(D) NOP 6. 设AL=-100,要使AL=100应执行的指令是 。 (A) NEG AL(B) NOT AL(C) INC AL(D) DEC AL 7. 在条件转移指令中,结果为负数则转移的指令是 。 (A) JNS(B) JZ(C) JS(D) JC 8. 下面的XCHG指令中,语法正确的是 。 (A) XCHG AL,DS (B) XCHG BH,BX (C) XCHG AL,OFH(D) XCHG BUF1,BUF2 9. 一条指令中目的操作数不允许使用的寻址方式是 。 (A) 寄存器寻址(B) 立即数寻址(C) 变址寻址(D) 直接寻址 10. 设SP=1FFFH,执行下列指令后,SP寄存器的值是 。POPFPUSH BXPUSH BX (A) 2000H(B) 2002H(C) 1FFCH(D) 1FFEH 11. LES SI ,2000H指令的全部功能是 。 (A) 把地址2000H送SI(B) 把地址2000H字单元的内容送SI (C) 把地址2000H字单元内容送SI,把2002H字单元内容送ES(D) 把地址2000H字单元内容送ES,把2002H字单元内容送SI 12. 设AL=04H,CL=0F8H,执行MUL CL指令后,结果是 。 (A) AX=0032H(B) AX=00E0H(C) AX=03E0H(D) AX=0FFE0H 13. 设ES=3000H,DI=00FFH,CX=0005H,AL=41H,DF=0,从300FFH开始的连续5个字节单元内容分别是44H,43H,42H,41H。执行REPNZ SCASB指令后,正确的结果是 。 (A) DI=0104H,CX=0000H(B) DI=0103H,CX=0001H(C) DI=0102H,CX=0002H(D) DI=0101H,CX=0003H 14. 某数据段如下:DATA SEGMENT ORG20H XDB12H,'AB' YDW789AHDATA ENDSY单元的偏移地址是 。 (A) 20H(B) 21H(C) 22H(D) 23H 15. 下面指令语句中,语法正确的是 。 (A) INC BX(B) CMP BX,20 (C) JMP FAR OPR(D) MOV WORD PTRBX,20 16. DATASEGMENTDA1DB30 DUP(?)DA2DW1456H,789AHDA3DWDA2DATAENDS MOVBX,DA3上述指令执行后,BX中的内容是 。 (A) 30(B) 31(C) 32(D) 21H 17. 数据定义如下: BUF1DB10 BUF2DW20DUP(?)实现将BUF1单元的内容与BUF2开始的条三个字节单元内容相比较的指令是 。 (A) CMP BUF1,BYTE PTR BUF2+3(B) MOV AL,BUF1CMP AL,BUF2+2 (C) MOV AL,BUF1CMP AL,BYTE PTR BUF2+2(D) MOV AL,BUF1CMP AL,BUF2+3 18. 执行循环指令 LOOPNZ END0 时,若要使其重复执行,应满足的条件是 。(A) CX0且ZF=0(B) CX0或ZF=0(C) CX0且ZF=1(D) CX0或ZF=119. 当一个程序使用DOS系统功能调用退出用户程序时,在编写INT 21H指令前,应选用的指令是 。 (A) MOV AH,01H(B) MOV AX,4CH (C) MOV AH,4CH(D) RET 20. 用CMP指令对两个无符号数进行A-B的比较后,用A=B或A>B,则分别产生转移,这种情况应选择的条件转移指令是 。 (A) 先用JE指令,再用JNC指令(B) 先用JNC指令,再用JE指令 (C) 上述两条条件转移指令(JE和JNC)无先后次序(D) 用上述两条条件转移指令不能完成上述功能要求二、填空题:(本题共14空,每空1分,共14分)1. 在微型计算机中,系统总线将CPU、存贮器和I/O设备连接起来,传送各部分之间的信息。系统总线包括有数据总线, 和 。2. 用 寄存器与 段寄存器联合确定下一条指令的物理地址。3. 清除AX寄存器的一条逻辑指令是 或 。4. 汇编语言源程序中的语句有三种类型,它们是 语句, 语句及 语句。5. 设数据段的段地址为2A66H,其中某数组中第5个字节存储单元的物理地址为2A835H,试问该数组中首字节的偏移地址是 。6. 数据定义如下: X1DB 10H,100,-1X2DW 10H,100,-1X3DD ? COUNTEQUX3 - X1变量COUNT的值是 ,其表示的意义是 。7. 执行指令 MOV AX,0 MOV AL,09H ADD AL,4若要获得结果AX=0103H,则在ADD指令之后,加一条 指令,若要获得结果AL=13H,在ADD指令之后加一条 指令。三、简答题:(本题共3小题,每小题3分,共9分)1. DA1DB20H DUP(?)DA2DW10H,45H,7856H请用两种方法,分别只用一条指令实现将DA1数据区中数据个数送入CX。2. 用三种不同方法实现在字存储单元DB1中存储2000H的内容。3. 已知:BX=1357H,BP=2468H,SI=1000H,DI=2000H,SS=1000H,DS=2000H,ES=3000H,试分别指出下列各指令中存储器操作数据的物理地址。(1)MOVAL,BP+20H(2)MOVBX+DI-80H,AL(3)MOVBL,ES:SI+40H四、程序分析题:(本题共5小题,每小题6分,共30分)1. XORAL,AL MOVAH,AL ADDAH,9 JZ NEXT XCHG AH,AL JMPK1NEXT:MOVAH,0FFHK1: 上述程序运行后,AH= ,AL= 。2. XORAL,AL INCAL NEGAL INCAL MOVBL,7FH ADCAL,BL上述程序段运行后,AL= ,CF= 。3. 已知 AX=1234HMOVBX,AXNEGBXADDAX,BX执行上述三条指令后,AX= ,BX= 。4. BUF1DB41H,42H,43H,44H,45H,46H BUF2DB6DUP(?) MOV SI,OFFSET BUF1 MOV DI,OFFSET BUF2 MOV CX,6LOP:MOV AL,SI SUB AL,7 AND AL,0FH MOV DI,AL INC SI INC DI LOOPLOP试回答:(1)上述程序段执行后,BUF2开始的6个字节存储单元的内容是什么? (2)在程序功能不变的情况下,AND AL,0FH指令可否用SUB AL,30H指令替代。5. BUFFDB 'ABD SAXYZ' CONTEQUS-BUFF CLD LEA DI,BUFF MOV CX,CONT MOV AL,$ XOR DX, DXNEXT: REPNZ SCASB CMP CX, 0 JZK1 INC DX JMP NEXTK1:上述程序段执行后,DX中的值表示的意义是什么?。五、程序填空题:(本题共2小题,每小题6分,共12分)1下面程序段的功能是把DA1数据区的数09转换为对应的ASCII码。试完善本程序段。(每一空白处只填一条指令)DA1DBOOH,01H,02H,03H,04H,05H,06H,07H,08H,09HASCI DB10DUP(?)CUNT =ASCI-DA1LEASI,DA1LEADI,ASCILOP1:MOVAL,SIMOVDI,ALINCSIINCDILOOP LOP12设A,B是长度为10的字节数组,用串操作指令编写程序实现A,B两数组内容的相互交换。试完善本程序。(每一空白处只填一条指令)DATA SEGMEMTADB1,2,3,4,5,6,7,8,9,0AH ORG 0010HBDB0AH,9,8,7,6,5,4,3,2,1DATA ENDS MOVSI,0 MOVDI,0 MOVCX,10MEXT: MOVAL,ASI MOVBL,BDI INCSI INCDI LOOP NEXT六、程序设计题:(本题共2小题,第1小题5分,第2小题10分,共15分)1设在数据段中有X,Y两变量(字节单元),试编写程序段计算(只写有关程序功能的指令):2编写一个完整的源程序,将BUF字节单元存放的两位BCD码,转换成2个字节的ASCII码,并分别存放在ASC和ASC+1字节单元中例如:(BUF字节单元)=58H,那么(ASC字节单元)35H,(ASC+1字节单元)=38H广东经济管理学院20102011学年度第(1)学期期末考试试卷科 目:汇编语言程序设计 (A)卷(参考答案)一、 单项选择题1.B 2.D 3.D 4.B 5.C 6.A 7.C 8.B 9.B 10.A11.C 12.C 13.C 14.D 15.D 16.A 17.C 18.A 19.C 20.D二、 填空题1地址总线、控制总线2IP、CS3XOR AX,AX 、AND AX,0000H4指令、指示性/伪指令、宏指令501D1H69 、分配给变量X1和X2的字节数目7AAA 、 DAA三、简答题1方法1:MOVCX,DA2-DA1或MOVCX,LENGTH DA1 方法2:MOVCX,SIZE DA12方法1:MOVBX,2000H MOVDA1,BX 方法2:MOVSI,2000H MOVAX,SI MOVDA1,AX 方法3:PUSH 2000HPOP DA13(1)12488H(2)232D7H(3)31040H四、程序分析题10 、 9280H 、130 、 OEDCCH4(1)BUF2开始的6个字节存储单元的内容是:0AH,OBH,OCH,OCH,0DH,0E,0FH。(2)可以用SUB AL,30H代替AND AL,OFH。5该程序运行后,DX中的值表示BUFF字符串含有字符''的个数。五、程序填空题1MOVCX,CUNT ADDLA,30H2MOVASI,BL MOVBDI,AL六、编制程序题1XDBX YDB? MOVAL,X CMP AL,0 JGEDONE NEG ALDONE: MOVY,AL2 DATA SEGMENTBCDDBXXHASCDB?,?DATAENDS CODESEGMENTASSUMECS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV CL,4MOV AL,BCDSHR AL,CLADD AL,30HMOV ASC,ALMOV AL,BCDAND AL,OFHADD AL,30HMOV ASC+1,ALMOV AH,4CHCODEENDS END START 装 订 线 考 生 答 题 不 得 超 过 此 线 20102011学年度第(1)学期期末考试试卷科 目:汇编语言程序设计 (B)卷考试形式:闭卷 考试时间: 120 分钟系别、班级: 姓名: 学号: 题 目一二三四五六总分标准分数20149301215100实得分数一、单项选择题:(本题共20小题,每小题1分,共20分)1. 下面四个寄存器中,不能作为间接寻址的寄存器是 。(A) BX(B) CX(C) BP(D) DI 2. 用来表示堆栈指针的寄存器是 。 (A) IP(B) BP(C) SP(D) SI 3. 完成将AX清零,并使标志位CF清零,下面错误的指令是 。 (A) SUB AX,AX(B) OR AX,AX (C) MOV AX,00H(D) AND AX,00H 4. 下面数据传送指令中,正确的指令是 。 (A) MOV BUF1,BUF2(B) MOV CS,AX (C) MOV CL,1000H(D) MOV DX,WORD PTRSP+SI 5. 下面指令中,源操作数的寻址方式为直接寻址的指令是 。 (A) ADD AX,WORD PTRBX+DI(B) ADD AX,B (C) INC CX(D) MOV BX,7FFFH 6. 下面表示段定义结束的命令是 。 (A) ENDP(B) ENDS (C) ENDM(D) NED 7. 设AL,BL中都是有符号数,当ALBL时转至NEXT处,在CMP AL,BL指令后应选用正确的条件转移指令是 。 (A) JBE(B) JNG(C) JNA(D) JNLE 8. 指令LOOPZ的循环执行条件是 。 (A) CX0并且ZF=0 (B) CX0或ZF=0 (C) CX0并且ZF=1(D) CX0或ZF=1 9. 执行下列指令后,SP寄存器的值是 。MOVSP,1000HPUSHF(A) 0FFEH(B) OFFFH(C) 1001H(D) 1002H 10. 完成将有符号数BX的内容除以2的正确指令是 。 (A) SHR BX,1 (B) SAR BX,1 (C) ROR BX,1(D) RCR BX,1 11. 下面指令中影响状态标志位CF的指令是 。 (A) INC AX(B) DEC AX(C) NOT AX(D) NEG AX 12. 判断当CX=0时,转ZERO执行的错误指令是 。 (A) CMP CX,0 JZ XERO(B) MOVAX,CX JX ZERO (C) OR CX,CXJZZERO(D) JCXZ ZERO 13. 调用2号DOS系统功能,在屏幕上显示一个字符,事先要其ASCII码存放在 。 (A) AL中(B) BL中(C) CL中(D) DL中 14. 设数据定义如下: ARRAYDW1,2,3执行指令ADD SI,TYPE ARRAY相当于完成下面同等功能的指令是 。 (A) ADD SI,O(B) ADD SI,2(C) ADD ST,3(D) ADD SI,015. 设数据定义如下: BUF DW100 DU(?)执行指令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,BUFINC BXMOV BUF,BX(B) MOV BX,OFFSET BUFINC WORD PTRBX (C) MOV BX,BUFINC WORD PTRBX(D) MOV BX,0INC WORD PTRBUFBX 17. 完成对寄存器BX的内容求补运算,下面错误的指令是 。 (A) NEG BX (B) NOT BXINC BX (C) XOR BX,0FFFFHINC BX(D) MOV AX,0SUB AX,BX 18. 判断当AX的内容为负数时,转MINUS执行,下面错误的指令是 。 (A) NOT AXJNS MIBUS(B) TEST AX,8000HJNZMINUS (C) SHL AX,1JCMINUS(D) OR AX,AXJS MINUS 19. 下面指令序列执行后,正确的结果是 。MOVAL,OFFHADDAL,ALADCAL,AL (A) AL=0F8HCF=1(B) AL=0F8HCF=0(C) AL=0F9HCF=0(D) AL=0F9HCF=1 20. 现有数据存储如图所示:设AL=01H,BX=0100H,DS=3000H,执行换码指令XLAT后正确的结果是 。 (A) AL=30H(B) AL=40H(C) AL=24H(D) AL=79H二、填空题:(本题共14空,每空1分,共14分)1. 8086/8088 CPU允许的最大存储空间为 ,其地址编号从 到 H。2. 汇编语言是一种面向 的语言。完成将汇编语言源程序翻译成机器语言目的程序的翻译程序称 。3. 8086/8088的存储器是分段的,因此存储单元的物理地址是由 和 组合而成的。4. 标号和变量(名字)均有三种属性,它们是 、 和 属性。5. 判断无符号数运算是否溢出,应根据 标志位;而判断有符号运算是否溢出,应根据 标志位。6. 在16位存储单元中能存储的最大无符号数为65535,能表示的有符号数的范围是 H到 H。三、简答题:(本题共3小题,每小题3分,共9分)1. 在以BUFFER为首地址的内存区,存储的一组数据如图所示,试用一条DUP语句来完成该数据定义。2. 选用合适的指令,分别完成下列操作:(1)将字变量VARY的偏移地址送BX寄存器;(2)将字变量VARY的内容送CX寄存器;(3)将字变量VARY的类型值送DX寄存器;3. 设有数据定义伪指令如下: ORG2000HARRAY DW 0100H,0200H,-2,0300H,+2请画出存储单元数据的存储形式。 四、程序分析题:(本题共5小题,每小题6分,共30分)1MOVAX,00FFH MOVBX 0FFFFH XORAX,BX NEGAX问:该程序段执行后,AX= ,CF= 。2MOVAX,BX NEGAX ADDAX,BX问:该程序段执行后,AX= ,CF= 。3BUFDW 0000H LEABX,BUF STC RCRWORDPTRBX,1 MOVCL,3 SARWORDPTRBX,CL问:该程序段执行后,存储单元BUF的内容为 。4 BLOCKDB20H,1FH,08H,81H,0FFH RESULT DB?START:LEASI,BLOCK MOVCX,SI INCSI MOVAL,SILOP1: CMPAL,SI+1 JNGNEXT MOVAL,SI+1NEXT: INC SI LOOP LOP1 MOVRESULT,AL HLT问:(1)该程序完成的功能是 。 (2)该程序的循环次数是 。5CODESEGMENT ASSUMECS:CODESTART:MOV CX,1 MOV BL,2AGAIN:MOV AL,BL INC BL MUL BL ADD CX,AX CMP AX,002AH JBAGAIN MOV AH,4CH INT 21HCODE ENDS END START问:(1)该程序所完成的功能可用算术表达式表示为 。 (2)该程序完成后CX= 。五、程序填空题:(本题共2小题,每小题6分,共12分)1下面程序完成十进制数3298+4651的运算,并将结果存入SUM单元开始的2个字节单元中,请将程序补充完整。(每一空白处只填一条指令)DA1DB98H,32HDA2DB51H,46HSUMDB2 DUP(?)MOVSI,OFFSET DA1LEADI,DA2ADDAL,DIMOVSUM,ALMOVAL,SI+1DAAMOVSUM+1,AL2下面程序利用DOS系统功能调用,完成将键盘输入的小写字母转换成大写字母后输出显示,直到输入字符时结束。请将程序补充完整。(每一空白处只填一条指令)CODESEGMENTASSUMECS:CODE DISPLAYPROCNEARBEGIN:MOV AL,01HINT 21H JZ STOP CMP AL,'a' JB STOP CMP AL,'Z' JA STOP MOVAL,02H INT21H JMPBEGIN STOP:RET DISPLAY ENDP CODEENDS六、程序设计题:(本题共2小题,第1小题5分,第2小题10分,共15分)1设在DAT1,DAT2字单元中存放一双字长有符号数,编一程序段,完成求出该双字长数的绝对值后送ABS1和ABS2字存储单元。2在附加数据段中有一首址为ADDR的没有排序的字数组,数据的第一个字为数组长度,第二个字开始存放数组各元素。在KEY单元存放一要删除的字数据。要求编一完整程序,在数组中查找该数,如果找到该数,将其从数组中删除,并修改数组长度。20102011学年度第(1)学期期末考试试卷科 目:汇编语言程序设计 (B)卷(参考答案)一、 单项选择题1.B 2.C 3.C 4.D 5.B 6.B 7.B 8.C 9.A 10.B11.D 12.B 13.D 14.B 15.C 16.C 17.D 18.A 19.D 20.D二、 填空题11MB 、 00000H 、 0FFFFFH 2机器 、 汇编程序3段地址 、 偏移地址4段属性(SEG) 、 偏移属性(OFFSET) 、 类型属性(TYPE)5CF 、OF68000H 、 7FFFH 三、简答题1BUFFER DB 2DUP(0,2DUP(1),2,3)2(1)MOV BX,OFFSET VARY (2)MOV CX,VARY (3)MOV DX,TYPE VARY3四、程序分析题10100H (CF)=120000H 当(BX)=0时,(CF)=0;当(BX)0时,(CF)=13-40964(1)从BLOCK数组中找出最出最小数,并送入RESULT单元。(2)循环次数为1FH/31。5(1)该程序段的功能是计算1+2×3+3×4+4×5+5×6+6×7CX。(2)(CX)=6FH/111五、程序填空题1MOV AL,SI DAA ADC AL,DL+12CMP AL,/$/ SUB AL,20H MOV DL,AL六、编制程序题1 MOVAX,DAT1MOVDX,DAT2TEST DX,8000HJZ DONENOTAXNOTDXADDAX,1ADCDX,0DONE: MOV ABS1,AXMOVAB2,DX2 DATASEGMENTADDRDW KEY DWXDATA ENDSPROGSEGMENT ASSUMECS:PROG,DS:DATA,ES:DSTASTART: MOVAX,DATAMOV DS,AXMOVES,AXMOVDI,OFFSET ADDRPUSH DIMOVAX,KEYMOVCX,ES:DIADDDI,2CLD REPNESCASWJE DELETEPOPDIJMPENITDELETE: JCXZNEXTLOP:MOV BX,ES:DIMOV ES:DI-2,BXADD DI,2LOOP LOPNEXT: POP DIDEC WORDPTR ES:DIMOV AH,4CHINT 21HPROGENDS END START