汇编语言设计复习题_第1页
汇编语言设计复习题_第2页
汇编语言设计复习题_第3页
汇编语言设计复习题_第4页
汇编语言设计复习题_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、一、选择题1 .应用程序具有3个基本段,可执行指令应该保存于( A )。A)代码段B)数据段C)堆栈段D)附加段2 . 8位补码F3H要扩展成16位补码应该是( D ),这样其真值才不变。A)F0F3HB)00F3H C) 10F3HD) FFF3H3 .“ mov ebx+8,eax指令的目的操作数采用( C )寻址方式。A)存储器间接 B)寄存器 C)寄存器相对D)立即数4 .执行“sar ebx,1指令'后,ebx最高D31位一定等于( D )A) 0 B) 1 C) D0 位 D) D30 位5 .在代码段内的-128127个字节前后范围的跳转,可以用( C )类型名表示。A)

2、 WORD B) DWORD C) SHORT D) FAR6 .在Windows控制台环境,在当前光标显示信息应该使用( B )函数(功能)。A) ReadConsoleB) WriteConsoleC) MessageBoxD) GetStdHandle7 .汇编语言源程序经汇编后不能直接生成( C )A) OBJ文件 B) LST文件 C) EXE文件 D) CRF文件8 .在ADD指令中,两个操作数的物理位置不可以安排在( A )中。A)两个主存储单元B) 一个主存储单元和一个数据寄存器C)两个数据寄存器D) 一个堆栈单元和一个数据寄存器9 .假定ax=6987h ,执行指令 cmp

3、ax , 0eb30h后,则标志位 CF和OF的状态(A)0, 0 B) 0 , 1 C) 1,0D) 1,1的物理10 .假定 esp=00120100h , eax=1f6c2107h ,执行指令 push ax 后,存放数据 07h 地址是(C )。A) 00120104h B) 00120101h C) 001200fch D) 001200ffh11 .下列对标志寄存器中标志位产生影响的指令是( B )A) jmp doneB) shl eax, 2C) call subpD) not eax12 .假设 CL=98H,执行 “ MOVSX DX, C巾:DX= ( D )A) F0

4、98H B) 0098H C) 1098HD) FF98H13 .“ mov 80hesi, eax指令的目”的操作数采用( C )寻址方式。A)存储器间接 B)寄存器 C)寄存器相对D)变址寻址14 .要在程序中定义缓冲区 BUF,保留9个字节存储空间的语句是( C )。A) BUF DW 9B) BUF DB 9C) BUF DB 9 DUP (?) D) BUF DW 9 DUP (?)15 .下列指令执行后总是使 CF=0, OF=0的是(A )。A) AND B) NEG C) MOV D) INC16 .下面指令的表示中,错误的操作是( C )A) mov eax, ebx+esi

5、 B) jmp near ptr don1C) dec ebxD) mul cx17 .测试BL寄存器内容是否与数据 4FH相等,若相等则转 NEXT处执行,可实现的方法是 (A )A) xor bl , 4fhB) test bl , 4fhjz nextC) and bl , 4fhjz nextjz nextD) or bl , 4fhjz next18 .下列寄存器组中在段内寻址时不可以提供偏移地址的寄存器组是(C )A) ECX,EBXB) EDI,EBPC) EIP,EAXD) EDX,ESI19 .若要使寄存器 AL中的高4位不变,低4位为0,所用指令为( B )A) AND A

6、L,0FHB) AND AL,0F0HC) OR AL,0FHD) OR AL,0F0H20 .将汇编语言源程序文件翻译成目标代码文件的过程,称为(A )A)汇编 B)编辑 C)连接 D)调试21 . ADD求和指令的结果最高位为A) 0 B) 1 C)任意 D)不影响22 .子程序最后,通常需要执行的返回指令是( D )A) LOOP B) JZ C) CALL D) RET23 . " mov eax, ebx esi指令的源操作数采用( A )寻址方式。A)基址变址B)寄存器 C)寄存器相对D)存储器间接24 .若 CL= 4 , AX=0FF0FH ,执行语句 “ ROLAX

7、, CL”后,AX= ( C )A)0FFFFH B) 0FFF0HC)0F0FFHD)0FFFH25 . JMP WORD PTREBX转移的目标地址是 (D )A) EBX中的内容 B) ESP+EBX的和C) EIP+EBX之和 D) EBX指示的内存单元的内容二、填空题1. IA-32处理器有三种操作模式分别是:保护模式、实地址模式、系统管理模式。2. 在实地址工作方式下,逻辑地址“ 1460H: 100H表示的物理地址是 14700H。3. “cmp ebx, 98旨令之后是“ jz again指令;发生控制转移的条件是EBX=98 ,此时 ZF=1。4. 伪指令“xyz dword

8、 67762000h定义的变量保存于IA-32的存储器中,则从低地址到高地 址每个字节依次是 00 、20 、76和 67。5. mov ax, 1234h;xor ax, 00ffh;上述两条指令执行后: ax= 12cbh , CF=OF=0 , SF=0 , ZF=0 , PF=0 .6. 利用堆栈传递子程序参数的方法是固定的,例如:寻找堆栈段数据的寄存器 是 EBP7. JMP指令根据目标地址的转移范围和寻址方式,可以分为四种类型:段内转移、相对转 及 段内转移、间接转移以及段间转移、直接转移、段内转移、间接转移 。8. IA-32处理器工作在保护方式时,可以使用壬屉和 段式 存储模型

