汇编语言典型例题.docx

上传人:b****0 文档编号:290363 上传时间:2022-10-08 格式:DOCX 页数:12 大小:17.45KB
下载 相关 举报
汇编语言典型例题.docx_第1页
第1页 / 共12页
汇编语言典型例题.docx_第2页
第2页 / 共12页
汇编语言典型例题.docx_第3页
第3页 / 共12页
汇编语言典型例题.docx_第4页
第4页 / 共12页
汇编语言典型例题.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

汇编语言典型例题.docx

《汇编语言典型例题.docx》由会员分享,可在线阅读,更多相关《汇编语言典型例题.docx(12页珍藏版)》请在冰豆网上搜索。

汇编语言典型例题.docx

汇编语言典型例题

典型例题(与考试题型,考试范围相近)

1.应用程序具有3个基本段,可执行指令应该保存于(A)。

A)代码段B)数据段C)堆栈段D)附加段

2.8位补码F3H要扩展成16位补码应该是(D),这样其真值才不变。

A)F0F3HB)00F3HC)10F3HD)FFF3H

3.“mov[ebx+8],eax”指令的目的操作数采用(C)寻址方式。

A)存储器间接B)寄存器C)寄存器相对D)立即数

4.执行“sarebx,1”指令后,ebx最高D31位一定等于(D)

A)0B)1C)D0位D)D30位

5.在代码段内的-128~127个字节前后范围的跳转,可以用(C)类型名表示。

A)WORDB)DWORDC)SHORTD)FAR

6.在Windows控制台环境,在当前光标显示信息应该使用(B)函数(功能)。

A)ReadConsoleB)WriteConsole

C)MessageBoxD)GetStdHandle

7.汇编语言源程序经汇编后不能直接生成(C)

A)OBJ文件B)LST文件C)EXE文件D)CRF文件

8.在ADD指令中,两个操作数的物理位置不可以安排在(A)中。

A)两个主存储单元

B)一个主存储单元和一个数据寄存器

C)两个数据寄存器

D)一个堆栈单元和一个数据寄存器

9.假定ax=6987h,执行指令cmpax,0eb30h后,则标志位CF和OF的状态(C)。

A)0,0B)0,1C)1,0D)1,1

10.假定esp=00120100h,eax=1f6c2107h,执行指令pushax后,存放数据07h的物理地址是(C)。

A)00120104hB)00120101hC)001200fchD)001200ffh

11.下列对标志寄存器中标志位产生影响的指令是(B)

A)jmpdoneB)shleax,2

C)callsubpD)noteax

12.假设CL=98H,执行“MOVSXDX,CL”后,DX=(D)

A)F098HB)0098HC)1098HD)FF98H

13.“mov80h[esi],eax”指令的目的操作数采用(C)寻址方式。

A)存储器间接B)寄存器C)寄存器相对D)变址寻址

14.执行“sarebx,1”指令后,ebx最高D31位一定等于(D)

A)0B)1C)D0位D)D30位

15.下列指令执行后总是使CF=0,OF=0的是(A)。

A)ANDB)NEGC)MOVD)INC

16.下面指令的表示中,错误的操作是(C)

A)moveax,[ebx+esi]B)jmpnearptrdon1

C)dec[ebx]D)mulcx

17.汇编语言源程序经汇编后不能直接生成(C)

A)OBJ文件B)LST文件C)EXE文件D)CRF文件

18.测试BL寄存器内容是否与数据4FH相等,若相等则转NEXT处执行,可实现的方法是(A)

 A)xorbl,4fhB)testbl,4fh

   jznextjznext 

 C)andbl,4fhD)orbl,4fh

   jznextjznext

19.假定ax=6987h,执行指令cmpax,0eb30h后,则标志位CF和OF的状态(C)。

A)0,0B)0,1C)1,0D)1,1

20.假定esp=00120100h,eax=12345678h,执行指令pusheax后,存放数据78h的物理地址是(C)。

A)00120104hB)00120101hC)001200fchD)001200ffh

21.下列寄存器组中在段内寻址时不可以提供偏移地址的寄存器组是(C)

A)ECX,EBXB)EDI,EBP

C)EIP,EAXD)EDX,ESI

22.若要使寄存器AL中的高4位不变,低4位为0,所用指令为(B)

A)ANDAL,0FHB)ANDAL,0F0H

C)ORAL,0FHD)ORAL,0F0H

23.将汇编语言源程序文件翻译成目标代码文件的过程,称为(A)

A)汇编B)编辑C)连接D)调试

24.ADD求和指令的结果最高位为1,则SF=(B)

A)0B)1C)任意D)不影响

25.子程序最后,通常需要执行的返回指令是(D)

A)LOOPB)JZC)CALLD)RET

26.在Windows控制台环境,在当前光标显示信息应该使用(B)函数(功能)。

A)ReadConsoleB)WriteConsole

C)MessageBoxD)GetStdHandle

