汇编复习题含答案.docx
- 文档编号:28092412
- 上传时间:2023-07-08
- 格式:DOCX
- 页数:24
- 大小:24.02KB
汇编复习题含答案.docx
《汇编复习题含答案.docx》由会员分享,可在线阅读,更多相关《汇编复习题含答案.docx(24页珍藏版)》请在冰豆网上搜索。
汇编复习题含答案
一、单项选择题(本大题共20小题,每小题1分,共20分)
1.设A=0.4H,B=0.8H,C=0.4,D=0.4Q,它们之间的关系是()
A.C+D=BB.A+D=B
C.B=DD.A>C>D
2.标志寄存器中属于控制标志位的是()
A.DF,OF,SFB.DF,IF,TF
C.OF,CF,PFD.AF,OF,SF
3.8088/8086存储器分段,每个段不超过()
A.64K个字B.32K个字节
C.1兆个字节D.64K个字节
4.设AL中已有压缩型BCD码,为实现对AL的减1操作,可选用的指令序列是()
A.DECALB.SBBAL,0
AASDAS
C.SUBAL,1D.SUBAL,1
AASDAS
5.要输入端口1234H中的8位数据,其指令应是()
A.MOVDX,1234HB.MOVDX,1234H
OUTDX,AL1NAL,DX
C.1NAX,1234HD.OUTDX,1234H
6.若AX=-15要得到AX=15应执行的指令是()
A.NEGAXB.NOTAX
C.INCAXD.DECAX
7.8086/8088系统执行传送指令MOV时()
A.不影响标志位B.影响DF方向标志
C.影响SF符号标志D.影响CF进位标志
8.MOVAL,79
ADDAL,0B1H
上面指令执行后,设置的标志位CF和OF的值是()
A.CF=0,OF=1B.CF=1,OF=1
C.CF=0,OF=0D.CF=1,OF=0
9.已知AX,BX中均为带符号数,当进行字相除时,下面指令或指令序列正确的是()
A.DIVBXB.CWD
IDIVBX
C.XORDX,DXD.CBW
DIVBXIDIVBX
10.下列指令中操作数在代码段中的是()
A.MOVAL,42HB.ADDAL,BL
C.SUB[BX],DID.1NC[DI]
11.用REPESCASB指令对字符串进行扫描,如CX
0时,扫描结束,那么表示()
A.在字符串中遇上第一个AL中指定的字符
B.在字符串中有一个AL中指定的字符
C.在字符串中有一个不是AL中指定的字符
D.在字符串中遇上第一个不是AL中指令的字符
12.下列指令执行后对源和目的操作数均无影响的是()
A.MOV[BX+2],AXB.SUBAX,2467H
C.SBB[SI],BXD.CMPAX,BX
13.表示过程定义结束的伪指令是()
A.ENDPB.ENDS
C.ENDD.ENDM
14.下列有语法错误的语句是()
A.DB12HB.DW4567H
C.DDˋBCDˊD.DBˋCDˊ
15.DB1DB8DUP(2DUP(3),3DUP
(2))
┇
MOVAX,WORDPTRDB1[04H]
上面指令执行后,AX的内容是()
A.0302HB.0203H
C.0202HD.0303H
16.BUF1DB3DUP(0,2DUP(1,2),3)
COUNTEQU$-BUF1
符号COUNT等价的值是()
A.6B.18
C.16D.8
17.DA1DW2A05H
DA2DB0FAH
┇
MOVAL,BYTEPTRDA1
SUBDA2,AL
上述指令执行后,DA2中的内容是()
A.0DAHB.0FAH
C.0F5HD.0D0H
18.设(SS)=338AH,(SP)=450H,执行PUSHBX,和PUSHF两条指令后,堆栈顶部的物理地址是()
A.33CECHB.33CF2H
C.33CF4HD.33CE8H
19.设(SP)=0028H,执行段内返回指令RET6后,SP的内容是()
A.0036HB.0022H
C.0030HD.0020H
20.条件转移指令JNBE产生转移的条件是()
A.CF=0ANDZF=0B.CF=0ANDZF=1
C.CF=1ANDZF=0D.CF=1ANDZF=1
21.与MOVBX,0FFSETVAR指令完全等效的指令是()。
①MOVBX,VAR②LDSBX,VAR③LESBX,VAR④LEABX,VAR
22.在段定义时,如果定位类型用户未选择,就表示是隐含类型,其隐含类型是().
①WORD②PAGE③BYTE④PARA
23.在汇编语言程序的开发过程中使用宏功能的顺序是()。
①宏定义,宏调用②宏定义,宏展开
③宏定义,宏调用,宏展开④宏定义,宏展开,宏调用
24.汇编语言源程序中,每个语句由四项组成,如语句要完成一定功能,那么该语句中不可省
略的项是()。
①名字项②操作项③操作数项④注释项
25.MOVSP,3210H
PUSHAX
执行上述指令序列后,SP寄存器的值是()。
①3211H②320EH③320FH④3212H
25.BUFDW10HDUP(3DUP(2,10H),3,5)
上述语句汇编后,为变量BUF分配的存储单元字节数是()。
①80H②100H③124④192
二、简答题(本大题共3小题,每小题2分,共6分)
1.假设DS=2000H,COUNT=0100H,SI=0030H,指令MOVAX,COUNT[ST]
①写出源操作数的物理地址?
②该指令可否写成MOVAX,[COUNT+SI]?
①物理地址:
20130H(1分)
②可以(1分)
2.下面指令有无错误?
若有错,是什么错误?
①MOVAX,[SI][DI]
②CMP[SI],[BX]
①错,不能同时出现[SI],[DI](1分)
②错,存储单元之间不能直接比较(1分)
3.条件转移指令的判断条件除标志位PF外还有哪几个标志位?
OF、ZF、SF,和CF的标志位(2分)
三、程序分析题(每小题6分,共36分)
l.已知AX=0FF60H,CF=1
MOVDX,96
XORDH,0FFH
SBBAX,DX
执行上述指令序列后,AX=0,CF=0
2.设寄存器AL,BL,CL中内容均为76H,
XORAL,0FH
ANDBL,0FH
ORCL,0FH
执行上述指令序列后,AL=79HBL=06HCL=7FH
3.已知AX=0A33AH,DX=0F0F0H
ANDAH,DL
XORAL,DH
NECAH
NOTAL
执行上述指令序列后,AH=60H,AL=35H
4.DATASEGMENT
S9DB0,1,2,3,4,5,6,7,8,9
DATAENDS
:
LEASI,S9
LEA,DI,S9+1
MOVCX,5
LOP:
MOVAL,[SI]
XCHCAL,[DI]
MOV[SI],AL
ADDSI,2
ADDDI,2
LOOPLOP
上述程序段运行后,S9开始的10个字节存储单元内容是什么?
S9DB1,0,3,2,5,4,7,6,9,8
5.MOVAL,38H
MOVBL,49H
CALLSUB0
INCAL
DECCL
.........
SUB0PROC
ADDAL,BL
MOVCL,AL
DAA
RET
SUB0ENDP
上述程序段运行后,AL=88HCL=80H
6.ADRDW1234H,5678H
┇
LEASI,ADR
LDSBX,ADR
设变量ADR的偏移地址是100H,上述两条指令执行后:
SI=100H,BX=1234H。
7.已知DS和ES指向同一个段,且当前数据段从0000H到00FFH单元内容分别为01,02,03,…,0FF,00H。
问下列程序段执行后,0000~0009H的内容是些什么值。
MOVSI,0000H
MOVDI,0001H
MOVCX,0080H
CLD
REPMOVSW
(从0单元开始的内容是01,01,02,02,04,04,06,06,08,08)
8.STR1DBˋCOMPUTERNDPASCALˊ
SCADBˋNˊ
┇
LEADI,STR1
MOVAL,SCA
MOVCX,10H
CLD
REPNESCASB
NEXT:
……
程序运行到NEXT时CX=7ZF=1
9.已知AX=0FFFFH,DX=0001H
MOVCX,2
LOP:
SHLAX,1
RCLDX,1
LOOPLOP
上述程序段执行后,DX=0007HAX=0FFFCH
10.已知DX=0A476H,CX=0302H,CF=1
ORDX,DX
RCRDX,CL
XCHGCH,CL
RCLDX,CL
上述程序段执行后,DX=48ECHCF=1
11.MOVAX,10
SHLAX,1
SHLAX,1
MOVBX,AX
MOVCL,2
SHLAX,CL
ADDAX,BX
上述程序段执行后,BX=BX=40或28HAX=AX=200或00C8H
12.已知AX=78H,BX=0804H
SHRBX,1
ANDBX,0F0FH
MOVCX,4
LOP:
XCHGBH,BL
DIVBL
SALAX,1
LOOPLOP
上述程序段执行后,AX=BX=40或28HBX=AX=200或00C8H
四.改错.阅读下列数据传送程序段,改正使用不当的语句
ADB35,47,2AH,'XYZ'
BDBNDUP(0)
NEQU$-A
MOVSI,A
MOVDI,B
MOVCX,LENGTHA
LP:
MOVAX,[SI]
MOV[DI],AX
INCSI
INCDI
DECCX
LOOPLP
五.程序填空题(每空3分,共18分)
1.下面是程序段是判断寄存器AH和AL中第3位是否相同,如相同,AH置0,否则AH置全1.试把空白处填上适当指令.
XORAH,AL
ANDAH,08H
1.JEZERO
MOVAH,0FFH
JMPNEXT
ZERO:
MOVAH,0
NEXT:
........
2.有一个首址为A的字数组,完成从大到小的排序.
DATAREASEGMENT
ADWNDUP(?
)
DATAREAENDS
PROGRAMSEGMENT
MAINPROCFAR
START:
PUSHDS
SUBAX,AX
PUSHAX
MOVDS,AX
MOVCX,N
DECCX
LOOP1:
MOVDI,CX
MOVBX,0
LOOP2:
MOVAX,A[BX]
CMPAX,A[BX+2]
JGECONTINE
XCHGAX,A[BX+2]
MOVA[BX],AX
CONTINE:
ADDBX
LOOPLOOP2
2.MOVCX,DI
LOOPLOOP1
RET
MAINENDP
ENDSTART
3.该程序段的功能是求出存放在DX、AX中的双精度数的绝对值,并将结果保存在A和A+2单元中,请在空白处填写指令。
[1]
JNSRESULT
NOTAX
NOTDX
INCAX
[2]
RESULT:
MOVA,AX
MOVA+2,DX
4.下面程序执行后,AL的内容为ARRAY数组中的最小数,请在空白处各填上一条指令。
ARRAYDB3,5,-3,-2,4,5,-8,6
┇
MOVCX,7
MOVDI,0
MOVAL,ARRAY
A1:
INCDI
①
CMPAL,ARRAY[DI]
JLEA2
MOVAL,ARRAY[DI]
A2②
LOOPAl
5.下面程序段是判断两个存储单元是否同为正数,如是,则AX置全0,否则AX置非0。
试在空白处各填上适当的一条条件转移指令(两空白处要利用不同的标志位选用不同的条件转移指令)。
VAR1DW××××
VAR2DW××××
┇
MOVAX,VAR1
MOVBX,VAR2
XORAX,BX
①
JSNEXT
TESTBX,8000H
②
JNENEXT
MOVAX,0
NEXT:
……
6.以BUFF为首地址的字节单元中,存放了COUNT个无符号数,下面程序段是找出其中最大数并送入MAX单元中.
BUFDB5,6,7,58H,62,45H,127,.......
COUNTEQU$-BUF
MAXDB?
.
.
MOVBX,OFFSETBUF
MOVCX,COUNT-1
MOVAL,[BX]
NXET:
INCCX
CMPAL,[BX]
JAENEXT
MOVAL,[BX]
NEXT:
DECCX
JNZLOPI
MOVMAX,AL
六、编制程序题(第1小题8分共16分)
l.现有datasegment
arraydw64dup(?
)
dw5dup(?
)
dataends
试编写一程序段,要求在array+8到array+10(两者都包括在内)单元中插入5个0.(提示:
先把从array+8单元开始的数据后移5个单元,然后再在规定位置插入0)
1.CODESEGMENT
ASSUME,DS:
DATA,ES:
DATA
START:
PUSH
XORAX,AX
PUAHAX
MVAX,DATA
MOVDS,AX
MOVES,AX
MOVSI,OFFSETARRAY+7EH
MOVDI,OFFSETARRAY+88H
STD
MOVCX,60
REPMOVSW
MOVBX,OFFSETARRAY+8H
MOVCX,5
NEXT:
MOVWORDPTR[BX],0
ADDBX.2
LOOPNEXT
RET
CODEENDS
ENDSTARAT
2.从键盘上输入来宾的姓名Mr.×××或Mrs.×××,当按动任意键时,屏幕上显示出:
"WelcomeMr.×××".
2.DESGSEGMENT
MAXLENDB16
ACTLENDB?
NAMESDB16DUP(‘‘)
MESS1DB‘WELCOME’
MESS2DB16DUP(‘‘)
CRLFDB0DH,0AH,’$’
DSEGENDS
CSEGSEGMENT
MAINPROCFAR
ASSUMECS:
CSEG,DS:
DSEG,ES:
DSEG
PUSHDS
SUBAX,AX
PUSHAX
MOVAX,DSEG
MOVDS,AX
MOVES,AX
CLD
BEGIN:
MOVCX,16
MOVAL,20H
LEADI,MESS2
REPSTOSB
LEADX,MAXLEN
MOVAH,0AH
INT21H
MOVAH,7
INT21H
CMPAL,3
JEEXIT
DISPLAY:
MOVCH,0
MOVCL,ACTLEN
LEASI,NAMES
LEADI,MESS2
REPMOVSB
MOVAH,09H
LEADX,MESS1
INT21H
EXIT:
RET
MAINENDP
CSEGENDS
ENDMAIN
3.定义宏指令并展开宏调用:
宏指令JOE把一串信息“MESSAGENO.K”存入数据区XK中.
宏调用I=0
JOETEXT,I
JOETEXT,I
JOETEXT,I
3.JOEMACROA,J
MARYA,%J
J=J+1
ENDM
MARYMACROX,K
X&KDB‘MESSAGENO.&K’
ENDM
宏展开:
I=0
JOETEXT,I
+TEXT0DB‘MESSAGENO.0’
JOETEXT,I
+TEXT1DB‘MESSAGENO.1’
JOETEXT,I
+TEXT2DB‘MESSAGENO.2’
4.在BUF1和BUF2两个数据区中,各定义有10个带符号字数据,试编制一个完整的源程序,求它们对应项的绝对值之和,并将和数存入以SUM为首的数据区中。
DATASECMENT
BUF1DW-56,24,54,-1,89,-8,……
BUF2DW45,-23,124,345,-265,……
SUMDW10DUP(0)
DATAENDS
4.STACK1SEGMENTPATASTACK
DW20HDUP(0)
STACK1ENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK1
START:
MOVAX,DATA
MOVCX,10
LEASI,BUF1
LEADI,BUF2
LEABX,SUM
NXET:
MOVAX,[SI]
MOVDX,[DI]
TEXTAX,8000H
JETDX
NEGDX
TDX:
TESTDX,8000H
NEGDX
ADDS:
ADDAX,DX
MOV[BX],AX
ADDSI,2
ADDDI,2
ADDBX,2
LOOPNEXT
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
5.改错.阅读下列数据传送程序段,改正使用不当的语句
ADB35,47,2AH,'XYZ'
BDBNDUP(0)
NEQU$-A
MOVSI,A
MOVDI,B
MOVCX,LENGTHA
LP:
MOVAX,[SI]
MOV[DI],AX
INCSI
INCDI
DECCX
LOOPLP
6.内存中由SOURCE指示的个字节有符号数组成的数组分成正数和负数两个数组,并求这两个数组的数据个数,结果存放在RESULT指示的内存区域。
存放形式为正数个数在前,其后跟正数组元素,然后是负数个数及负数数组元素.
7从键盘输入一系列字符,以字符’$’为结束符,然后对其中的非数字字符计数,并显示出计数结果
.DSEGSEGMENT
BUFFDB50DUP(‘‘)
COUNTDW0
DSEGENDS
…..
BEGIN:
LEABX,BUFF
MOVCOUNT,0
INPUT:
MOVAH,01
INT21H
MOV[BX],AL
INCBX
CMPAL,’$’
JNZINPUT
LEABX,BUFF
NEXT:
MOVCL,’$’
JZDISP
CMPCL,[BX]
JZDISP
CMPCL,30H
JBCONT
CMPCL,39H
JBENXET
CONT:
INCCOUNT
JMPNEXT
DISP:
……..
8.在STRING到STRING+99单元中存放着一个字符串,并编写一个程序,测试该字符串中是否存在数字.如有数字则把DL的第5位置1,否则将该位置0
.DSEGSEGMENT
STRINGDB100DUP(?
)
DSEGENDS
CSEGSEGMENT
MAINPROCFAR
ASSUMECS:
CSEG,DS:
DSEG,ES:
DSEG
START:
PUSHDS
SUBAX,AX
PUSHAX
MOVAX,DSEG
MOVDS,AX
MOVES,AX
BEGIN:
MOVCX,100
MOVSI,0
REPEAT:
MOVAL,STRING[SI]
CMPAL,30H
JBGOON
CMPAL,39H
JAGOON
ORDL,20H
JMPEXIT
GOON:
INCSI
LOOPREPEAT
ANDDL,0DFH
EXIT:
RET
MAINENDP
CSEGENDS
ENDSTART
9.统计串中的空格个数和逗号的个数.
.DATASEGMENT
STRNDB‘AabcdBE,RES,…’‘.’$’
SPCLNDB?
DELILNDB?
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDSAX
MOVOFFSETGSTRN
MOVDX,0
AGAIN:
MOVAL,[SI]
CMPAL,’$’
JEDONE
CMPAL,20H
JNENEXT
INCDH
JMPCONTI
NXET:
CMPAL,2CH
JNECONTI
INCDL
COUNTI:
INCSI
JMPAGAIN
DONE:
MOVSPCLN,DH
MOVDELILN,DL
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
10.编一程序段将BUF字节单元中的数折成高低四位,并且将分离出的高四位和低四位分别放于BUF+1和BUF+2字节单元的低四位上。
MOVAL.BUF
MOVBUF+2,AL
ANDBUF+2,0FH
MOVCL,4
SHRAL,CL
M0VBUF+1,AL
11..用地址表转移表实现下列C语句,其中变量A和B是有符号的整型变量:
switch(a%8)
{case0:
b=32;break;
case1:
case2:
b=b+43;break;
case3:
b=b*a;break;
case4:
b--;break;
case5:
case6:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编 复习题 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)