9、。9.数据段有语句 “ VAR DWORD 99008843H,'代码段指令 " MOV CX, WORD PTR VAR执行 后,CX= 8843H。10.数据段有语句 “ABC BYTE 1,2,3,代码段指令 "MOV CL, ABC+2执行后,CL= 311 .已知 ESI=04000H , EBX=10H ,指令 “MOV EAX, ESI+EBX*2+8中访问的有效地址 是 04028H。12 .假设在平展存储模型下,EBX= 1256H ,双字变量TABLE的偏移地址是40100H ,线性地址41356H处存放40107H,执行指令 "JMP

10、 EBX后EIP=1256H,执行指令 "JMPTABLEEBX后 EIP=40107H13 .已知数据段定义如下:.dataorg 2000hvard dword 1234hvarw word 3*20msgbyte?hello!?,?0?n1 equ $-msgcountequ5buf word count dup(5,3 dup(1,2),0)array dword varw问题:(1)执行 MOV EBX , OFFSET VARD 后,EBX= 2000H(2)执行 MOV ECX , TYPE BUF 后,ECX= 2MOV EDX , SIZEOF VARD 后,EDX

11、= 4(3)经汇编后,BUF占有的存储空间是一80 字节(4)经汇编后,$=200DH, N1=_7Array =2004H14 .执行“SHR EBX, 4旨令后,JNC发生转移,则说明 EBX的D3= 015 .子程序的参数传递主要有三种,它们是寄存器传递共享变量传递、堆栈传递三、程序阅读题1 .填写下面指令的执行结果。mov eax,3721hadd eax,9 ; EAX =372A Hmov ebx,50hsub ebx,8 ; EBX = 48 Hmov edi,9ehxor edi,7fh ; EDI = E1 H2 .填写下面指令执行的结果。movsx bx, almovsx

12、ebx, almov cx, 1000h movsx edx, cxmov al, 82h;BX =FF82h;EBX=FFFFFF82h;;EDX=00001000h3 .填写下面指令执行的结果。mov ax, 20000mov bl,10div bl;以上代码是否产生溢出是4 .数据段有如下定义,IA-32处理器将以小端方式保存在主存:var dword 12345678h现以字节为单位按地址从低到高的顺序,写出这个变量内容。并说明如下指令的执行结果:mov eax,var ; EAX = 12345678hmov cx,word ptr var+2 ; CX = 1234hmov dh,

13、byte ptr var+3 ; DH = 12h5 .填写下面指令的执行结果。mov eax, 3721hadd eax, 9; EAX =372A Hmov ebx, 50hsub ebx, 8; EBX =48 Hmov esi, 9ehand esi, 80h; ESI =80 H6 .填写下面指令执行的结果。 .dataarray dword 616h,727h,838h;假设该变量的存储器地址是40100H.codemov esi,array+4 ;ESI =727Hmov edi,offset array ;EDI =40100Hmov edx,edi ;EDX =616Hpus

14、h array+8;array+8 =838Hpop ecx ;ECX=838H7 .分析下面程序段:mov eax, 2000hmov ebx, 5000h mov ebx+100h, 60hadd eax, ebx+100hlea esi, ebx+100hmov ebx, eax程序段执行后, ESI= 5100 H, EBX= 2060 H8 .填写下面指令的执行结果。mov eax,3721hadd eax,9 ; EAX = 372A Hmov ebx,50hsub ebx,8 ; EBX = 48 Hmov esi,9ehand esi,80h ; ESI =80 H9 .填写下

15、面指令执行的结果。mov eax,0ffhmov ebx,1000hcall sub1inc eaxdec ebx;子程序sub1 procadd eax, ebxxchg eax, ebxretsub1 endp程序段执行后,EAX= 1001 H, EBX=10FE H。四、语句填空题1 .在下面程序段实现下述功能:求:z=|x-y| ,设x, y, z分别为双字数据的无符号变量名称。moveax, xcmpeax, yjb belowsub eax , ymov z, eaxbelow: mov eax, ysub eax , xdone: mov z , eax2 .下列程序段将 EA

16、X中值乘以9,请将程序填写完整。pusheaxshleax,3popebxaddeax, ebx3 .以下程序段用于计算符号函数。的取值范围为32位的有符号数,试填写方框中的指令。moveax, xcmpeax, 0jzzerojsnegamoveax, 1jmpokzero :xoreax, eaxjmpoknega :moveax, Offffffffhok:movy, eax4 .下列程序段求数组 ARRAY的累加和。请将程序填写完整。array word 45h , 68h ,0abc,1h9600h ;mov mov xoragain : add addloopesi, offset

17、 arrayecx, lengthof arrayeax, eaxeax, esiesi, 2again5.已知从BUF单元起存有若干带符号数,将其中的正数找出并存入 MINUS单元,把下列程序填充完整。PLUS单元,负数存入.databuf dword 12,-2, 555, 1000, -80, -2000, 6, 99, -111, -235cn equ $-bufplus dword cn dup(?)minus dword cn dup(?).codestart:mov esi, 0mov edi , offset plusmov ebx , offset minusmov ecx,

18、 cnnext:mov eax, bufesi*(type buf)inc esitest eax , 800000000hjnz ppmov edi , eaxadd edi, 4jmp Ippp:mov ebx , eaxadd ebx, 4Ip:loop next6.以下程序段用于计算符号函数。的取值范围为32位的有符号数,试填写方框中的指令。moveax, xcmp eax, 0jzzerojs negamov eax, 1jmpokzero:xor eax, eaxjmpoknega :mov eax, 0fffffhok:mov y, eax五、编制程序题1. 求的绝对值,结果存入result单元中。.dataX dword 100丫 dword 200result dword ?.codestart: mov

温馨提示

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

评论

0/150

提交评论