27.下列对标志寄存器中标志位产生影响的指令是(B)

A)JMPDONB)SHLEAX,1

C)CALLDOND)NOTAX

28.“moveax,[ebx][esi]”指令的源操作数采用(A)寻址方式。

A)基址变址B)寄存器C)寄存器相对D)存储器间接

29.若CL=4,AX=0FF0FH,执行语句“ROLAX,CL”后,AX=(C)

A)0FFFFHB)0FFF0HC)0F0FFHD)0FFFH

30.JMPWORDPTR[EBX]转移的目标地址是(D)

A)EBX中的内容B)ESP+EBX的和

C)EIP+[EBX]之和D)EBX指示的内存单元的内容

填空题

1.IA-32处理器有三种操作模式分别是:

保护模式、实地址模式、系统管理模式。

2.在实地址工作方式下,逻辑地址“1460H:

100H”表示的物理地址是14700H。

3.“cmpebx,98”指令之后是“jzagain”指令,发生控制转移的条件是EBX=98,此时ZF=1。

4.伪指令“xyzdword67762000h”定义的变量保存于IA-32的存储器中,则从低地址到高地址每个字节依次是00、20、76和67。

5.movax,1234h;

xorax,00ffh;

上述两条指令执行后:

ax=12cbh,CF=OF=0,SF=0,ZF=0,PF=0.

6.利用堆栈传递子程序参数的方法是固定的,例如:

寻找堆栈段数据的寄存器是EBP

7.JMP指令根据目标地址的转移范围和寻址方式,可以分为四种类型:

段内转移、相对转移、段内转移、间接转移以及段间转移、直接转移、段内转移、间接转移。

 

8.IA-32处理器工作在保护方式时,可以使用平展和段式存储模型。

 

9.数据段有语句“VARDWORD99008843H”,代码段指令“MOVCX,WORDPTRVAR”执行后,CX=8843H。

10.数据段有语句“ABCBYTE1,2,3”,代码段指令“MOVCL,ABC+2”执行后,CL=3。

11.已知ESI=04000H,EBX=10H,指令“MOVEAX,[ESI+EBX*2+8]中访问的有效地址是04028H。

12.假设在平展存储模型下,EBX=1256H,双字变量TABLE的偏移地址是40100H,线性地址41356H处存放40107H,执行指令“JMPEBX”后EIP=1256H,执行指令“JMPTABLE[EBX]”后EIP=40107H

13.已知数据段定义如下:

.data

org2000h

varddword1234h

varwword3*20

msgbyte’hello!

’,’0’

n1equ$-msg

countequ5

bufwordcountdup(5,3dup(1,2),0)

arraydwordvarw

问题:

(1)执行MOVEBX,OFFSETVARD后,EBX=2000H

(2)执行MOVECX,TYPEBUF后,ECX=2

MOVEDX,SIZEOFVARD后,EDX=4

(3)经汇编后,BUF占有的存储空间是80字节

(4)经汇编后,$=200DH,N1=7

Array=2004H

14.执行“SHREBX,4”指令后,JNC发生转移,则说明EBX的D3=

0

15.子程序的参数传递主要有三种,它们是寄存器传递、

共享变量传递、堆栈传递

 

三、程序阅读题

1.填写下面指令的执行结果。

moveax,3721h

addeax,9;EAX=372AH

movebx,50h

subebx,8;EBX=48H

movedi,9eh

xoredi,7fh;EDI=E1H

2.填写下面指令执行的结果。

moval,82h;

movsxbx,al;BX=FF82h

movsxebx,al;EBX=FFFFFF82h

movcx,1000h;

movsxedx,cx;EDX=00001000h

3.填写下面指令执行的结果。

movax,20000

movbl,10

divbl

;以上代码是否产生溢出是

4.数据段有如下定义,IA-32处理器将以小端方式保存在主存:

vardword12345678h

现以字节为单位按地址从低到高的顺序,写出这个变量内容。

并说明如下指令的执行结果:

moveax,var;EAX=12345678h

movcx,wordptrvar+2;CX=1234h

movdh,byteptrvar+3;DH=12h

 

5.填写下面指令的执行结果。

moveax,3721h

addeax,9;EAX=372AH

movebx,50h

subebx,8;EBX=48H

movesi,9eh

andesi,80h;ESI=80H

6.填写下面指令执行的结果。

.data

arraydword616h,727h,838h;假设该变量的存储器地址是40100H

.code

movesi,array+4;ESI=727H

movedi,offsetarray;EDI=40100H

movedx,[edi];EDX=616H

pusharray+8;array+8=838H

popecx;ECX=838H

7.分析下面程序段:

moveax,2000h

movebx,5000h

mov[ebx+100h],60h

addeax,[ebx+100h]

leaesi,[ebx+100h]

movebx,eax

程序段执行后,ESI=5100H,EBX=2060H

8.填写下面指令的执行结果。

moveax,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1