汇编语言复习资料1_第1页
汇编语言复习资料1_第2页
汇编语言复习资料1_第3页
汇编语言复习资料1_第4页
汇编语言复习资料1_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

一、单选题(每题1分,共20分)PC机的最小信息单位是()。A:bitB:字节C:字长D:字一个CPU的寻址能力是8KB,那么它的地址总线的宽度为()位。A:8B:3C:12D:13在Debug中,用“d075A:11011F”查看内存,结果如下:075A:0110B800 00FF07 00B84C—CD21F369208A03A1那么,字型数据00B8H对应的地址为()。A:076A:11B:076A:16C:076B:0D:无法确定Debug加载程序后,假设PSP的段地址为SA,偏移地址为0,则程序的起始地址是()。A:SAX16HB:SAX16C:(SA+16H)X16HD:(SA+16)X168086CPU中,任意时刻,CPU将()指向的内容当作指令来执行。A:DS:SIB:CS:IPC:SS:SPD:ES:DI下列关于Debug的说法,错误的是()。A:R命令可以修改寄存器的内容。B:E命令可以修改内存单元的内容。C:T命令每次只执行一条指令。D:D命令可以查看内存单元的内容。源程序中有如下两个按先后顺序定义的段:asegmentdb1,2,3,4,5,6,7,8aendsbsegmentdb1,2,3,4,5,6,7,8bends如果a段中“1”这个数据的物理地址是X,则b段中“1”这个数据的物理地址是()。A:XB:X+1C:X+16D:X+64对于8086CPU,错误的指令是()。A:movax,bxB:movax,[bx]C:movds,0D:movax,0对于8086CPU,正确的指令是()。A:inccx,1B:shlax,2C:and[bp],alD:mov[bx][bp],ax以下指令执行后,寄存器ax的值为()。movax,0095hmovah,95haddal,ahA:9680HB:968AHC:962AHD:952AH可以实现将ax的值增大2倍的是()。A:mul2B:mulax,2C:shlax,1D:shrax,1以下指令执行后,of和cf的值是:()movax,0pushaxpopfmovax,0ffffhincaxA:of=0,cf=0B:of=1,cf=0C:of=0,cf=1D:of=1,cf=113.CPU在执行“call标号”时,相当于执行()。A:pushIPjmpfarptr标号B:pushCSpushIPjmpfarptr标号C:pushIPjmpnearptr标号D:pushCSpushIPjmpnearptr标号14.在8086PC中,CPU不可用指令读取()中的数据。A:控制总线B:端口C:键盘缓冲区D:存储BIOS的ROM下列关于中断的说法,正确的是()。A:中断信息可以来自CPU内部和外部。B:中断类型码为一个字型数据,可以表示65536种中断信息的来源。C:键盘输入会引发内中断。D:对于8086CPU,中断向量表指定放到第一个单元的地址为0的大小为64kB的内存空间中。中断向量表中存放的是()。A:中断类型码B:中断处理程序的入口地址C:中断处理程序D:断点地址17.8086CPU最多可定位()个不同的端口。A:1MB:1KC:64KD:32K可屏蔽中断是否被CPU响应受()的控制。A:TFB:IFC:IF和TFD:AF使用call和ret指令,我们可以实现汇编语言编程中的模块化设计。以下描述中错误的是()。A:可以用call和ret指令实现多个子程序。B:可以通过多个相互联系、功能独立的子程序来解决一个复杂的问题。C:对于通用的子程序,最好加上详细的注释。D:用汇编语言进行程序设计,子程序一定要用call和ret来实现。PC机的启动过程是()。、CPU加电,CS:IP指向FFFF:O。、进行操作系统引导。、执行JMP指令跳转到BIOS。、登记BIOS中断例程入口地址。、硬件检测。A:①②③④⑤B:①③⑤④②C:①③④⑤②D:①⑤③④②二、单选题(每题2分,共40分)下列关于汇编语言源程序的说法,错误的是()A:一个汇编语言源程序从写出到执行需经过:编写.asm文件一将.asm文件编译为.obj文件一将.obj文件连接成.exe文件f.exe文件执行。B:在汇编语言源程序中,包含三种指令:汇编指令、伪指令、其他符号。C:在汇编语言源程序中,不由编译器执行的伪指令有对应的机器指令。D:在汇编语言源程序中,汇编指令是有对应机器码的指令,其所对应的机器指令由CPU执行。关于8086CPU,下列说法错误的是()。A:8086CPU是16位结构的CPU,其能够一次性处理、传输、暂时存储的信息的最大长度是16bit。B:8086CPU采用“段地址X16+偏移地址=物理地址”的方式生成存储单元的地址。C:执行push指令和pop指令时,8086CPU从SP中得到栈顶的地址。D:对于8086CPU,在编程时,可以将长度为1KB的一组地址连续,起始地址为32的倍数的内存单元当成栈空间来使用。有以下几条指令(debug下的指令格式):movax,1000movss,axmovsp,0100movax,5CCApushax指令“pushax”执行后,sp的值和修改的内存单元的地址是()。A:0100H,1000:0100B:00feH,1000:00feC:0100,1000:0100D:98,1000:98给定段地址:101H,仅通过变化偏移地址寻址,8086CPU可以寻址到地址为()的内存单元。A:0B:12000HC:1000HD:10FFHmovax,4c00hInt21h

