汇编总复习.docx
- 文档编号:9015206
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:20
- 大小:25.66KB
汇编总复习.docx
《汇编总复习.docx》由会员分享,可在线阅读,更多相关《汇编总复习.docx(20页珍藏版)》请在冰豆网上搜索。
汇编总复习
汇编总复习
一、选择题
1.计算机中为便于存储及计算机的物理实现,采用(A)
A.二进制数B.十进制数C.八进制数D.十六进制数
2.为了区别不同数制的数,通常用字母(A)表示二进制数
A.BB.EC.FD.S
3.下列语句中能实现留空8个字节单元的语句是(D)
A.DA1DT?
B.DA2DW?
,?
C.DA3DD?
D.DA4DQ?
4.表示串操作方向的是(D)
A.AFB.IFC.CFD.DF
5.存储器分段时表示偏移地址是18位二进制代码,则一个段最多有(B)
A.128KBB.256KBC.512KBD.1MB
6.保存当前栈顶偏移地址的寄存器是(A)
A.SPB.BPC.IPD.SS
7.栈顶物理地址为24600H,执行完PUSHDX指令后,栈顶的物理地址为(D)
A.24602HB.24601HC.245FFHD.245FEH
8.MOVAX,[DI]使用(B)段寄存器
A.CSB.DSC.ESD.SS
9.不改变CF标志的指令有(B)
A.CLCB.INCC.MULD.STC
10.执行“INAL,DX”指令后,进入AL寄存器的数据来自(D)
A.寄存器B.存储器C.立即数D.外设端口
11.伪指令在程序(B)阶段被处理
A.编写B.汇编C.连接D.运行
12.指令MOVAX,[BP]采用的寻址方式是(B)
A.寄存器寻址B.间接寻址C.变址寻址D.直接寻址
13.使用DOS功能调用时,子程序的编号应放在寄存器中(A)
A.AHB.ALC.AXD.任意指定
14.取指令操作的默认地址是(A)
A.CS:
IPB.DS:
SIC.ES:
DID.SS:
SP
15.在非串操作指令中用BX或DI作为基址时默认段地址是(B)
A.CS,不可用段超越B.DS,可用段超越
C.ES,不可用段超越D.SS,可用段超越
16.DOS2号功能调用要输出的字符放在(D)寄存器中
A.AHB.ALC.DHD.DL
17.如果CX的值为0,则LOOP指令定义的循环执行(C)次
A.0B.1C.10000HD.无数
18.某存储单元的物理地址是28E6DH,可以作为它的段地址有(B)
A.28E6DH B.28E6H C.8E6DHD.28E60H
19.MOVAX,[DI]取得内存操作数由(D)执行
A.ALUB.EUC.地址加法器D.BIU
20.JMPNEARPTR[BX]使用(A)段寄存器
A.CS,DSB.DS,ESC.ES,SSD.DS,SS
21.从功能上看,不引起非顺序执行的指令有(D)
A.RETB.CALLC.INTD.SCASB
22.响铃符的ASCII编码为(D)
A.0DHB.0AHC.20HD.07H
23.操作系统1号功能调用输入的字符存放在(B)寄存器中
A.AHB.ALC.DHD.DL
24.汇编语言源程序中,每个语句由四项组成,如语句要完成一定功能,那么该语句中不可省略的项是(B)。
A.名字项B.操作码项C.操作数项D.注释项
25.编写分支程序,在进行条件判断前,可用指令构成条件,其中不能形成条件的指令有(D)。
A.CMPB.SUBC.ANDD.MOV
26.表示运算结果是否产生溢出的是(A)
A.OFB.SFC.ZFD.CF
27.椎栈段栈顶地址是(D)
A.CS:
IPB.DS:
SIC.ES:
DID.SS:
SP
28.下面指令执行后,改变AL寄存器内容的指令是(D)。
A.TESTAL,02HB.ORAL,ALC.CMPAL,BLD.ANDAL,BL
29.8086的汇编语言指令系统中的无条件转移指令可以使程序转移到(D)
A.距该指令偏移地址一个字节的地方
B.距该指令偏移地址一个字的地方
C.段外
D.以上说法均正确
30.在执行下列指令时,需要使用DS段寄存器的是()
A.NEG AX B.INC [BX] C.STOSW D.INC[BP]
31.MOV指令影响的标志位是(D)
A.SFB.DFC.CFD.不影响标志位
32.从功能上看,引起非顺序执行的指令有(B)
A.STDB.CALLC.ADDD.CBW
33.用MOV指令将十进制数89以非压缩BCD码格式存入AX,可使用的指令是(D)
A.MOVAX,89B.MOVAX,0809C.MOVAX,89HD.MOVAX,0809H
34.设DS=8225H,DI=3942H,指令NEGBYTEPTR[DI]操作数的物理地址是(A)
A.85B92HB.86192HC.BB690HD.12169H
35.下列寄存器组中在段内寻址时可以提供偏移地址的寄存器组是(B)
A.AX,BX,CX,DXB.BX,BP,SI,DI
C.SP,IP,BP,DXD.CS,DS,ES,SS
36.循环指令LOOPNZ终止循环的条件是(B )。
A.CX=0,且ZF=0B.CX=0,或ZF=1
C.CX≠0,且ZF=0D.CX≠0,或ZF=1
37.汇编语言语句格式中,对名字项的规定,请指出错误的解释(B)
A.名字的第一个字符只可以是大小写英文字母及?
、@、__等
B.名字的第一个字符可以是大小写英文字母、数字、?
、@、__等
C.名字的有效长度≤31个字符
D.名字从第二个字符起可以出现数字,但不允许出现$、#等字符
38.在汇编语言程序的开发过程中使用宏功能的顺序是(C)。
A.宏定义,宏调用B.宏定义,宏展开
C.宏定义,宏调用,宏展开D.宏定义,宏展开,宏调用
39.不能作为汇编语言中标号的有(C)
A._A_B.@6C.AAAD.?
DB?
40.可能改变标志寄存器的值的指令有(D)
A.LODSBB.LODSWC.POPD.POPF
41.在一段汇编程序中多次调用另一段程序,用宏指令比用子程序实现起来(B)
A.占内存空间小,但速度慢 B.占内存空间大,但速度快
C.占内存空间相同,速度快 D.占内存空间相同,速度慢
42.在程序执行过程中,IP寄存器中始终保存的是(B)
A.上一条指令的首地址 B.下一条指令的首地址
C.正在执行指令的首地址 D.需计算有效地址后才能确定地址
43.在下列指令中,(D)指令的执行会影响条件码中的CF位。
A.JMP NEXT B.JC NEXT C.INC BX D.SHL AX,1
44.条件转移指令JNE的测试条件为(A)
A.ZF=0 B.CF=0 C.ZF=1 D.CF=1
45.在非串操作指令中用BX或DI作为基址时默认段地址是(B)
A.CS,不可用段超越B.DS,可用段超越
C.ES,不可用段超越D.SS,可用段超越
46.已知BX=2000H,SI=1234H,则指令MOV AX,[BX+SI+2]的源操作在(A )中。
A.数据段中偏移量为3236H的字节 B.附加段中偏移量为3234H的字节
C.数据段中偏移量为3234H的字节 D.附加段中偏移量为3236H的字节
47.一个有128个字的数据区,它的起始地址为12ABH:
00ABH,请给出这个数据区最末一个字单元的物理地址是( C )
A.12CSBH B.12B6BH C.12C59H D.12BFEH
48.指令JMP FAR PTR DONE属于(C)
A.段内转移直接寻址 B.段内转移间接寻址
C.段间转移直接寻址 D.段间转移间接寻址
49.设字长N=16,有符号数7AE9H的补码表示为(D)
A.9EA7HB.76C4HC.8417HD.7AE9H
50.比较有符号数3260H与0B425H的大小关系为(C)
A.相等B.小于C.大于D.不能比较
51.指令JMPWORDPTR[BX][DI]中转移的目标地址为(A)
A.16dx(DS)+(BX)+(DI)B.16dx(ES)+(BX)+(DI)
C.16dx(SS)+(BX)+(DI)D.16dx(CS)+(BX)+(DI)
52.在指令MOVAX,[1000H]中,源操作数的寻址方式为(B)
A.立即寻址B.直接寻址C.段内间接寻址D.寄存器寻址
53.中断矢量表中存放的是(D)
A.中断类型号B.断点地址C.中断服务程序D.中断服务程序入口地址
54.8086的汇编语言指令系统中的条件转移指令可以使程序转移到(B)
A.段内的任何地方B.距该指令偏移地址为-128~+127的地方
C.距该指令偏移地址为-32768~+32767的地方D.段外
55.能定义ASCII码字符串的数据定义语句有(D)
A.DB,DW,DD,DQ,DTB.DB,DW,DDC.DB,DWD.DB
56.若(AL)=87H,执行ADDAL,0F5H后,S,Z,C,O,P的状态为(A)
A.SF=0,ZF=0,CF=1,OF=1,PF=0B.SF=1,ZF=0,CF=1,OF=0,PF=1
C.SF=0,ZF=0,CF=0,OF=1,PF=0D.SF=1,ZF=0,CF=1,OF=1,PF=1
57.比较指令CMP(D)
A.专用于有符号数比较B.专用于无符号数比较
C.专用于串比较D.不区分比较的对象是有符号数还是无符号数
58.数据传送指令对标志位的影响为(B)
A.都不影响B.除了SAHF,POPF和控制标志位其它均不影响
C.都影响D.不确定
59.CPU发出的访问存储器的地址是(A)
A.物理地址B.偏移地址C.逻辑地址D.段地址
60.将高级语言的程序翻译成机器码程序的实用程序是(B)
A.编译程序B.汇编程序C.解释程序D.目标程序
61.DECBYTEPTR[BX]指令中的操作数的数据类型是(C)
A.字B.双字C.字节D.四字
62.在下列语句中,BUFFER称为(B)
BUFFERDB01H,0AH
A.符号B.变量C.助记符D.标号
63.串操作指令中,目的串操作数的段地址一定在(D)寄存器中。
A.CSB.SSC.DSD.ES
64.使计算机执行某种操作的命令是(D)
A.伪指令B.指令C.标号D.助记符
65.将数据5618H存放在存储单元中的伪指令是(B)
A.DATA1DW1856HB.DATA1DB18H,56H
C.DATA1EQU5618HD.DATA1DB18H,00H,56H,00H
66.若AX=3500H,CX=56B8H,当ANDAX,CX指令执行后,AX=(A)
A.1400HB.77F8HC.0000HD.0FFFFH
67.用指令的助记符、符号地址、标号和伪指令、宏指令以及规定的格式书写程序的语
言称为(A)
A.汇编语言B.高级语言C.机器语言D.低级语言
二、填空题
68.二进制数101101转换为十六制数是2D,二进制数1111111转换为十进制数是127。
69.8086CPU内部共有14个16位的寄存器。
70.存储器某单元的地址表示为2314H:
4132H,则它的偏移地址4132H,物理地址
27272H。
71.从微处理器的角度来看,计算机结构可分为CPU、内存和I/O子系统三个主要部分。
72.在实模式下,地址3017H:
000AH存储单元的物理地址是3017A。
73.把地址为BX+SI的存储单元中的数据与AL中的数值相加,结果存入AL的指令为ADDAL,[BX][SI]。
74.指令“MOVDL,1000H[SI]”中源操作数的地址是SI+1000H。
75.执行“MULBL”之后,积存放在AX中。
76.若二进制值01000001表示无符号数,其值为__65__。
77.汇编语言程序的最后一条指令是___汇编结束伪指令___。
78.MOVAX,3*4中的乘法是在__汇编阶段__计算的。
79.可以修改其值的定义符号常量的伪指令是__等号__伪指令。
80.结束程序执行是操作系统进程终止功能调用,如__INT20H___。
81..STACK伪指令默认分配__1024__字节的栈空间。
82.在8086中,一个逻辑段最长为__64K_字节。
83.汇编语言源程序需经过(MASM)程序汇编,(LINK)程序连接才能生成可执行文件。
84.DB‘AB’定义了2个字节,在内存中的16进制代码按顺序为__41H、42H
85.8086的地址总线有20根,寻址范围为(1M)字节。
86.下一条将要执行的指令的偏移地址存放在寄存器(IP)中。
87.(AL)=BFH,要求屏蔽第0,1两位,则要执行指令(ANDAL,0FCH);如果要求第0,1位变反,可使用指令(XORAL,03H)
88.8086/8088存储器分四个段,这四个段的段名所对应的段寄存器分别是___DS_____、____CS____、___ES_____、____SS____。
89.在8086的输入/输出指令中,可寻址的I/O端口数为___65536________个,可直接由指令指定的I/O端口数为256个。
90.执行性语句包括标号、硬指令助记符、___操作数_______、注释四部分。
91.说明性语句包括名字、伪指令助记符、___参数_______、注释四部分。
92.宏定义是对宏指令进行定义的过程,由MASM宏汇编程序提供的一对伪指令MACRO和ENDM实现。
93.使用DOS系统功能调用时,使用的软中断指令是 INT21H。
三、简答题
1、什么是“小端方式”?
对字和双字存储单元,什么是对齐地址?
2、什么是汇编语言、汇编语言源程序和汇编程序。
3、汇编语言的开发过程,并说明每个阶段用什么程序实现及输出什么类型的文件。
4、说出指令TESTAX,0001H与ANDAX,0001H的区别
5、说出指令MOVBX,OFFSETARRAY与LEABX,ARRAY的区别。
6、说出指令CMPAX,BX与SUBAX,BX的区别。
7、试述指令指针寄存器IP的功能,并说明它是通用还是专用寄存器,能否直接赋值,哪些指令的执行会修改它的值。
8、试述子程序的参数传递有哪些方法,并简单比较。
9、什么是寻址方式,有几种分别是什么?
给出几种常见的存储器寻址方式。
四、程序分析题
1.设X、Y为WORD型变量。
理解以下程序,填写空白。
计算Y=|X|
①
TESTAX, ②
③
NEGAX
POS:
MOV④
1MOVAX,X;②8000H;③JNSPOS④Y,AX
2.下面程序段完成用单个字符输入的1号功能调用,从键盘输入10个字符,然后用2号功能调用以相反的顺序显示输出这10个字符。
请在空白处添上适当的指令(每一空白处只添一条指令)。
MOVCX,10
LOP1:
MOVAH,1
INT21H
①
LOOPLOP1
MOVCX,10
LOP2:
②
MOVAH,2
INT21H
LOOPLOP2
1PUSHAX②POPDX
3.下面程序段完成将以BUFF为首地址的内存区域全部存储0FFH数据。
请在空白处添上适当的指令(每一空白处只添一条指令)。
BUFFDB20HDUP(?
)
┋
MOVDI,OFFSETBUFF或LEADI,BUFF
MOVAX,0FFFFH
MOVCX,10H
CLD
REPSTOSW
4.有如下程序段:
STRINGDB‘ABCDEFGHIJ'
MOVAH,01;从键盘输入字符1~9
INT21H
ANDAL,0FH
DECAL
XORAH,AH
MOVBX,OFFSETSTRING
ADDBX,AX
MOVDL,[BX]
MOVAH,02H;显示输出
INT21H
(1)上述程序段的功能是什么?
根据从键盘输入的字符‘1’~‘9’,确定在显示器上显示STRING中第几个字符。
(2)如从键盘输入字符‘4',程序段有什么结果?
显示器显示字符‘D’
5.有如下程序段:
BX=4567H
NEG BX
INC BX
NEG BX
DEC BX
执行后,BX=4565H
CF=1
6.
7.有如下程序段:
CMPAL,‘A’
JCOTHER
CMPAL,‘Z’+1
JNCOTHER
JMPLETTER
┇
OTHER:
┇
LETTER:
┇
试分析下面程序段的功能是什么?
判断AL的内容,若为‘A’~‘Z’的大写字母时,程序转LETTER处理,否则转OTHER处理
8.设AX,BX中的数一个为正数,一个为负数,下面程序段完成将正数送到PLW单元中存放,请将程序中所缺指令语句补上。
TESTAX,8000H
JEK1或JZK1
MOVPLW,BX
JMPDONE
K1:
MOVPLW,AX
DONE:
9.现有下列数据段:
DATASEGMENT
STR1DB‘ABCDEFGHIJKL'
COUNTEQU$-STR1
BUFDBCOUNTDUP(0)
DATAENDS
下面程序段是实现把STR1中所有字符逆向传送到BUF缓冲区(即STR1中第一个字符送到BUF的最后一个单元,STR1中最后一字符送到BUF的第一个单元)。
试把程序中所空缺的指令填上。
MOVSI,OFFSETBUF-1
MOVDI,OFFSETBUF
MOVCX,COUNT
__CLD__
LOOP:
MOVSB
__SUBSI,2__
LOOPLOP
五、编程
1.定义一个数据区,它包含有23H,24H,25H和26H四个字符数据,把这个数据区复制20次,并显示出复制结果。
.modelsmall
.data
sourcedb23h,24h,25h,26h
targetdb80dup(?
)
.code
.startup
movax,ds
moves,ax
cld
movsi,offsetsource
movdi,offsettarget
movcx,80
repmovsb
movsi,0
movbx,offsettarget
again:
movdl,[bx+si]
movah,2
int21h
incsi
cmpsi,80
jbagain
.exit0
end
2.统计给定字符串“Helloeverybody”中包含空格的个数,假设该字符串以‘$’结束,并将统计结果送入字节单元BYF1。
.modelsmall
.data
stringdb'Helloeverybody!
','$'
BUF1db?
.code
.startup
xoral,al
movbx,offsetstring
again:
cmpbyteptr[bx],'$'
jzdone
cmpbyteptr[bx],''
jnznext
incal
next:
incbx
jmpagain
done:
movBUF1,al
.exit0
end
3.利用DOS系统功能调用,将键盘输入一个小写字母,转换成大写字母后输出显示,如果输入其它字符,能够有错误提示:
INPUTERROR!
。
.modelsmall
.stack(也可没有此语句)
.data
stringdb'INPUTERROR!
','$'
.code
.startup
movah,01h
int21h
cmpal,'a'
jbnext
cmpal,'z'
janext
subal,20h
movah,02h
movdl,al
int21h
jmpdone
next:
movdx,offsetstring
movah,09h
int21h
done:
.exit0
end
4.利用子程序调用,求出AX中“1”的个数,并将个数存放人DL单元。
.modelsmall
.stack
.code
.startup
movax,89h
callsum1
.exit0
sum1proc
pushax
pushcx
xordx,dx
movcx,16
again:
shlax,1
jncnext
incdl
next:
loopagain
popcx
popax
ret
sum1endp
end
5.编写一个完整程序,统计字变量AR1中包含0的个数。
如统计的个数为偶数(包含0),则将字节变量FLAG清0,否则,将该变量置1。
.modelsmall
.data
AR1dw56
FLAGdb0
.code
.startup
movax,AR1
movcx,16
xordl,dl
again:
shrax,1
jcnext
incdl
next:
loopagain
testdl,01
jzdone
movFLAG,1
done:
.exit0
end
6.从键盘输入一个字符串(要求输入时给出信息提示),把字符串中的所有小字字母改为大写字母后输出,字符串以‘$’结束。
.modelsmall
.data
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编 复习
![提示](https://static.bdocx.com/images/bang_tan.gif)