您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > 山东大学2013-2014汇编语言程序设计试题(含答案)
………………………………………………密………………………………封………………………………线………………………………………………………………………………………………密………………………………封………………………………线………………………………………………山东大学2013-2014学年一学期汇编语言课程试卷题号一二三四五六七八九十总分阅卷人得分学院专业级学号姓名第1页共2页一、填空(30分)1.80386处理器有3种工作模式,分别是:____实模式_、______保护模式__、____虚86_______。2.(AL)=43H,被看作无符号数时,对应的十进制数是:_67__;被看作带ASCII码时,对应的字符是:___C_____;被看作补码表示的带符号数时,对应的十进制数是:61___。若[X]补=43H,则[-X]补=_C3H_。3.CPU的标志寄存器中标志位可以分为两大类,其中一类称为状态标志位,另一类称为_控制__标志位。这些标志位中的AF为____辅助进位____标志位,TF为_陷阱_标志位。若(AX)=0E653H,(BX)=009AH,指令ADDAX,BX执行后,PF___0__,OF=___0_____。4.对于无进制标记数字,汇编语言默认__十___进制数,DEBUG默认十六_进制数。5.设CPU正在执行指令MOVAX,02H[BX],此时(CS)=31FFH,(DS)=10E4H,(SS)=21F0H,(IP)=0120H,(BX)=0002H,(BP)=0000H。这一指令目的操作数的寻址方式为_寄存器寻址_;源操作数的寻址方式为寄存器相对寻址,源操作数的段地址为10E4H,偏移地址为_0004H__。下一条即将执行的指令的逻辑地址为0120H,物理地址为_32110H_。6.80x86系统的I/O地址总线宽度是20位的,所以寻址范围是_1M_,写入端口61H一个字的指令为_INAX,61H_。7.指令REPMOVSW执行过程中,使用了两个段寄存器DS和ES_,还使用了标志位__DF______确定字符串处理方向,另外,寄存器__CX__作为计数器。8.对于RET指令来说,如果其属于NEAR属性的子程序,则从栈顶弹出一个字到寄存器_IP_;如果其属于FAR属性的子程序,则还需要从堆栈弹出一个字到寄存器_CS__。对于IRET指令来说,除了需要恢复前面两个寄存器,还需要从堆栈弹出一个字到寄存器FLAGS。二、阅读分析(20分)阅读分析部分假设已有如下数据段定义:DATASEGMENGV1DW1,2,3V2DW10DUP(4)DATAENDS1、如下程序段,每条指令执行后(连续执行),AX寄存器的内容是什么?(1).MOVAX,V1+4;(AX)=____0003H____(2).XORAX,AX;(AX)=_0000H_(3).NOTAX;(AX)=__0FFFFH_____(4).MOVAX,TYPEV2;(AX)=_0002H_(5).MOVAX,V2-V1;(AX)=0006H_2、下列语句是否正确?错误的说明原因或改正(1).MOVCX,($-V1)/2;________________(2).ADDCS,BX;_错,CS不能为目的寄存器_______________(3).MOVV1,V2;错,两个操作数不能都是存储器操作数_(4).MOVDS,1000H;错,立即数不能直接传给段寄存器(5).RET3;__正确3、设下面是一个程序段,请填充其中的空白。功能:设在ADDR单元存放着Y的地址,下面程序统计Y中“1”的个数,并存入COUNT单元中。(有问题)MOVCX,0MOVBX,ADDR;①MOVAX,[BX]REP1:TESTAX,0001H;②JZEEIT;③JMPSHIFT;④INCCXSHIFT:SHRAX,1;⑤JMPREP1EEIT:MOVCOUNT,CXRET得分阅卷人得分阅卷人山东大学2013-2014学年一学期汇编语言课程试卷学院专业级学号姓名………………………………………………密………………………………封………………………………线………………………………………………4、阅读下面程序MOVCL,4SHLDX,CLMOVBL,AHSHLAX,CLSHRBL,CLORDL,BL该程序段完成的功能是:0or0三、简答(20分)1.简述子程序和宏之间的异同。2.在实模式下,类型1CH的中断向量存放在存储器的哪些单元?其中偏移量在哪些单元?段地址在哪些单元?3.对于IBM-PC系统而言,CPU与外设之间的信息交换通常包括哪些方式?简要说明这些方式的特点。4.简述汇编试验中用DEBUG显示、修改内存内容的方法。1.子程序:优点:模块化,节省内存,可被多次调用,编程效率高。缺点:额外开销(保存返回地址,计算转向地址,传递参数等)大,增加了执行时间。适用于子功能代码较长、调用比较频繁的情况。宏调用:优点:参数传送简单,执行效率高。缺点:不节省空间,适用于子功能代码较短、传参较多的情况。2.70H,71H,72H,73H;70H,71H放偏移量;72H,73H放段地址;3.程序直接方式,程序中断方式,DMA方式4.-u-r四、编程(30分)1.写完整格式程序,功能:输入单个字符,如果是数字字符(0~9),则显示字符串“numeric”,否则显示字符串“nonnumeric”。2.写子程序,功能:十进制显示BL寄存器中的无符号数。3.写宏定义,功能:对数组求和。数组名称BUFFER,COUNT单元存放元素个数,结果存入SUM单元。注:COUNT、BUFFER和SUM作为宏参数,不考虑溢出。datasegmentmess1db‘numeric’,13,10,’$’mess1db‘nonumeric’,13,10,’$’dataendscodesegmentassumecs:code,ds:datamainprocfarstart:pushdssubax,axpushaxmovax,datamovds,axmovah,01hint21hsubal,0jbexitsubal,9jaexitmovdx,mess1movah,09hint21h得分阅卷人得分阅卷人第2页共2页exit:movdx,mess2movah,09hint21hretmainendpcodeendsendstart4.十进制显示BL的无符号数BinidecprocnearMovcx,100dCalldec_divMovcx,10dCalldec_divMovcx,1dCalldec_divRetEndpDec_divMoval,blcbwDivcxMovbx,dxMovdl,alAdddl,30hMovah,02hInt21hRetDec_divendp5.宏定义Sum_arraymarcobuffer,count,sumLocalarr_sumMovax,0Movbx,0Movcx,countArr_sum:Addax,buffer[bx]IncbxLooparr_sumMovsum,axEndm
本文标题:山东大学2013-2014汇编语言程序设计试题(含答案)
链接地址:https://www.777doc.com/doc-7352228 .html