汇编语言复习资料4.docx

上传人:太** 文档编号:93756200 上传时间:2023-07-10 格式:DOCX 页数:18 大小:30.01KB
返回 下载 相关 举报
汇编语言复习资料4.docx_第1页
第1页 / 共18页
汇编语言复习资料4.docx_第2页
第2页 / 共18页
点击查看更多>>
资源描述

《汇编语言复习资料4.docx》由会员分享,可在线阅读,更多相关《汇编语言复习资料4.docx(18页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、汇编语言试卷一、单选题(每题1分,共20分)1 . CPU在读取指令时,实际读到的是什么?()A.伪指令和汇编指令所对应的字符串B.用汇编语言写的源程序中的信息C.由一系列二进制位组成的信息D.汇编指令所对应的字符串.关于编译和连接,错误的说法是()。A.编译产生的*.obj文件不能在操作系统下直接运行B.连接产生的*.exe文件里面没有伪指令C.编译可以检查出语法错误D.连接可以检查出逻辑错误CPU传递到地址总线上的地址是()。A.逻辑地址B.偏移地址C.物理地址D.段地址一条将立即数赋值给寄存器的指令,在执行的前一刻,指令中的立即数在()中。A.通用寄存器B.端口C.内存A,可以不使用循环

2、结构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.用更少的指令实现功能相

3、同的程序D.使程序易于扩展4.对于以下程序,正确的说法是()。assume cs:codecode segmentmov ax,0call sdb40hs:mov ax,offset smov bp,spsub ax,bpadd ax,3Ohpop bpmov ds,bpmov ds:160*8+80,almov ax,4c00hint21hcode endsendA.这个程序无法正确返回B. pop bp”执行后,bp中存放着“movax,offsets”指令的偏移地址C.这个程序可以在屏幕上显示出“1”这个字符D.这个程序在屏幕上显示出什么信息,取决于40h对应的汇编指令是什么.关于程序运

4、行,正确的说法是()。A.程序加载到内存后,其所占的内存空间的大小,就是用户定义的段的大小的总和B. 一个程序在运行的过程中,其指令不一定在内存里C. DOS给程序分配内存空间,在程序向DOS提出相关申请后进行D.对一个程序进行N次加载,第一条指令的物理地址不变.程序中有stack段,如下。在代码段中写一段程序,实现代码段中的程序开始运行后, 即将stack设置成一个初始状态为空的栈空间。一定无法实现此功能的程序段是()ostack segmentdw 0,0,0,0,0,0,0,0stack endsA. mov ax,stackmov ss,axmov sp,10hmov ax,cs mo

5、v ss,ax mov sp,10hB. mov ax,cssub ax,lmov ss,axmov sp,10hC. mov ax,dsadd ax,10hmov ss,axmov sp,10hE.前几个选项都不对。5 .关于标号,下列说法正确的是()。A.地址标号和数据标号都可以在jmp后使用6 .后面带“:”的标号,用在代码段中是地址标号,用在数据段中是数据标号C.用在代码段中的数据标号只表示内存单元的地址D.在and与or指令中不可用地址标号E.前几个选项都不对.下列8086CPU指令中,执行时读写内存次数最多的是()。A. jmp axB. retC. int nD. push bx

6、E. jmp word ptr bx和 call 200F. retf 和 call 0:200.下面程序的功能是()。(注:小写字母的ASCII码=大写字母的ASCII码+32)assume cs:codecode segmentdb welCOMestart: mov ax,cs mov ds,ax mov bx,0 mov ex,7mov al,bxand al,11011111b mov bx,alinc bx loop simov ax,4c00hint21hcode endsend startA.A.将“welCOMe”中的字符全变成“w”B. 将“welCOMe”中的字符全变成大

7、写C. 将“welCOMe”中的字符全变成小写D.将“welCOMe”中的字符小写变成大写,大写变成小写10.下面的程序统计1000:0处的32个字节型整数中,其值在卜64/16中的数据的个数,结果 存在DX中。补全这个程序。()mov ax,1000hmov ds,axmov bx,0mov dx,0s: mov al,0cmp al,16 cmp al,64 inc dxsO: inc bxloop sA. or al,bx jmp ax shr al,lB. add al,bx jnb s0 jna sOC. and al,bx je s0 je sD. sub al,bx jb sO

8、ja sOE.前几个选项都不对。四、多选题(每题3分,共18分).关于mul指令,正确的说法是()。A. mul指令可以对8位数据进行乘法运算,也可以对16位数据进行乘法运算B. mul指令的操作对象可以是内存字节单元C. mul指令进行的是无符号数乘法运算D. mul指令不影响CF位.编程时,我们经常将数据、代码、栈放入不同的段,有时还使用多个数据段,这样做的好 处是()QA.可以使程序更加清晰B.可以使程序更加有条理C.可以提高“rep movsb”指令的执行速度D.有利于节约内存3.“将标号a处的两个数据相乘,结果存放在标号b处”,以下程序中,能实现此功能的是 ()OA. assume

9、cs:code,ds:datacode segmentstart:mov ax,datamov ds,axmov al,amul almov b,axmov ax,4c00hint21hcode endsdata segmenta db 11,40b dw 0data endsend startB. assume cs:code,ds:datadata segmenta db 11,40b dw 0data endscode segmentstart:mov ax,datamov es,axmov alzamul almov ax,4c00h int21hcode ends end start

10、C. assume cs:codedata segmenta db 11,40b dw 0data endscode segmentstart:mov ax,datamov ds,axmov al,a mul al mov b,ax mov ax,4c00h int21hcode endsend startassume cs:code code segmenta db 11,40b dw 0start:mov al,amul almov word ptr a2,ax mov ax,4c00h int21hcode ends end start4 .执行movss,ax”后,CPU不响应中断的原

11、因是()。A.若响应中断,CS、IP的值无法保存到内存中B.为正确设置栈底提供时机C.为将SS:SP指向正确的栈顶提供支持D.若响应中断,CS、IP、标志寄存器的值可能会存储到错误的位置.下面对于段寄存器的叙述,错误的是()。A.用“reg”的方式进行寻址,默认的段寄存器为DS8. SS指向某个段,这个段则无法当做数据段使用C.不能将一个立即数直接传送到段寄存器D. CS不能通过传送指令改变6.“检查DS:BX处的字节是否为正偶数,是则AL=O,否则AL=1,可实现此功能的子程序 是()。A. func: mov alzds:bxand al,81hcmp al,0je s_retmov al

12、,ls_ret: retB. func: push exmov cxzds:bxsub ch,chand cl,81hjexz si51: mov alzclpop ex retC. func: mov al,ds:bxshr al,ljb simov al,051: retD. func: mov al,ds:bxand al,lemp alzOje siinc al si: ret五、程序研究(每题3分,共6分)1 .对于以下子程序,正确的功能说明是()。func:push axmov ax,lshl ax,clor bx/axpop axretA、将一个16位数n的低8位的第x位(x取值

13、范围是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位中2 .对于以下子程序,正确的说法是()。func:push bxpush expush dsmov ax,0next:add al,bxadc ah,0inc bxloop ne

14、xtpop dspop expop bx iretA.这个子程序可以实现计算某段内存空间中所有字节的和,结果放在AX中,DS:BX 为内存空间的首地址,CX为内存空间的长度B,将这个子程序对应的机器码复制到从0:200起始的内存空间,作为7ch号中断的中 断处理程序。之后如果调用int 7ch中断例程,运行loop next时会跳转到未知地址C.此程序中的push ds和pop ds可以省略D.此程序中的push ex和pop ex可以省略E. 此程序中的push bx和pop bx可以省略六、项目分析(6分)D. CPU内部的指令缓冲器5.关于8086CPU的几个寄存器,正确的说法是()。A

15、.可将BX当成两个8位寄存器,在偏移地址范围为0255时,可以用“mov axb 来实现将内存中的数据读到ax中B.可以用“byte ptr”实现将SI当成两个8位寄存器使用C.可将AX、BX、CX、DX当成8个8位寄存器使用D. AX、ah、al是不同的寄存器,指令add al,bl的执行不会影响AX的值.对于16位结构的CPU,其应有的特征不包括()。A.寄存器最大宽度是16位B.寄存器与运算器之间的通路为16位C.运算器一次处理的数据的最大宽度为16位D.地址总线宽度是16位.下列与8086CPU寻址相关的说法,错误的是()。A. 8086CPU有20根地址总线,它的寻址能力为1MBB.

16、 一个物理地址可以对应多个段地址与偏移地址C.因为段寄存器是16位,所以一个段最大为64KBD. CPU内部有一个能合成20位地址的地址加法器. 8086CPU读取、执行指令的过程是()。从CS:IP指向的内存空间读取指令,将指令放入指令缓冲器执行指令,转到步骤IP指向下一条指令A.、用汇编语言写一个贪吃蛇游戏,其功能说明如下:能够通过不同的按键让蛇:上下左右运动;运动速度变化;蛇身颜色变化。蛇每经过固定的一段时间就移动一下,用户可以在上一次移动完,新移动未开始的这段 时间内,按下一个或多个改变方向的按键,但游戏只接收此时的前两次按键,蛇接下来将依 据按键顺序进行移动(如当蛇正向左移动时,用户

17、在其两次移动之间快速按下“上”、“右” 键,其接下来将先向上运动,再向右运动)。每当蛇吃到“食物”后,食物所在的位置暂时不变,随着蛇的运动,等到蛇尾与食物位 置重合时,食物变成蛇的一部分,蛇身长度加lo蛇身初始长度可调,蛇头碰到上(或左) 边界时,下一移动时刻蛇头会从下(或右)边界重新出现,反之亦然。蛇头碰到地图中的墙 壁或者蛇身,游戏结束。实现这个游戏,合理的设计是()。A.定义一个数据段专门存储蛇的运动方向、运动速度、长度、颜色、蛇头位置等等 信息B.改写int9中断例程,读取与运动方向、速度、颜色相关的按键信息C.用栈这种数据结构来存储与运动方向相关的按键信息D.将蛇头运动、蛇尾更新、蛇

18、变色、游戏结束判断、延时等功能设计成中断例程E.将游戏的地图存储到数据段中,进入游戏时直接从其中读取地图并显示到屏幕上B.、C.若指令是转移指令,过程为、,不是则过程为、D.若指令是转移指令,过程为、,不是则过程为、.对于8086CPU,错误的指令是()。A. mov ax,dsB. push bxC. inc bxD. add bp,2.以下指令执行后,SP的值为()。mov spzOpush ssA. 0B. OfffehC. 2D.内存ss:O处的数据的值.关于循环结构,下列说法正确的是()。A.实现内存地址连续的8个字型数据的累加,循环结构与顺序结构相比,代码占得空 间可以更少B.循环

19、结构与顺序结构相比,实现相同的功能可以执行更少的代码C.只有使用loop指令才能实现循环结构D.双层循环结构中的所有汇编指令被执行的次数相同A. loop指令的跳转范围是.128127B. CX=10时,执行loop指令,IP的值一定减小C. CX=0 时,执行 loop 指令后,CX=OffffhD. CX=1时,执行loop指令,IP的值不变13.对于8086CPU,下列关于段的说法,错误的是()。A. 一个段的起始地址必须是16的整数倍B.在源程序中定义一个段,在运行程序时,CPU不会因此定义而知道这个段的大小。C. 一块内存空间可以既是代码段,又是数据段。D. CPU将某个段用做栈,是

20、因为assume指令将其与SS寄存器相关联14.用debug的e命令向b810:0010处写入数据,接着用d命令查看,发现b810:0010处并 没有刚刚写入的数据,其原因是()。A.此处用于存储系统时间,一直在自动更新B. debug存在延时,第二次查看即可看到用e命令写入的数据C.此处处于ROM空间,不可以被改变D.此处处于显存空间,当屏幕刷新时,此处的数据被更新了15.()的功能与“moval,d”的功能相同。A. mov ax/dB. mov al;a+3C. mov al;A+3D. or al/dA.汇编语言中的标号属于伪指令B.汇编指令一定有对应的机器码C.伪指令由编译器识别,编

21、译器将其转化为对应的机器码D.“ + ” 一般会被编译成add指令17.以下程序运行时,“subax,masm”执行后,ax的值是()。assume cs:codemasm segmentdw 5 dup(a7b:c)masm endscode segmentstart: mov ax,codesub ax,masmmov ax,4c00hint 21hcode endsend startA. 15B. 1C. 2D. 3.对于8086CPU的标志寄存器,下列说法错误的是()。A.标志寄存器是16位的B.无法通过一条汇编指令将标志寄存器的所有位都更新C.这个寄存器中的有些位没有任何含义D. c

22、mp指令能够改变标志寄存器的值A. BIOS中断例程固化在ROM中B. DOS中断例程固化在ROM中C. BIOS中断例程对应的中断向量表表项,只能读取,不能写入D.中断处理程序不能够再调用别的中断处理程序20.关于中断,错误的说法是()。A. CPU执行int n指令时,不必通过数据总线读取中断类型码。B.中断向量表一个表项的长度为4byteC.外中断都可以被屏蔽D.按下按键,或抬起按键都会触发9号中断二、单选题(每题2分,共20分)1 .关于div指令,错误的说法是()。A.执行div指令可能触发中断B. div指令的除数既可以是16位,也可以是8位C. div指令的被除数或存放在DX和A

23、X中,或存放在AX中D. div指令的运算结果有商和余数两部分.关于debug的使用,错误的说法是()。A. Debug将程序加载到内存后,不执行任何命令前,IP的值一定为零B.通过debug可以查看标志寄存器某些位的值C. Debug将程序加载到内存后,不执行任何命令前,CX的值有可能是1024D. T命令有可能一次执行一条以上的指令2 .关于0:2000:2ff这块内存空间,正确的说法是()。A.其为ROM空间B. 其为CMOS RAM空间C.其是中断向量的存储空间,但可能是空闲的D.其中存储着BIOS提供的开机引导程序.下列指令,一定不会使标志寄存器发生变化的是()。A. int 21h

24、B. jmp axC. cmp ax,bxD. sub ax,ax.关于串传送指令,错误的说法是()。A.只用一条movsb指令,即可以将一个内存单元里的数据传送到另一个内存单元8. movsb指令执行后,SI与DI的值可能会增加,也可能会减小C.传送可以以字节为单位进行,也可以以字为单位进行D.如果在执行“movsb”之前,CX的值是10, “movsb”将重复执行10次.用debug的d命令查看内存,结果如下,则下列指令执行后,CS和IP的值依次是()o1000:0010 63 69 66 69 65 73 20 61mov ax,1000Hmov es,axjmp dword ptr e

25、s:0012HA. 6669 6573B. 6966 6965C. 7365 6966D. 1000 0012.对于标志寄存器相关位的描述,错误的是()。A. mov al,ladd al,127这两条指令执行后,OF=1,发生溢出;虽然逻辑结果为正,但SF却为1B. mov al,ladd al,Offh这两条指令执行后,OF=0, CF=1C. inc ax”不影响标志寄存器的CF位D. s: mov ax,8f00hcmp ax,5jb sint21h这段程序执行过程中,SF一直为1. mov ax,4c00hint21h这段程序的作用是()。A.调用21h号中断例程的4c00h号功能B

26、.告诉编译器程序到此结束C. 返回DOSD.前三个选项都不对A. iret指令可以描述为:popf pop cs pop ipB. mov al,ladd al,Offh上面两条指令执行后,(AX)=0C.用debug进行调试时,用p命令可以一次执行多条汇编指令D. call指令不能通过位移进行跳转10.关于8086CPU提供的栈机制,错误的说法是()。A.任意时刻,SS:SP指向栈顶8086CPU只记录栈顶,一个程序运行时,其对栈空间的使用是否越界,需要程序设 计者考虑C.用栈来暂存数据时,数据出栈的顺序一定要与入栈的相反D.键盘缓冲区是一种特殊的栈三、单选题(每题3分,共30分)1.实现一个子程序,在屏幕上显示一个由六个构成的如下图形:* *

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 解决方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