版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
《汇编语言》试卷一、单选题(每题1分,共20分).CPU在读取指令时,实际读到的是什么?()A.伪指令和汇编指令所对应的字符串B.用汇编语言写的源程序中的信息C.由一系列二进制位组成的信息D.汇编指令所对应的字符串.关于编译和连接,错误的说法是()。A.编译产生的*.obj文件不能在操作系统下直接运行B.连接产生的*.exe文件里面没有伪指令C.编译可以检查出语法错误D.连接可以检查出逻辑错误CPU传递到地址总线上的地址是()。A.逻辑地址B.偏移地址C.物理地址D.段地址一条将立即数赋值给寄存器的指令,在执行的前一刻,指令中的立即数在()中。A.通用寄存器B.端口C.内存A,可以不使用循环结构B.可以只用ret指令、栈指令和逻辑运算指令C.可以只用一个寄存器存储的ASCII码在显存中的偏移地址D.写在指令中的寄存器不可以只是段寄存器.关于中断过程中CPU对TF、IF的设置,错误的说法是()。A.若设置TF=1,则单步中断会不断地触发下去B.设置IF=O,但仍可将中断处理程序设计成可以响应外中断的程序C.若设置TF=1,将影响debug的运行D.由于设置IF=O,在中断例程中无法用int指令调用可屏蔽中断的中断例程.使用直接定址表实现程序的作用不包括()。A.不用进行比对,即可从一组数据中读出与某一给定数值相等的数据B.用更少的存储空间实现功能相同的程序C.用更少的指令实现功能相同的程序D.使程序易于扩展4.对于以下程序,正确的说法是()。assumecs:codecodesegmentmovax,0callsdb40hs:movax,offsetsmovbp,spsubax,[bp]addax,3Ohpopbpmovds,bpmovds:[160*8+80],almovax,4c00hint21hcodeendsendA.这个程序无法正确返回B."popbp”执行后,bp中存放着“movax,offsets”指令的偏移地址C.这个程序可以在屏幕上显示出“1”这个字符D.这个程序在屏幕上显示出什么信息,取决于40h对应的汇编指令是什么.关于程序运行,正确的说法是()。A.程序加载到内存后,其所占的内存空间的大小,就是用户定义的段的大小的总和一个程序在运行的过程中,其指令不一定在内存里DOS给程序分配内存空间,在程序向DOS提出相关申请后进行D.对一个程序进行N次加载,第一条指令的物理地址不变.程序中有stack段,如下。在代码段中写一段程序,实现代码段中的程序开始运行后,即将stack设置成一个初始状态为空的栈空间。一定无法实现此功能的程序段是()ostacksegmentdw0,0,0,0,0,0,0,0stackendsmovax,stackmovss,axmovsp,10hmovax,csmovss,axmovsp,10hmovax,cssubax,lmovss,axmovsp,10hmovax,dsaddax,10hmovss,axmovsp,10hE.前几个选项都不对。.关于标号,下列说法正确的是()。A.地址标号和数据标号都可以在jmp后使用.后面带“:”的标号,用在代码段中是地址标号,用在数据段中是数据标号C.用在代码段中的数据标号只表示内存单元的地址D.在and与or指令中不可用地址标号E.前几个选项都不对.下列8086CPU指令中,执行时读写内存次数最多的是()。jmpaxretintnpush[bx]jmpwordptr[bx]和call200retf和call0:200.下面程序的功能是()。(注:小写字母的ASCII码=大写字母的ASCII码+32)assumecs:codecodesegmentdb'welCOMe'start:movax,csmovds,axmovbx,0movex,7moval,[bx]andal,11011111bmov[bx],alincbxloopsimovax,4c00hint21hcodeendsendstartA.A.A.将A.将“welCOMe”中的字符全变成“w”将“welCOMe”中的字符全变成大写将“welCOMe”中的字符全变成小写D.将“welCOMe”中的字符小写变成大写,大写变成小写10.下面的程序统计1000:0处的32个字节型整数中,其值在卜64/16]中的数据的个数,结果存在DX中。补全这个程序。()movax,1000hmovds,axmovbx,0movdx,0s:moval,0cmpal,16cmpal,64incdxsO:incbxloopsoral,[bx]>jmpax>shral,laddal,[bx]>jnbs0>jnasOandal,[bx]>jes0>jessubal,[bx]>jbsO>jasOE.前几个选项都不对。四、多选题(每题3分,共18分).关于mul指令,正确的说法是()。mul指令可以对8位数据进行乘法运算,也可以对16位数据进行乘法运算mul指令的操作对象可以是内存字节单元mul指令进行的是无符号数乘法运算mul指令不影响CF位.编程时,我们经常将数据、代码、栈放入不同的段,有时还使用多个数据段,这样做的好处是()QA.可以使程序更加清晰B.可以使程序更加有条理C.可以提高“repmovsb”指令的执行速度D.有利于节约内存3.“将标号a处的两个数据相乘,结果存放在标号b处”,以下程序中,能实现此功能的是()Oassumecs:code,ds:datacodesegmentstart:movax,datamovds,axmoval,amula[l]movb,axmovax,4c00hint21hcodeendsdatasegmentadb11,40bdw0dataendsendstartassumecs:code,ds:datadatasegmentadb11,40bdw0dataendscodesegmentstart:movax,datamoves,axmovalzamula[l]movax,4c00hint21hcodeendsendstartassumecs:codedatasegmentadb11,40bdw0dataendscodesegmentstart:movax,datamovds,axmoval,amula[l]movb,axmovax,4c00hint21hcodeendsendstartassumecs:codecodesegmentadb11,40bdw0start:moval,amula[l]movwordptra[2],axmovax,4c00hint21hcodeendsendstart.执行"movss,ax”后,CPU不响应中断的原因是()。A.若响应中断,CS、IP的值无法保存到内存中B.为正确设置栈底提供时机C.为将SS:SP指向正确的栈顶提供支持D.若响应中断,CS、IP、标志寄存器的值可能会存储到错误的位置.下面对于段寄存器的叙述,错误的是()。A.用“[reg]”的方式进行寻址,默认的段寄存器为DSSS指向某个段,这个段则无法当做数据段使用C.不能将一个立即数直接传送到段寄存器D.CS不能通过传送指令改变6.“检查DS:BX处的字节是否为正偶数,是则AL=O,否则AL=1",可实现此功能的子程序是()。func:movalzds:[bx]andal,81hcmpal,0jes_retmoval,ls_ret:retfunc:pushexmovcxzds:[bx]subch,chandcl,81hjexzsimovalzclpopexretfunc:moval,ds:[bx]shral,ljbsimoval,0retfunc:moval,ds:[bx]andal,lempalzOjesiincalsi:ret五、程序研究(每题3分,共6分).对于以下子程序,正确的功能说明是()。func:pushaxmovax,lshlax,clorbx/axpopaxretA、将一个16位数n的低8位的第x位(x取值范围是[0,7])置1,n存放在BX中,X存放在CL中B、将一个8位数n的第x位(x取值范围是[0,7])置1,n存放在BL中,X存放在CL中C、将一个8位数n的第X位(X取值范围是[0,7])置1,n存放在BX中,X存放在CL中D、将一个16位数n的第x位(x取值范围是[0,15])置1,n存放在BX中,X存放在CL中E、将一个16位数n的第x位(x取值范围是[0,15])置1,n存放在BX中,X存放在CL的低4位中.对于以下子程序,正确的说法是()。func:pushbxpushexpushdsmovax,0next:addal,[bx]adcah,0incbxloopnextpopdspopexpopbxiretA.这个子程序可以实现计算某段内存空间中所有字节的和,结果放在AX中,DS:BX为内存空间的首地址,CX为内存空间的长度B,将这个子程序对应的机器码复制到从0:200起始的内存空间,作为7ch号中断的中断处理程序。之后如果调用int7ch中断例程,运行loopnext时会跳转到未知地址C.此程序中的pushds和popds可以省略D.此程序中的pushex和popex可以省略此程序中的pushbx和popbx可以省略六、项目分析(6分)D.CPU内部的指令缓冲器5.关于8086CPU的几个寄存器,正确的说法是()。A.可将BX当成两个8位寄存器,在偏移地址范围为0~255时,可以用“movax」b『'来实现将内存中的数据读到ax中B.可以用“byteptr”实现将SI当成两个8位寄存器使用C.可将AX、BX、CX、DX当成8个8位寄存器使用D.AX、ah、al是不同的寄存器,指令"addal,bl"的执行不会影响AX的值.对于16位结构的CPU,其应有的特征不包括()。A.寄存器最大宽度是16位B.寄存器与运算器之间的通路为16位C.运算器一次处理的数据的最大宽度为16位D.地址总线宽度是16位.下列与8086CPU寻址相关的说法,错误的是()。8086CPU有20根地址总线,它的寻址能力为1MB一个物理地址可以对应多个段地址与偏移地址C.因为段寄存器是16位,所以一个段最大为64KBCPU内部有一个能合成20位地址的地址加法器.8086CPU读取、执行指令的过程是()。①从CS:IP指向的内存空间读取指令,将指令放入指令缓冲器②执行指令,转到步骤①③IP指向下一条指令A.①、②用汇编语言写一个贪吃蛇游戏,其功能说明如下:能够通过不同的按键让蛇:①上下左右运动;②运动速度变化;③蛇身颜色变化。蛇每经过固定的一段时间就移动一下,用户可以在上一次移动完,新移动未开始的这段时间内,按下一个或多个改变方向的按键,但游戏只接收此时的前两次按键,蛇接下来将依据按键顺序进行移动(如当蛇正向左移动时,用户在其两次移动之间快速按下“上”、“右”键,其接下来将先向上运动,再向右运动)。每当蛇吃到“食物”后,食物所在的位置暂时不变,随着蛇的运动,等到蛇尾与食物位置重合时,食物变成蛇的一部分,蛇身长度加lo蛇身初始长度可调,蛇头碰到上(或左)边界时,下一移动时刻蛇头会从下(或右)边界重新出现,反之亦然。蛇头碰到地图中的墙壁或者蛇身,游戏结束。实现这个游戏,合理的设计是()。A.定义一个数据段专门存储蛇的运动方向、运动速度、长度、颜色、蛇头位置等等信息B.改写int9中断例程,读取与运动方向、速度、颜色相关的按键信息C.用栈这种数据结构来存储与运动方向相关的按键信息D.将蛇头运动、蛇尾更新、蛇变色、游戏结束判断、延时等功能设计成中断例程E.将游戏的地图存储到数据段中,进入游戏时直接从其中读取地图并显示到屏幕上B.①、③、②C.若指令是转移指令,过程为①、③、②,不是则过程为①、②D.若指令是转移指令,过程为①、②,不是则过程为①、③、②.对于8086CPU,错误的指令是()。movax,dspush[bx]inc[bx]addbp,2.以下指令执行后,SP的值为()。movspzOpushss0Offfeh2D.内存ss:O处的数据的值.关于循环结构,下列说法正确的是()。A.实现内存地址连续的8个字型数据的累加,循环结构与顺序结构相比,代码占得空间可以更少B.循环结构与顺序结构相比,实现相同的功能可以执行更少的代码C.只有使用loop指令才能实现循环结构D.双层循环结构中的所有汇编指令被执行的次数相同loop指令的跳转范围是.128〜127CX=10时,执行loop指令,IP的值一定减小CX=0时,执行loop指令后,CX=OffffhCX=1时,执行loop指令,IP的值不变13.对于8086CPU,下列关于段的说法,错误的是()。A.一个段的起始地址必须是16的整数倍B.在源程序中定义一个段,在运行程序时,CPU不会因此定义而知道这个段的大小。一块内存空间可以既是代码段,又是数据段。CPU将某个段用做栈,是因为assume指令将其与SS寄存器相关联14.用debug的e命令向b810:0010处写入数据,接着用d命令查看,发现b810:0010处并没有刚刚写入的数据,其原因是()。A.此处用于存储系统时间,一直在自动更新B.debug存在延时,第二次查看即可看到用e命令写入的数据C.此处处于ROM空间,不可以被改变D.此处处于显存空间,当屏幕刷新时,此处的数据被更新了15.()的功能与“moval,d”的功能相同。movax/d'moval;a'+3moval;A'+3oral/d'A.汇编语言中的标号属于伪指令B.汇编指令一定有对应的机器码C.伪指令由编译器识别,编译器将其转化为对应的机器码D.“+”一般会被编译成add指令17.以下程序运行时,“subax,masm”执行后,ax的值是()。assumecs:codemasmsegmentdw5dup('a7b:c')masmendscodesegmentstart:movax,codesubax,masmmovax,4c00hint21hcodeendsendstart15123.对于8086CPU的标志寄存器,下列说法错误的是()。A.标志寄存器是16位的B.无法通过一条汇编指令将标志寄存器的所有位都更新C.这个寄存器中的有些位没有任何含义D.cmp指令能够改变标志寄存器的值BIOS中断例程固化在ROM中DOS中断例程固化在ROM中BIOS中断例程对应的中断向量表表项,只能读取,不能写入D.中断处理程序不能够再调用别的中断处理程序20.关于中断,错误的说法是()。A.CPU执行intn指令时,不必通过数据总线读取中断类型码。B.中断向量表一个表项的长度为4byteC.外中断都可以被屏蔽D.按下按键,或抬起按键都会触发9号中断二、单选题(每题2分,共20分).关于div指令,错误的说法是()。A.执行div指令可能触发中断div指令的除数既可以是16位,也可以是8位div指令的被除数或存放在DX和AX中,或存放在AX中div指令的运算结果有商和余数两部分.关于debug的使用,错误的说法是()。Debug将程序加载到内存后,不执行任何命令前,IP的值一定为零B.通过debug可以查看标志寄存器某些位的值Debug将程序加载到内存后,不执行任何命令前,CX的值有可能是1024T命令有可能一次执行一条以上的指令.关于0:200〜0:2ff这块内存空间,正确的说法是()。A.其为ROM空间其为CMOSRAM空间C.其是中断向量的存储空间,但可能是空闲的D.其中存储着BIOS提供的开机引导程序.下列指令,一定不会使标志寄存器发生变化的是()。int21hjmpaxcmpax,bxsubax,ax.关于串传送指令,错误的说法是()。A.只用一条movsb指令,即可以将一个内存单元里的数据传送到另一个内存单元movsb指令执行后,SI与DI的值可能会增加,也可能会减小C.传送可以以字节为单
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论