汇编语言练习题汇编.docx
《汇编语言练习题汇编.docx》由会员分享,可在线阅读,更多相关《汇编语言练习题汇编.docx(20页珍藏版)》请在冰豆网上搜索。
![汇编语言练习题汇编.docx](https://file1.bdocx.com/fileroot1/2023-2/4/8fbe26b7-9bc0-4288-863e-f0a149b04764/8fbe26b7-9bc0-4288-863e-f0a149b047641.gif)
汇编语言练习题汇编
一、单项选择题(共20题)
1.对于有符号的数来说,下列哪个值最大(D)
A:
0F8HB:
11010011BC:
82D:
123Q
2.下列有关汇编语言中标号的命名规则中,错误的是(D)
A:
通常由字母打头的字符、数字串组成B:
标号长度不能超过31个字符
C:
?
和$不能单独作为标号D:
.号不可位于标号首
3.设A=0.4H,B=0.8H,C=0.4,D=0.4Q,它们之间的关系是(C)。
A.C+D=BB.A+D=B
C.B=DD.A>C>D
4.下列四个寄存器中,可作为十六位寄存器的是(C)
A.DLB.CL
C.BPD.EBX
5.8088/8086存储器分段,每个段不超过(D)
A.64K个字B.32K个字节C.1兆个字节D.64K个字节
6.寻址指令MOVCX,[BX+DI+20]使用的是哪一种寻址方式(B)
A:
寄存器寻址B:
相对基址变址寻址
C:
变址寻址D:
基址变址寻址
7.连接程序把汇编语言源程序生成的目标文件(.OBJ文件)转换成(B)。
A..OBJ文件B..EXE文件
C..LST文件D..CRF文件
8.在程序运行过程中,确定下一条指令的物理地址的计算表达式是(A)。
A.(CS)×16+(IP)B.(DS)×16+(DI)
C.(SS)×16+(SP)D.(ES)×16+(SI)
9.若AX=-15要得到AX=15应执行的指令是(A)
A.NEGAXB.NOTAX
C.INCAXD.DECAX
10.8086/8088系统执行传送指令MOV时(A)
A.不影响标志位B.影响DF方向标志
C.影响SF符号标志D.影响CF进位标志
11.执行下列程序后,(AL)=(D)H。
DATASEGMENT
TABDB‘0123456789’
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVBX,OFFSETTAB
MOVAL,04
…
XLATTAB
A.04B.0400
C.33D.34
12.下列指令中操作数在代码段中的是(A)。
A.MOVAL,25HB.ADDAH,BL
C.INCBYTEPTR[25H]D.CMPBL,AL
13.若要求一个操作数中的若干位维持不变,若干位置“1”,可以使用(B)
A:
NOTB:
ORC:
ANDD:
XOR
14.下列指令中段默认为堆栈段的是(C)
A.MOVAX,[BX+SI+10]B.ADDAX,ES:
[SI]
C.SUB[BX],[BP][DI]D.MOVDX,[1000H]
15.设BL=05H,要使结果BL=0AH,应执行的指令是(C)。
A.NOTBLB.ANDBL
C.XORBL,0FHD.ORBL,0FH
16.表示一条指令的存储单元的符号地址称(A)。
A.标号B.变量
C.偏移量D.类型
17.关于8086/8088微机系列,下列说法哪个是正确的(D)
A:
一个存储单元由16个二进制位组成,简称字。
B:
当存储一个字数据时,低字节放高地址位,高字节放低地址位。
C:
在内存空间中,可以无限分配段,且段的大小不受限制。
D:
段与段之间可以邻接,也可以重叠。
18.下列关于堆栈的说法,错误的是(D)
A:
以“先入后出”为原则。
B:
栈区最高地址单元的前一个单元为栈底。
C:
运行中SP寄存器动态跟踪栈顶位置。
D:
压栈和弹出都是以字节为单位。
19.分配给INT12H在中断向量表中的物理地址是(D)。
A.12HB.24H
C.36HD.48H
20.DOS调用INT21H的键盘输入功能1和功能8的区别是(B)。
A.功能1不回显而功能8回显B.功能1回显而功能8不回显
C.功能1和功能8都不回显D.功能1和功能8都回显
二、填空题(共27题)。
(最后二题有备选答案)
1.设一存储单元中的二进制代码是83H,其对应的一个无符号数是148,一个带符号数是-108。
2.8086/8088系统中,I/O端口地址范围是0000H~FFFFH。
3.8086/8088系统中,段内一个单元相对段的起始地址的距离称为偏移地址,它小于64K。
4.8086/8088CPU内部用来存放段地址的寄存器有CS,DS,ES,SS。
5.在PC机中,使用SS、SP合成20位的物理地址,用以指向当前堆栈桟顶的位置。
6.一个字单元由二个连续的字节单元组成,其中数据的低8位存放在低地址单元、高8位存放在高地址单元。
7.在指令中直接给出操作数的寻址方式称为立即寻址方式。
8.设MASK为一个变量,在“MOVAX,MASK[SI+BX]”指令中,源操作数的寻址方式是相对基址变址寻址方式,其物理地址是(DS)×16+(SI)+(BX)+OFFSETMASK,目的操作数的寻址方式是
寄存器寻址方式。
9.若(SS)=1100H,(SP)=0150H,那么执行PUSHEAX指令后SP的内容是014CH,再执行POPCX指令后桟顶的物理地址是1114EH。
10.CPU执行“JMPBX”指令只改变IP,而不改变CS内容。
11.执行CALLNEARPTRSUBROUT时,在修改IP/EIP内容之前应该PUSHIP或PUSHEIP。
12.STRINGDB‘ABCDEFG’
COUNTEQU$-STRING
COUNT的值是7,表示的意义是表示变量STRING所分配的字节数。
13.数据定义语句:
TABDW100DUP(?
)
执行MOVBX,LENGTHTAB指令后,BX的内容是100。
14.循环程序可由三个部分组成:
设置循环初始部分、循环体和循环控制部分。
15.在多个模块中传递参数的时候,在本模块中要使用另一个模块中的符号要用EXTRN伪操作进行说明符号,本模块中的符号要提供给另一个模块使用要用
PUBLIC伪操作进行说明符号,
16.宏汇编的三个步骤是:
宏定义、宏调用和宏展开。
17.每种类型的中断都由相应的中断处理程序来处理。
18.下列程序段求数组FLD的平均值,结果在AL中。
请将程序填写完整(不考虑溢出)
FLDDW10,-20,30,-60,-71,80,79,56
LEASI,___FLD___
MOVCX,8
XORAX,AX
R1:
ADDAX,_[SI]____
ADDSI,2
LOOPR1
MOVCL,8
IDIVCL
HLT
19.MOVAX,1090H
SUBAX,4AE0H
JCL1
JOL2
JMPL3
上述程序执行后AX=___C5BO____,程序转向___L1____
20.假设寄存器AX=1234H,DX=0A000H
MOVBX,0
MOVCX,BX
SUBCX,AX
SBBBX,DX
MOVAX,CX
MOVDX,BX
上述程序段执行后AX=___OEDCCH____,DX=__5FFFH_____
21.MOVAX,234H
MOVCL,3
ROLAX,CL
DECAX
MOVCX,4
MULCX
此段程序执行完后,(AX)=__467CH_____,(CX)=___4____
22.DA1 DB83H,72H,61H,94H,5AH
MOVCX,WORDPTR[DA1]
ANDCX,0FH
MOVAL,[DA1+3]
SHLAL,CL
上述指令序列执行后,AL=____OAOH___,CL=___03H____。
23.阅读如下程序片段
MOVAL,4CH
MOVBL,86H
ADDAL,BL
执行上述程序片段后,(AL)=0D2H,(BL)=86H,
CF=0,OF=0
24.以下程序求出首地址为BUF的M字数组的内容之和。
DATASEGMENT
BUFDWX1,X2,…,XM
COUNTEQU($一BUF)/2
SUMDW?
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVBX,OFFSETBUF
MOVCX,COUNT
MOVAX,0
LOP1:
ADDAX,[BX]
ADDBX,2
LOOPLOP1
MOVSUM,AX
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
25.以下程序完成将键盘输入的小写字母转换成大写字母并输出显示,直到输入字符“$”结束。
DATASEGMENT
ERRORDB“INPUTEXCEEDS‘a’~‘z’,PLEASEINPUTAGAIN!
”,0DH,0AH,‘$’
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
NEXT:
MOVAH,1
INT21H
CMPAL,‘$’
JEEXIT
CMPAL,‘a’
JBERR
CMPAL,‘z’
JAERR
SUBAL,20H
MOVDL,AL
MOVAH,2
INT21H
JMPNEXT
ERR:
LESDX,ERROR
MOVAH,9
INT21H
JMPNEXT
EXIT:
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
26.下面子程序完成把BX寄存器内的二进制数用十六进制数的形式在屏幕上显示出来。
BINTOHEXPROCNEAR
PUSHCX
PUSHAX
PUSHDX
MOVCH,4
ROTATE:
MOVCL,4
ROLBX,CL
MOVAL,BL
2
ADDAL,30H
CMPAL,3AH
1
ADDAL,7H
PRINTIT:
MOVDL,AL
MOVAH,2
INT21H
3
JNZROTATE
POPDX
POPAX
POPCX
RET
BINTOHEXENDP
备选答案:
①JLPRINTIT
②ANDAL,OFH
③DECCH
27.下面程序段是判断寄存器BL中第3位、第5位是否同时为1,如同时为1,则AH置0,否则AH置全l。
MOVDL,BL
NOTDL
2
JZZERO
MOVAH,0FFH
1
ZERO:
MOVAH,0
NEXT:
备选答案:
①JMPNEXT
②TESTDL,28H
三、判断题(在正确的叙述或指令前打✓,错误的题前打✗)(共20题)
(X)1.PUSH5588H
(X)2.MOVDS,1720H
(X)3.ADDAX,CL
(X)4.ANDAX,[DX]
(X)5.MOVCS,0600H
(X)6.PUSH074CH
(X)7.ADDAX,CL
(X)8.ORBX,[CX]
(V)9IMULDX
(X)10.XORAL,BX
(X)11.MOV[DX],BX
(X)12.SUBEAX,[ECX*10+100]
(X)13.MOVDS,1200H
(X)14.XCHG256,[100H]
(V)15.OUTDX,AX
(X)16.LEAVAR,[BP+SI]
(X)17.NEG88
(V)18.INCWORDPTR[100H]
(V)19IMULDX
(X)20.XORAL,BX
四、简答题(共4题)
1.标志寄存器:
标志寄存器:
是8086/088中唯一按位操作的寄存器,该寄存器为16位,有效的标志位共9位。
其中,CF,PF,AF,ZF,SF,OF为状态标志,用于反映最近一次影响标志位的算术或逻辑运算中运算过程、运算结果的一些性质;TF,IF,DF为控制标志,用于控制CPU对某些特定事件的处理方式以及CPU的工作模式。
2.逻辑地址:
逻辑地址:
由两个16位的地址分量构成,其中一个为段基值,另一个为偏移量,两个分量均为无符号数编码。
物理地址=段基值×16+偏移量.
3.下列程序段执行完后,SF、ZF、CF、OF的内容是什么?
MOVBX,4321H
ADDBX,1234H
SF=0ZF=0CF=0OF=0
4.下列ASCⅡ码串(包括空格串)依次存储在起始地址为CSTRING的字节单元中:
CSTRINGDB‘PERSONALCOMPUTER’
请编写指令将字符串中的第1个和第7个字符传给DX寄存器。
MOVDX,CSTRING
MOVDX,CSTRING+6
五、程序分析题(分析程序段总的功能或回答相关问题或运行结果)(共14题)。
1.阅读如下程序片段
MOVAL,4CH
MOVBL,0B5H
ADDAL,BL
执行上述程序片段后,(AL)=01H,(BL)=0B5H,CF=1,OF=0
2.阅读如下程序片段
MOVAL,0F3H
MOVDL,0C4H
ADDAL,DL
ANDAL,0FH
执行上述程序片段后,(AL)=7H,CF=0,OF=0,PF=0
3.阅读如下程序片段
MOVAL,7EH
MOVCL,04H
ROLAL,CL
执行上述程序片段后,(AL)=0F9H,(CL)=04H,CF=1,OF=无意义
4.阅读如下程序片段
MOVAX,0632H
MOVBX,0C202H
SUBAX,BX
INCAX
执行上述程序片段后,(AX)=4421H,(CF)=1,OF=0,PF=0
5.阅读如下程序片段,假设(DS)=0100H,字节单元(01024H)=56H,字节单元(01025H)=28H
MOVBX,0024H
LEABX,[BX]
ORBX,0
ADCBX,[BX]
执行上述程序片段后,(BX)=287AH,(CF)=0,OF=0,PF=0
6.阅读如下程序片段,假设(SP)=0064H
MOVAX,0001H
MOVBX,0002H
PUSHAX
PUSHBX
POPAX
POPBX
执行上述程序片段后,(AX)=0002H,(BX)=0001H,(SP)=0064H。
(CF)=0
7.DATASEGMENT
TABDW1,2,3,4,5
ENTRYDW2
DATAENDS
…
MOVBX,OFFSETTAB
ADDBX,ENTRY
MOVAX,[BX]
MOVCX,TYPETAB
MOVDX,SIZETAB
执行上述指令后,(AX)=3,(CX)=2,(DX)=2。
8.MOVAX,W
IMULX
MOVBX,Y
ADDBX,6
IDIVBX
MOVZ,AX
MOVR,DX
上述程序段中X,Y,Z,R,W均为有符号数的字变量,试说明上述程序段完成什么功能。
求数值表达式的值:
(W*X)/(Y+6)→Z,余数→R
9.
MOVAX,1234H
MOVCL,8
ROLAX,CL;这条指令执行后,(AX)=3412H
DECAX;这条指令执行后,CF不变
MOVCX,4
MULCX;这条指令执行后,SF=1
10.CMPDX,BX
JGX
JLY
CMPAX,CX
…
JAX
X:
…
Y:
有两个双精度数α、β分别存储于DX、AX及BX、CX中,上述程序段完成的功能是什么?
完成的功能是:
如果α.>β,则转向X执行,否则转向Y执行。
11.设有宏定义如下:
TRANSMACROBUF1,BUF2
MOVAX,BUF1
MOVBX,BUF2
MOVBUF1,BX
MOVBUF2,AX
ENDM
请说明宏指令完成的功能是什么?
并将宏调用TRANSWORD_VAR1,WORD_VAR2进行宏扩展。
宏定义完成的功能是:
将两个存储单元BUF1和BUF2的内容互换。
宏调用TRANSWORD_VAR1,WORD_VAR2的宏扩展是
MOVAX,WORD_VAR1
MOVBX,WORD_VAR2
MOVWORD_VAR1,BX
MOVWORD_VAR2,AX
12.分析下面程序段,回答指定问题:
XORAL,AL
CALLSUBROUT
MOVBL,AL
CALLSUBROUT
RCRAL,1
…
SUBROUTPROCNEAR
NOTAL
JSNEXT
STC
NEXT:
RET
SUBROUTENDP
上述程序执行后,(AL)=80H,(BL)=0FFH。
13.试回答下面程序段执行后完成什么功能?
OLDSDB‘COMPUTER’
NEQU$-OLDS
…
NEWSDB‘COMPUTOR’
LEASI,OLDS
LEADI,NEWS
MOVCX,N
CLD
REPECMPSB
JNZNEW_ADDRESS
…
OLD_ADDRESS:
…
NEW_ADDRESS:
比较字符串OLDS和NEWS是否相同,若不相同则转到NEW_ADDRESS执行,否则转到OLD_ADDRESS
14.MOVCX,L
LEADI,ARRAY
MOVAL,20H
CLD
REPNESCASB
JNZNOT_FOUND
NOT_FOUND:
试回答上述程序段完成的功能是什么?
在长度为L的字符串ARRAY中查找空格,若有空格在顺序执行,否则转向NOT_FOUND。
六、计算题(共2小题)
1.将十进制数100分别转换为二进制、十六进制数,它们的表示形式分别为多少?
二进制为01100100B,十六进制为64H
2.假设(DS)=0C00H,(BX)=0210H,对于指令MOVDS:
100H[BX],AL,其目的操作数的物理地址为多少?
EA=(BX)+0100H=0310H,物理地址=0C000H+0310H=0C310H
七、程序设计题(共4题)
1.试编写一程序片段,实现BL高4位与低4位相互交换
MOVCL,4
ROLBL,CL
2.试编写一程序片段,不使用乘除法指令,实现((AX)*5+14)/2的功能(AX中的数据理解为补码)
MOVBX,AX
MOVCL,2
SALAX,CL
ADDAX,BX
ADDAX,14
SARAX,1
3.D1DW?
?
D2DW?
?
定义了两个双精度数。
编写一条宏定义DSUB,完成双精度数D1减去双精度数D2,差存放在D2中,两个双精度数为变元。
DSUBMACROD1,D2
MOVAX,D1
MOVDX,D1+2
SUBAX,D2
SBBDX,D2+2
MOVD2,AX
MOVD2+2,DX
ENDM
或
DNEGMACROD1,D2
MOVEAX,D1
SUBEAX,D2
MOVD2,EAX
ENDM
4.现有下列数据段:
DATASECMENT
二、大学生DIY手工艺制品消费分析STR1DB‘ABCDEFGHIJKL’
COUNTEQU$—STR1
BUFDBCOUNTDUP(0)
DATAENDS
试用串指令编写一个完整的程序:
实现把STR1中所有字符逆向传送到BUF缓冲区(即STR1中第一个字符送到BUF的最后一个单元,STR1中最后一个字符送到BUF的第一个单元)。
8、你是如何得志DIY手工艺制品的?
DATASECMENT
(五)DIY手工艺品的“价格弹性化”STR1DB‘ABCDEFGHIJKL’
在上海,随着轨道交通的发展,地铁商铺应运而生,并且在重要的商业圈已经形成一定的气候,投资经营地铁商铺逐渐成为一大热门。
在人民广场地下“的美”购物中心,有一家DIY自制饰品店---“碧芝自制饰品店”。
COUNTEQU$—STR1
标题:
大学生究竟难在哪?
—创业要迈五道坎2004年3月23日BUFDBCOUNTDUP(0)
DATAENDS
CODESEGMENT
ASSUMECD:
CODE,DS:
DATA,ES:
DATA
START:
MOVAX,DATA
附件
(一):
MOVDS,AX
(2)缺乏经营经验MOVES,AX
LEASI,BUF—1
LEADI,BUF
MOVCX,COUNT
CLDSTD
此次调查以女生为主,男生只占很少比例,调查发现58%的学生月生活费基本在400元左右,其具体分布如(图1-1)LOP:
MOVSBLOP:
MOVSB
SUBSI,2ADDDI,2
LOOPLOPLOOPLOP
300元以下918%MOVAH,4CH
INT21H
营销环境信息收集索引CODEENDS
ENDSTART