《汇编语言程序设计期末考试题.docx》由会员分享,可在线阅读,更多相关《汇编语言程序设计期末考试题.docx(4页珍藏版)》请在优知文库上搜索。
1、汇编语言程序设计期末考试题学院(系):学号:姓名:计分:项选择题(在每题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内.每题1分,共10分)1 .CPU发出的访问存储器的地址是()A.物理地址B.偏移地址C.逻辑地址D.段地址2 .将高级语言的程序翻译成机器码程序的实用程序是()A.编译程序B.汇编程序C.解释程序D.目标程序3 .DECBYTEPTRBX指令中的操作数的数据类型是()A.字B.双字C.字节D.四字4 .在以下语句中,BUFFER称为()BUFFERDB01H,OAHA.符号B.变量C.助记符D.标号5 .串操作指令中,源串操作数的段地址一定在()存放器
2、中。A.CSB.SSC.DSD.ES6 .使计算机执行某种操作的命令是()A.伪指令B.指令C.标号D.助记符7 .将数据5618H存放在存储单元中的伪指令是()A.DATAlDW1856HB.DT1DB18H,56HC.DATAlEQU5618HD.DATAlDB18HOOH,56H,OOII8 .假设AX=3500H,CX=56B8H,当ANDAX,CX指令执行后,AX=()A.1400HB.77F8HC.0000HD.OFFFFH9 .计算机处理问题中会碰到大量的字符、符号,对此必须采用统一的二进制编码。目前,微机中普遍采用的是()码。A.BCD码B.二进制码CASCH码D.十六进制码1
3、0 .用指令的助记符、符号地址、标号和伪指令、宏指令以及规定的格式书写程序的语言称为()A.汇编语言B.高级语言C.机器语言D.低级语言填空题(每空1分,共20分)1 .在8086/8088汇编语言中,有五条串操作指令,其中搜索字符串指令的助记符是。2 .通常所说的计算机系统包括和两大局部。3 .8086/8088存储器分四个段,这四个段的段名所对应的段存放器分别是、4 .现有AX=2000H,BX=1200H,DS=3000H,Dl=0002H,(31200H)=50H,(31201H)=02H,(31202H)=40H,请写出以下各条指令独立执行完后有关存放器及存储单元的内容,并指出标志位
4、ZF、CF的值。A. ADDAX,120011;问AX=II,ZF=B. SUBAX,BX:问AX=H.ZF=C. MOVAX,BX;问AX=HCF=D. NEGWORDPTR1200H:问(31200H)=_HCF=_5 .设DS=2200H,BX=100OH,SI=OlOOH,偏移量D=OA2B1H,试计算出以下各种寻址方式下的有效地址,填入括号中。A.使用D的直接寻址()B.使用BX的存放器间接寻址()C.使用BX和D的存放器相对寻址()D.使用BX.SI和D的相对基址变址寻址()E.使用BX、SI的基址变址寻址()三、简答题(共20分)1 .程序在数据段中定义的数组如卜7(4分)ARR
5、AYDB,YESIS,DB20aIIDBDONOT,请指出以下指令是否正确?假设不正确,错在哪里?(答案做在旁边A. MOVBX,OFFSETARRAYMOVAX,BX+8B. MOVAX,ARRAYC. MOVBX,2MOVSI,3MOVAX,ARRAYBXSID. MOVBX,2*2MOVSI,3MOVAX,OFFSETARRAYBXSI;在汇编过程中,OFFSET操作将得到变量的偏移值,但对相对基址变址寻址方式形成的值,在汇编指令时还是未知的,所以第三条指令不正确。INCAX;第四条指令中,AX不能作为基址存放器用。2 .如TABLE为数据段中OlOO单元的符号名,其中存放的内容为OFF
6、OolL试问以卜两条指令有什么区别?指令执行后,AX存放器的内容是什么?(3分)MOVAX,TABLEMOVAX,OFFSETTABLE3 .对于下面的数据定义,三条MoV指令分别汇编成什么?(3分,答案写在对应指令的右边)TABlDW10DUP(?)TAB2DB10DUP(?TAB3DB1234MOVAX,LENGTHTABlMOVBL,LENGTHTAB2MOVCL,LENGTHTAB34 .子程序的说明文件中应包括哪儿方面的内容?(5分)5、分别指出以下指令中源操作数的寻址方式:(5分,答案写在对应指令的右边)A. MOVSI,100立即寻址B. MOVCX,DATASI存放器相对寻址C
7、. MOVSI,AX存放器寻址D. ADDAX,BXDI基址变址寻址三、简答题(共20分)1.A.正确B.数据类型不匹配错C.前两条指令正确,第三条数据类型不匹配D.前两条正确,后两条不正确,在汇编过程中,OFFSET操作将得到变量的偏移值,但对相对基址变址寻址方式形成的值在汇编指令时还是未知的,所以第三条指令不正确。第四条指令中,AX不能作为基址存放器用。2.第一条指令传送的是OloOH单元中的内容AX=OFFOOH第二条指令传送的是地址OlooHAX=OIooH3.MOVAX,10MOVBL,10MOVCL,14.A.子程序名B.子程序的功能C.子程序所用到的存放器、工作单元的情况D.子程
8、序的输入参数E.子程序的输出参数5.A.立即寻址B.存放器相对寻址C.存放器寻址D.基址加变址寻址E.存放器寻址四、程序分析(每题5分,共20分)1.把DAT1+20存储单元开场的10个字节搬到DAT2开场的连续10个存储单元中。2.3OOOH3.判断AL的内容,假设为AZ的大写字母时,程序转LETTER处理,否那么转OTHER处理。4.0HX)HE. POPHF四、程序分析(每题5分,共20分,答案写在程序右边空白处.)1 .列程序段完成什么工作?DATlDB30DUP(?)DAT2DB10DUP(?)tMOVCX,10MOVBX,20MOVSL0MOVDl,0NEXT:MOVAL,DATl
9、BXSIMOVDT2DI,LINCSIINCDILOOPNEXT2 .执行以下指令后,AX存放器中的内容是什么?STARTDW10H,20H,30H,40H,50HEElDW3BIMOVBX,OFFSETSTARTADDBX,EElMOVAX,BX3 .试分析下面程序段的功能是什么?CMPAL,A,JCOTHERCMPAL,Z,+1JNCOTHERJMPLETTEROTHER:1.ETTER:4 .下面程序段执行完以后,AL的内容是什么?MOVBX,OOFFHANDBX,OFFFHORBX,OFOFHXORBX,OOFFH五、程序设计(每题10分,共30分)1 .试编写出把DX、AX中的双字右
10、移四位的程序段。2 .定义一个数据区,它包含有23H,24H,25H和26H四个字符数据,把这个数据区复制20次,并显示出复制结果。3 .内存自BUF单元开场的缓冲区连续存放着100个学生的英文分数,编程序统计其中90-100,6089,60以下者各有多少人?并把结果连续存放到自RESUT开场的单元中,(要求画出程序流程图,各段定义完整)汇编语言程序设计试题答案一、单项选择题(每题1分,共K)分)l.A2.A3.C4.B5.C6.B7.B8.A9.C10.A二、填空题(每空1分,共20分)1.SCAS2.硬件软件3.CSDSESSS4.A.32(X)H0B.0E(X)H0C.0250H不影响D
11、.0B0H15.A.0A2B1HB.1OOOHC.OB2B1HD.0B3B1HE.1100H三、简答题(共20分)1.A.正确B.数据类型不匹配错C.前两条指令正确,第三条数据类型不匹配D.前两条正确,后两条不正确,在汇编过程中,OFFSET操作将得到变量的偏移值,但对相对基址变址寻址方式形成的值在汇编指令时还是未知的,所以第三条指令不正确。第四条指令中,AX不能作为基址存放器用。2.第一条指令传送的是OloOH单元中的内容AX=OFFOOh第一条指令传送的是地址OloOHAX=OloOH3.MOVAX,1()MOVBL,1()MOVCL,14.A.子程序名B.子程序的功能C.子程序所用到的存
12、放器、工作单元的情况D.子程序的输入参数E.子程序的输出参数5.A.立即寻址B.存放器相对寻址C.存放器寻址D.基址加变址寻址E.存放器寻址四、程序分析(每题5分,共20分)1.把DAT1+20存储单元开场的10个字节搬到DAT2开场的连续10个存储单元中。2.3OOOH3.判断AL的内容,假设为AZ的大写字母时,程序转LETTER处理,否那么转OTHER处理。4.0F00H五、程序设计(每题10分,共30分)1.MOVCL,04SHRAX,CLMOVBL,DLSHRDX,CLSHLBL,CLORBL,AH2.DATASEGMENTPATTERNDB23H,24H,25H,26HDISPLAY
13、DB80DUPf,),S,DATEENDSCODEsegment:CldleaslPatternleadi,Displaymovcx,sorepmovsbmovah,09hleadx,Displayint21hretcodeends3.dataSegmentbufdb4oh,64H,51hRESUTdb3dup(o)dataEndsstacksegmentstackdb100dup(o)stackendscodeSegmentassumeds:data,ES:DATA,SS:STACK,CS:CODESTARTPROCFARPUSHDSMOVAX,OPUSHAXMOVAX,DATAMOVDS,AXMOVES,AXMOV、AX,STACKMOVSS,AXLEASI,BUFMOVCX,1OOCLDAO:Lodsbcmpal,5ahjll6oincresutjmpcoml6():cmpal,3chjgek896oincresut+iJMPCOMK8960:INCRESUT+2COM:LOOPAORETSTARTENDPCODEENDSENDSTART