汇编语言习题册有答案已经收编.docx
- 文档编号:4304822
- 上传时间:2022-11-29
- 格式:DOCX
- 页数:46
- 大小:34.74KB
汇编语言习题册有答案已经收编.docx
《汇编语言习题册有答案已经收编.docx》由会员分享,可在线阅读,更多相关《汇编语言习题册有答案已经收编.docx(46页珍藏版)》请在冰豆网上搜索。
汇编语言习题册有答案已经收编
汇编语言习题册
(汇编语言课程设计组编制)
汇编语言程序设计习题
一.填空题
1.汇编语言是一种_____,它用_____来表示操作码,用——或——来表示操作数或操作数地址,它与_________是一一对应的。
2.计算机中的指令由__________和________两部分组成。
3.指出下列指令源操作数的寻址方式:
MOVAX,ARRAYF[SI]_______
MOVAX,ES:
[BX]_______
MOVAX,[200H]_______
MOVAX,[BX+DI]_______
MOVAX,BX_______
MOVAX,1200H_______
MOVAX,20[BX+SI]_______
MOVAX,[DI+20]_______
4.现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100)=12H,(20101)=34,
(20102)=56H,(20103)=78H,(21200)=2AH,(21201)=4CH,(21202)=B7H,I(21203)=65H,下列指令执行后填入AX寄存器的内容:
MOVAX,1200H;(AX)=_______
MOVAX,BX;(AX)=_______
MOVAX,[1200H];(AX)=_______
MOVAX,[BX];(AX)=_______
MOVAX,1100[BX];(AX)=_______
MOVAX,[BX][SI];(AX)=_______
MOVAX,1100[BX][SI];(AX)=_______
5.条件码中最主要的是_____、_____、______、______。
6.对于乘法、除法指令,其目的操作数存放在______或______中,而其源操作数可以用除_______以外的任一寻址方式。
7.当指令“SUBAX,BX”执行后,CF=1,说明最高有效位_____;对____数,说明操作结果溢出。
8.指令SAR可用来_______除2,而指令SHR则可用来_______除2。
9.假设(DS)=B000H,(BX)=080AH,(0B080AH)=05AEH,(0B080CH)=4000H,执行指令“LESDI,[BX]”后,(DI)=_______,(ES)=________。
10.对于指令XCHGBX,[BP+SI],如果指令执行前,(BX)=6F30H,(BP)=0200H,(SI)=0046H,(SS)=2F00H,(2F246H)=4154H,则执行指令后,(BX)=______,(2F246H)=_______。
11.假设(DS)=2000H,(BX)=21256H,(SI)=528FH;位移量TABLE=20A1H,(232F7H)=3280H,(264E5H)=2450H,则
执行指令JMP[BX][SI]后,(IP)=_______;
执行指令JMPTABLE[BX]后,(IP)=_______;
执行指令JMPBX后,(IP)=________。
12.在1000H单元中有一条二字节指令JMPSHORTLAB,如果其中偏移量分别为30H、6CH、0B8H,则转向地址LAB的值分别为______、______、_______。
13.数据段中有以下定义:
ARRAY1EQU16H
ARRAY2DW16H
请指出下面两条指令的寻址方式:
MOVAX,ARRAY1;寻址方式:
__________
MOVAX,ARRAY2;寻址地址:
__________
14.下面两个语句的区别在于_______、________。
X1EQU1000H
X2=1000H
15.指令“ANDAX,STR1ANDSTR2”中,STR1和STR2是两个已赋值的变量,两个AND的区别是______、_______。
16.条件转移指令的目标地址应在本条件转移指令的下一条指令地址的_____个字节范围内。
17.指令LOOPZ/LOOPE是结果_____或____发生转移的指令。
而指令LOOPNZ/LOOPNE则是结果或发生转移的指令。
18.调用指令CALL可分为________、_________、________和________等四种调用。
19.换码指令XLAT完成的操作是______。
它经常用于把一种代码转换为另一种代码。
如果执行此操作,应首先建立一个字节表格,但表格的长度不能超过_______。
20.下面两条指令执行后,(AH)=_______。
(AL)=________:
MOVAH,10H
MOVAL,10
21.在汇编语言中,一个过程有NEAR和FAR两种属性。
NEAR属性表明主程序和子程序______,FAR属性表示主程序和子程序________。
22.如果TABLE为数据段中0032单元的符号名,其中存放的内容为1234H,执行指令“MOVAX,TABLE”后,(AX)=________;而执行指令“LEAAX,TABLE”后,则(AX)=_______。
23.串处理指令规定源寄存器使用______,源串在______段中;目的寄存器使用_____,目的串必须在______段中。
24.近过程(NEAR)的RET指令把当前栈顶的一个字弹出到____;远过程(FAR)的RET指令弹出一个字到_____后又弹出一个字到_____;IRET指令是______指令,它从堆栈顺序弹出三个字分别送到______、_______和_______中。
25.______过程定义结束伪指令,与______配套使用。
______或是段定义结束伪指令,与______配套使用;或是结构定义结束伪指令,与______配套使用。
_____是宏定义结束伪指令,与______配套使用。
_______是一个宏模块汇编结束伪指令。
26.对于指令:
MOVBX,((PORT_VALLT5)AND20)OR((PORT_VALGE5)AND30)
当PORT_VAL<5时,汇编结果为:
MOVBX,______;
否则,汇编结果为:
MOVBX,______。
27.宏定义中允许使用宏调用,其限制条件是_______。
28.宏的使用要经过三个步骤为__________、__________和___________。
29.从外设发出中断请求到CPU响应中断,有两个控制条件是起决定作用的,它们是______和_______。
这两个条件分别由_______和________控制。
30.一个有16个字的数据区,它的起始地址为70A0:
DDF6,那么该数据区的最后一个字单元的物理地址为_______H。
31.COM文件只有一个段并限制在64KB之内,COM程序的堆栈是由_____自动产生的,数据定义在______段内。
COM程序总是从偏移地址________开始执行。
32.子程序又称为________,由伪操作_________定义,由_________结束,属性可以是________或_________。
33.在标准子程序中,它所使用的工作寄存器一般要存入_____保存,在返回调用程序之前,再_________它们的内容。
34.填入正确的过程属性。
CODE1SEGMENT
………
SUBPROC________
………
RET
SUBENDP
………
CALLSUB
………
CODE1ENDS
……
……
CODE2SEGMENT
………
CALLSUB
………
CODE2ENDS
35.宏定义体包括实现子功能的指令和伪操作,如果宏定义体中有一个或多个标号,则必须用__________伪操作列出所有的标号。
36.令(AL)=98H,(BL)=12H,则执行指令MULBL后,(AX)=_______,(OF)=_____,(CF)=_______;而执行指令MULBL后,它的结果是(AX)=_________,(OF)=_______,(CF)=_______。
37.执行下列指令序列后,完成的功能是将(DX,AX)的值__________
MOVCL,04
SHLDX,CL
MOVBL,AH
SHLAX,CL
SHRBL,CL
ORDL,BL
MOVBL,DL
SHRDX,CL
SHRBL,CL
ORAH,BL
或者采用下面的方法,将(DX,AX)向右移四位。
MOVCX,04
NEXT:
SHRDX,1
RCRAX,1
LOOPNEXT
38.对于下面的数据定义:
A1DW20DUP(?
)
A2DW20DUP(?
)
A3DW‘987654321’
…………
MOVAX,LENGTHA1
MOVBX,LENGTHA2
MOVCX,LENGTHA3
各条指令执行后,相应寄存器的内容为:
(AX)=_______,(BX)=_______,(CX)=_______。
39.对于下面的数据定义,各条MOV指令单独执行后,请填充有关寄存器的内容。
TABLE1DB?
TABLE2DW20DUP(?
)
TABLE3DB‘ABCD’
…………
MOVAX,TYPETABLE1(AX)=_________
MOVBX,TYPETABLE2(BX)=_________
MOVCX,LENGTHTABLE2(CX)=_________
MOVDX,SIZETABLE2(DX)=_________
MOVSI,LENGTHTABLE3(SI)=_________
40.某程序的数据段定义如下,请填写完整。
DATASEGMENT
TABDB‘MICROSOFT’
DB‘MS-DOS6.22’
DW1234
DB‘IBMPS/2’
TABLENEQU___________;数据长度
DATAENDS
41.程序段如下:
DATASEGMENT
ORG2000H
TWO=2
NUMDB3,4
WORDSDW1011H,2022H
CHAR1DB2DUP(?
)
TENEQU10
CHAR2DB‘5’
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
MAINPROCFAR
START:
PUSHDS
XORAX,AX
PUSHAX
MOVAX,DATA
MOVDS,AX
MOVAL,TWO
MOVWORK,AL
TWO=TWO-1
ADDAL,TWO
MOVWORK+1,AL
RET
MAINENDP
CODEENDS
ENDSTART
程序执行后,内存单元DS:
2000H—DS:
200AH的值分别是_____、______、______、______、______、_______、_______、________、________、_______、_______,TWO的值为_______。
42.下列程序段运行后,A单元的内容为_______。
DATASEGMENT
ADW0
BDW0
CDW230,20,54
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
STARTPROCFAR
PUSHDS
XORAX,AX
PUSHAX
MOVAX,DATA
MOVDS,AX
MOVBX,OFFSETC
MOVAX,[BX]
MOVB,AX
MOVAX,2[BX]
ADDAX,B
MOVA,AX
RET
STARTENDP
CODEENDS
ENDSTART
43.分析以下程序段:
ADDAX,BX
JNOL1
JNCL2
SUBAX,BX
JNCL3
JNOL4
JMPSHORTL5
如果AX和BX的内容给定如下:
AXBX
①147B80DC
②B56854B7
③42C8608D
④D0239FD0
⑤94B7B568
该程序执行后,程序转向______、______、_______、_______、_______。
44.设(SS)=0FFA0H,(SP)=00B0H,(AX)=8057H,(BX)=0F79H,执行指令“PUSHAX”后,(SP)=______;再执行指令
PUSHBX
POPAX
后,(SP)=______,(AX)=______,(BX)=______。
45.阅读下面的程序段。
堆栈段分配了_____个ABCD结构的空间,堆栈长度为____个字。
如果程序中没有再设置SS、SP,那么经过汇编、连接后,(SP)=______。
ABCDSTRUC
DLD_BPDW?
RET_IPDW?
RET_CSDW?
PAR_2DW?
PAR_1DW?
ABCDENDS
S_SEGSEGMENTSTACK
ABCD10DUP(<>)
S_SEGENDS
46.阅读下列程序:
DS_SEGSEGMENT
COUNTDB4
BLK1DB96H,74H,32H,16H
BLK2DB65H,94H,87H,29H
BLK3DB4DUP(?
)
DS_SEGENDS
CS_SEGSEGMENT
MAINPROCFAR
ASSUMECS:
CS_SEG,DS:
DS_SEG
START:
PUSHDS
SUBAX,AX
PUSHAX
MOVAX,DS_SEG
MOVDS,AX
MOVSI,OFFSETBLK1
MOVDI,OFFSETBLK2
MOVBX,OFFSETBLK3
MOVCL,[COUNT]
MOVCH,0
CLC
NEXT:
MOVAL,[SI]
INCSI
ADSAL,[DI]
INCDI
DAA
MOV[BX],AL
INCBX
LOOPNEXT
RET
MAINENDP
CS_SEGENDS
ENDSTART
该程序执行后,请填入BLK3的偏移地址和其中各字节单元的内容。
①________
______
______
______
②________BLK3
③________
④________
以及⑤________
⑥________
47.在下列程序的括号中分别填入如下指令:
(1)LOOPL20
(2)LOOPEL20
(3)LOOPNEL20
TITLEEXLOOP.COM
CODESEGMENT
ASSUMECS:
CODE,SS:
CODE
ORG100H
BEGIN:
MOVAX,01
MOVBX,02
MOVDX,03
MOVCX,04
L20:
INCAX
ADDBX,AX
SHRDX,1
()
RET
CODEENDS
ENDBEGIN
在上述三种情况下,程序执行完后,(AX)=_______、(BX)=_______、(CX)=_______、(DX)=________。
48.已知下列程序段:
DATASEGMENT
DB1DB12H,34H,0,56H
DW1DW78H,90H,0AB46H,1234H
ADR1DWDB1
ADR2DWDW1
BUFDB5DUP(0)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
MAINPROCFAR
START:
PUSHDS
XORAX,AX
PUSHAX
MOVAX,DATA
MOVDS,AX
XORCX,CX
MOVCL,3
ADDADR1,CX
SUBADR2,CX
MOVBX,ADR1
MOVDI,BX
MOVSI,ADR2
MOVAL,DB1[BX]
MOVBUF[DI],AL
MOVAX,DW1[BX][SI]
MOVWORDPTRBUF,AX
RET
MAINENDP
CODEENDS
ENDSTART
程序执行后,填入BUF的偏移地址和其中各字节单元的内容。
偏移地址内容
⑵____________
⑷____________
⑹____________
⑻____________
⑽____________
⑴__________
⑶__________
⑸__________
⑺__________
⑼__________
49.在以DS:
5OC1为起始地址的表中存有字符串,它以NULL(00H)作串结束符,在DS:
CHAR中存有关键字。
从上述表中查找第一个此关键字的程序段如下。
若找到此关键字,寄存器CX中存放该关键字在ES段中的位移量;若串中无此关键字,CX返回-1值。
请将该程序段的空格补充完整。
MOVDI,OFFSETSOC1
MOVCX,0
CPO:
CMPES:
__①____,00H
JNECOUNT
MOVBX,CX
MOVDI,OFFSETCHAR
MOVAL,[DI]
MOVDI,OFFSETSOC1
CLD
____②___SCASB
JZFOUND
MOVCX,___③____
RET
FOUND:
____④____DI
MOVCX,DI
RET
COUNT:
INCDI
INCCX
JMPCPO
50.(AL)=9AH,(BL)=0BCH,当分别进行下列指令运算后,请写出标志位的内容:
⑴ADDAL,BL;ZF=_______,PF=_______,CF=_______,SF=_______,OF=______。
⑵SUBAL,BL;ZF=_______,PF=_______,CF=_______,SF=_______,OF=______。
⑶ANDAL,BL;ZF=_______,PF=_______,CF=_______,SF=_______,OF=______。
⑷ORAL,BL;ZF=_______,PF=_______,CF=_______,SF=_______,OF=______。
⑸XORAL,BL;ZF=_______,PF=_______,CF=_______,SF=_______,OF=______。
51.假设X和X+2单元的内容为双精度P,Y和Y+2单元的内容为双精度数Q(X,Y为低位数),下列程序段使2P>Q时,(AX)=1;2P≤Q时,(AX)=2,请把程序填写完整。
MOVDX,X+2
MOVAX,X
ADDAX,X
ADCDX,X+2
CMPDX,Y+2
___①____L2
___②____L1
CMPAX,Y
___③____L2
L1:
MOVAX,1
JMPEXIT
L2:
MOVAX,2
EXIT:
INT20H
52.阅读下面的程序。
在__①__的情况下,本段程序的执行结果是(AX)=0;在__②__的情况下,其结果为(AH)=0FFH。
INAL,20H
TESTAL,80H
JZA
MOVAH,0
JMPB
A:
MOVAH,OFFH
B:
HLT
53.已知程序如下:
DATASEGMENT(假定DS=00BFH)
ORG1000H
BLOCKDB48H,8DH
RESULDB?
DATAENDS
STACKSEGMENTPARASTACK‘STACK’
DB64DUP(?
)
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,SS:
STACK,DS:
DATA
STARTPROC
0000HBEGIN:
MOVAX,DATA
0003HMOVDS,AX
0005HMOVSP,4000H
0008HLEABX,BLOCK
000CHMOVAL,[BX]
000EHSUBAL,[BX+1]
0011HPUSHAX
0012HPUSHF
0013HCALLSUB1
0016HPOPF
0017HPOPAX
0018HMOV[BX+2],AL
001BHHLT
STARTENDP
001CHSUB1PRO
001CHADDAL,AL
001EHRET
SUB1ENDP
CODEENDS
ENDBEGIN
程序运行后,请输入数据段、堆栈段的数据存放情况:
(1)数据段数据存放情况:
偏移地址内容
____________
____________
____________
①_____________
②_____________
③_____________
(2)堆栈段数据存放情况:
偏移地址内容
①__________
②__________
③__________
④__________
⑤__________
⑥__________
⑦__________
(3)最后标志位为________。
54.下列程序段是比较AX,BX,CX中带符号数的大小,将最大的数放在AX中。
请将程序填充完整。
CMPAX,BX
___①____NEXT
XCHGAX,BX
NEXT:
___②____AX,CX
JGEOUT
___③____AX,CX
OUT:
…………
55.以下程序实现的功能,结果存放在中。
STRAT:
INAL,20H
MOVBL,AL
INTAL,30H
MOVCL,AL
MOVAX,0
NEXT:
ADDAL,BL
ADCAH,0
DECCL
JNZNEXT
HLT
56.下面程序是查找STRING中是否有“A”这个字符,如果有则转向YES去执行;没有则转向NO去执行。
请将程序填充完整:
MOVCX,20;假设STRING的长度为20
MOVBX,-1
MOVAL,‘A’
NEXT:
___①____BX
CMPAL,STRING[BX]
____②___NEXT
JNZ__③_____
YE
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 习题 答案 已经 收编