CPU执行完这两条指令后,()。A:返回到DOSB:返回到DEBUGC:返回到COMMONDD:前三个选项都不对6.7.以下程序计算28,选一个数据补全程序。()6.7.assumecs:codecodesegmentstart:movax,2movcx, s:addax,axloopsmovax,4c00hint21hcodeendsendstartA:8B:7C:4D:128如下程序执行后,AX=()。assumecs:codecodesegmentstart:movax,2movbx,2movcx,0s:addax,bxloopsmovax,4c00hint21hcodeendsendstartA:2B:4C:0FFFEHD:0FFFCH以下寻址方式中,属于相对基址变址寻址的是()A:[bx+si+idata]B:[bx+di]C:[bp+si]D:[bx]执行下面的指令后,正确的结果是()。moval,198andal,01010011Boral,01010101BA:al=57B:al=57HC:al=42D:al=42H需要使用DS的指令是()。A:movax,[bp]B:incwordptr[bx]C:addal,clD:and[bp],al对于8086CPU,错误的指令是()。A:mulclB:anddh,dlC:push45[di]D:dec[bx]关于int16h中断例程,下列说法正确的是()A:在int16h中断例程中,一定有设置IF=1的指令。B:DOS提供了int16h中断例程。C:int16h中断例程可从键盘缓冲区中读出数据。D:用int16h中断例程的0号功能可读取到扫描码。13.关于mul指令和div指令,下列说法正确的是()。A:“muldl”的另一个乘数在al中存放,运算结果存放在dx中。B:mul指令不会影响标志位。C:“divdl”的被除数存放在ax中,商存放在al中,余数存放在dl中。D:执行div指令可能会引发中断。不会影响标志位的指令是()。A:jmplable1B:cmpax,bxC:int9hD:incax关于PC机键盘的处理过程,正确的说法是()。A:接口芯片上的接收扫描码的寄存器的端口地址为80H。B:扫描码的长度为一个字。C:按下一个键产生的扫描码为通码,松开一个键产生的扫描码为断码D:断码=通码+60H。16.datasegmentdd1234hdataendsdata段中的数据1234h在内存中的存储情况为()。A:12340000B:34120000C:00001234D:0000341217.从CMOSRAM中读取7号单元的内容,正确的指令是()。A:moval,7out70H,alinal,71HB:inal,7C:movdx,7inal,dxD:out71H,7inal,70H18.用Debug查看内存,情况如下:0000:0000601000F008007000—0800700008007000单步中断的中断处理程序的入口地址为:()。A:CS=F000,IP=1060B:CS=1060,IP=F000C:CS=0070,IP=0008D:CS=0008,IP=0070下列关于CPU响应中断的说法,错误的是()。A:CPU在执行完一条指令后,将检测IF,判断是否响应单步中断。B:CPU在执行完当前指令后,就算是有中断信息,也不一定会响应。C:可屏蔽中断信息来自于CPU外部。可屏蔽中断的中断类型码通过数据总线送入CPU,而内中断的中断类型码在CPU内部产生。D:8086CPU响应不可屏蔽中断时不需要取中断类型码。关于直接定址表,错误的说法是()。A:直接定址表是用来标记数据地址的。B:直接定址表是一种有效合理地组织数据的技术。C:使用直接定址表,可以使程序的结构更加清晰。D:直接定址表可以存储在代码段中。三、多选题(每题3分,共18分)下列说法正确的是:()。A:可以将标号当做数据来使用,标号所表示的地址可以是一个数据。B:应用assume将所用的数据标号所在的段和一个段寄存器联系起来。C:后面加“:”的地址标号,只能在代码段中使用。D:用assume将标号所在的段和一个段寄存器联系起来之后,段寄存器中就会存放这个段的段地址可以作为指令的访问对象写在指令中的是( )。A:内存单元B:端口C:ASCII码字符D:硬盘上的扇区以数据的源地址、目的地址和所传送的数据来看,哪些程序段可以说是“等效的”?()。cldrepmovsbs:moval,[si]moves:[di],alincsiincdiloopss:C:stdrepmovsbs: moval,es:[di]mov[si],aldecsidecdiloops正确的说法是():A:对栈的操作不能越界,所以SP=0FFFFH时,不能执行POP指令。B:把10000H~10001FH的16个字的数据,正序或逆序存储到20000H~20001FH处,都至少可以采用三种方式:仅用PUSH进行数据的传送、仅用POP进行数据的传送、仅用MOV进行数据的传送。C:使用PUSH、POP、MOV,要使指令可以正确地操作,应至少注意数据的源地址、目的地址、操作长度等三个因素。D:通过栈指令将内存10000H到10001FH单元存储的16个字数据依次逆序,即10000H保存原来1001eH的内容,10002H保存原来1001cH的内容,…,10001eH保存原来10000H的内容,一定要借助寄存器或其它的内存单元。5.对于BIOS和DOS,错误的说法是:( )。A:cpu—加电从O:FFFF处开始执行,此处有一条跳转指令,cpu由之转去执行BIOS的硬件系统检测程序。B:在调用int19h时,BIOS提供的中断例程的入口地址已登记在中断向量表中。C:BIOS将调用int19h进行操作系统的引导。D:command启动后,将开始建立用户工作环境,此时DOS将它所提供的中断例程装入内存,并建立相应的中断向量。下列指令可读取或引发相应程序读取键盘输入信息的是()。A:inal,60hB:int9hC:int16hD:sti四、程序设计(每题3分,共6分)1.assumecs:codedatasegmentdb"WelcomeToAssembly.",0dataendscodesegmentstart:movax,datamovds,axmovsi,0movbx,0callcountmovax,4c00hint21hcount:movcl,[si]movch,0jcxzokcmpbyteptr[si],'a'jbs0cmpbyteptr[si],'z'jas0incbxs0:incsiloopCountok:retcodeendsendstart上面的程序执行时,count返回前,bx中的值为()。A:3B:0EHC:0011HD:0014H2.子程序func实现c=a*2Ab,a和b的取值范围都是[0,10],依次存储在一个栈单元的高位与低位字节中,返回值c存储在ax寄存器中。如果a、b取值超界,ax中的返回值为Offffh。补全这个子程序。()func:pushbpmovbp,spaddbp,4pushcxmovax,0ffffhcmpbyteptr[bp].1,10jasretcmpbyteptr[bp],10jasretmov ,0mov ,[bp].1mov ,0mov ,[bp]s:shlax,1loopssret:popcxpopbpretA:ch、cl、ah、al、jcxzsretB:cl、ch、al、ah、jesretC:ah、al、ch、cl、jcxzsretD:ax、al、cx、cl、addax,axE:前几个选项都不对五、程序研究(每题5分,共10分)1.以下程序要实现:按下数字键后,提示“Youenteredanumber”,按其它键正常显示。对于这个程序,正确的观点是()。assumecs:codestacksegmentdb128dup(0)stackendscodesegmentstart:movax,stackmovss,axmovsp,128pushcspopdsmovax,0moves,axmovsi,offsetint9movdi,204hmovcx,offsetint9end-offsetint9cldrepmovsbmovwordptres:[9*4],204hmovwordptres:[9*4+2],0pushes:[9*4]popes:[200h]pushes:[9*4+2]popes:[202h]movax,4c00hint21hint9:jmpshortint9startdb"Youenteredanumber."int9start:pushaxpushbxpushcxpushesinal,60hcmpal,2jbint9retcmpal,0bhjaint9retmovax,csmovds,axmovsi,206hmovax,0b800hmoves,axmovdi,12*160+36*2movcx,21s:moval,[si]moves:[di],alincsiadddi,2loopsint9ret:popespopcxpopbxpopaxiretint9end:nopcodeendsendstartA:此程序对其所提供的9号中断例程的中断向量的设置不正确,应将“movwordptres:[9*4],204h”改为“movwordptres:[9*4],offsetint9”,将“movwordptres:[9*4+2],0”改为“movwordptres:[9*4+2],segint9”。B:以此程序想要实现的目标看,此程序有两处错误:①新的中断例程未调用原来的9号中断例程;②安装新的中断例程的程序在设置中断向量表的相应表项之前,未保存原9号中断例程的入口地址。C:此程序所提供的中断例程中,显示“Youenteredanumber.”的程序段对此字符串的地址的设置有误。应用“movsi,offsetint9+2”(“jmpshortint9start”的机器码长度为2byte)对此字符串的偏移地址进行设置。D:此程序存在一个潜在问题,这个问题是:若在执行“movwordptres:[9*4],204h”和“movwordptres:[9*4+2],0”之间发生键盘中断,将转去一个错误的地址执行。要消除这个问题,应在“movwordptres:[9*4],204h”前设置IF=0,在“movwordptres:[9*4+2],0”后设置IF=1。E:前几个选项都不对。以下子程序统计一个段中,偏移地址al到偏移地址a2的所有字节单元中,值为零的单元的个数n,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论