第2章 指令系统及汇编语言程序设计答案.docx
- 文档编号:11390826
- 上传时间:2023-02-28
- 格式:DOCX
- 页数:18
- 大小:23.92KB
第2章 指令系统及汇编语言程序设计答案.docx
《第2章 指令系统及汇编语言程序设计答案.docx》由会员分享,可在线阅读,更多相关《第2章 指令系统及汇编语言程序设计答案.docx(18页珍藏版)》请在冰豆网上搜索。
第2章指令系统及汇编语言程序设计答案
第2章指令系统及汇编语言程序设计
一.选择题
1.(D)2.(A)3.(C)4.(D)5.(A)6.(D)
7.(C)8.(C)9.(C)10.(D)11.(D)12.(C)
13.(C)14.(A)15.(A)16.(D)17.(B)18.(C)
19.(C)20.(C)21.(D)22.(D)23.(D)24.(C)
25.(A)26.(A)27.(B)28.(C)29.(B)30.(D)
31.(B)32.(C)33.(C)34.(A)35.(C)36.(D)
37.(D)38.(A)39.(B)40.(C)41.(D)42.(D)
43.(B)44.(C)45.(C)46.(B)47.(B)48.(D)
49.(A)50.(B)51.(A)52.(C)
二、判断题
1.×2.×3.×4.√5.√6.√7.×8.×9.×
10.√11.×12.×13.×14.×15.×16.√17.√18.√
19.×20.×21.×22.√23.×24.√25.√26.√
三、填空题
1.53F30H
2.0;0;0;1
3.操作码;操作数
4.ZF=0
5.SS
6.1234H,0FFEH
7.立即
四、阅读程序
1.38(或26H)
2.将以10100H起始的50个单元的内容传送至以10200H起始的50个单元中
3.将数据段中以2000H起始的100个单元中的内容清零
4.统计以BUFFER为首址的100个单元中数字为1的个数存入ARRAY单元
5.统计N字中0的个数
6.将N的内容拆为两部分分别存入BH,BL中
7.AX=0008H
8.AL=34H
9.AX=23H
10.AX=0004H
11.AX=0055H
12.将从键盘接受到的两个字符拼在一起
13.BH=0FFH,BL=0EH
14.AX=000FH
15.AL=15H,AF=1,BL=0FH
16.90H
17.向屏幕上依次输出0,1,…。
9
18.AL=68H,CL=CEH
19.AX=0705H
20.
1① AX=0007H,BX=0014H,CX=0,DX=0
②AX=0007H,BX=0014H,CX=0,DX=0
③AX=0005H,BX=0007H,CX=0002H,DX=0002H
21.程序的功能是:
统计以BUFFER为起始地址的100个单元中偶数的个数。
22.①35H②将十六进制数转换为ASCII码
23.①12H②3412H
24.程序的功能是:
求从1开始的50个奇数之和。
25.(如下图)
26.①、0000H②、0002H
27.AL=90H
28.DI=0000HBP=0002H
29.AL=90H
30.①AL=0FCH②BL=1
五.程序填空
1.①、LOOPLOOP1②、POPAX;MOVDL,AL
六、编写程序
1.在STR到STR+49单元中存放着一个字符串,试编写一个程序,测试字符串中是否存在数字,如有,则把DL的第五位置1,否则将该位置0。
DATASEGMENT
STR1DB50DUP(?
)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
MAINPROCFAR
START:
PUSHDS
MOVAX,0
PUSHAX
MOVAX,DATA
MOVDS,AX
BEGIN:
MOVCX,50
MOVSI,0
REP1:
MOVAL,STR1[SI]
CMPAL,30H
JBGO
CMPAL,39H
JAGO
ORDL,20H
JMPEXIT
GO:
INCSI
LOOPREP1
ANDDL,0DFH
EXIT:
RET
MAINENDP
CODEENDS
ENDSTART
2.试编程实现,从键盘接收N个(N≤60)8位二进制数,统计其中奇数的个数,并将结果显示在屏幕上。
DATASEGMENT
KEYDB61
KEY1DB?
KEY2DB61DUP(?
)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVDX,OFFSETKEY
MOVAH,0AH
INT21H
MOVAL,0
LEASI,KEY2
MOVCH,0
MOVCL,KEY1
LP0:
MOVBL,[SI]
TESTBL,01H
JZLP1
ADDAL,01H
DAA
LP1:
INCSI
LOOPLP0
MOVBL,AL
MOVCL,4
SHRAL,CL
ADDAL,30H
MOVDL,AL
MOVAH,02H
INT21H
ANDBL,0FH
ADDBL,30H
MOVDL,BL
MOVAH,02H
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
3.已知有100字节的数据块存放在以5C10H:
2000H开始的存储区内,要求编写一个完整程序将数据移动到以5C10H:
2008H开始的存储区内。
参考程序
CODESEGMENT
ASSUMECS:
CODE
MAIN:
MOVAX,5C10H
MOVES,AX
MOVDS,AX
MOVSI,2063H
MOVDI,206BH
STD
MOVCX,100
REPMOVSB
MOVAH,4CH
INT21H
CODEENDS
ENDMAIN
4.数组A包含100个互不相等的整数,数组B包含150个互不相等的整数,试编程实现将数组A和数组B都有的整数存放在数组C中。
参考程序
DATSEGMENT
ADB100DUP(?
)
BDB150DUP(?
)
CDB150DUP(?
)
NDW00H
DATENDS
CODSEGMENT
ASSUMECS:
COD,DS:
DAT,ES:
DAT
START:
MOVAX,DAT
MOVDS,AX
MOVES,AX
CLD
LEASI,B
MOVDX,150
LP0:
MOVCX,100
LEADI,A
MOVAL,[SI]
REPNZSCASB
JNZLP1
LEABX,C
ADDBX,N
MOV[BX],AL
INCN
LP1:
INCSI
DECDX
JNZLP0
MOVAX,004CH
INT21H
CODENDS
ENDSTART
5.在以BASE起始的表中存有一组字符,它以‘回车’(0DH)结束。
请编写程序:
实现从该表中查找关键字KEY(设关键字KEY在AL中),并将找到的第一个关键字偏离表首的位置存放在寄存器DX中,若无此关键字,DX返回值为-1。
LEADI,BASE
MOVDX,-1
LOP:
MOVBL,[DI]
CMPBL,0DH
JZDONE
CMPBL,AL
JZLOP1
INCDI
JMPLOP
LOP1:
MOVDX,DI
DONE:
HLT
6.编写一个中断程序,实现人机对话。
要求执行程序时,显示‘WHATISYOURNAME?
’,在回车换行后,接收键盘输入信息,并显示。
(提示:
使用09H和0AH功能调用)
DATASEGMENT
BUFDB81
DB?
DB81DUP(?
)
MESGDB‘WHATISYOURNAME?
’,0AH,0DH
DB$
DATAENDS
STACKSEGMENTPARASTACK‘STACK’
DB100DUP(?
)
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK
STARTPROCFAR
PUSHDS
MOVAX,0
PUSHAX
MOVAX,DATA
MOVDS,AX
DISP:
MOVDX,OFFSETMESG
MOVAH,09H
INT21H
KEYBI:
MOVDX,OFFSETBUF
MOVAX,0AH
INT21H
LF:
MOVDL,0AH
MOVAH,02H
INT21H
DISTR:
MOVDX,OFFSETBUF+2
MOVAH,09H
INT21H
RET
STARTENDP
CODEENDS
ENDSTART
7.编写程序找出BUF数据区中50个带符号数的最大值和最小值,并分别存入MAX和MIN单元。
参考程序如下:
DATASEGMENT
BUFDB50DUP(?
)
MAXDB?
MINDB?
CONTEQU$-BUF
DATAENDS
STACKSEGMENT
TPDB100DUP(?
)
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK
MAINPROCFAR
START:
PUSHDS
SUBAX,AX
PUSHAX
MOVDS,AX
LEABX,BUF
MOVCX,CONT-1
MOVAL,[BX]
MOVAH,[BX+1]
INCBX
CMPAH,AL
JGELOP1
XCHGAH,AL
LOP1:
INCBX
CMPAH,[BX]
JGELIS
XCHGAH,[BX]
JMPLOP2
LIS:
CMPAL,[BX]
JLELOP2
XCHGAL,[BX]
LOP2:
LOOPLOP1
MOVMAX,AH
MOVMIN,AL
RET
MAINENDP
CODEENDS
ENDSTART
8.试编程实现从键盘接收N个(N≤50)8位二进制数,统计偶数的个数及偶数之和,并将统计的个数以十进制方式显示在屏幕上。
DATASEGMENT
KEY1DB51
KEY2DB?
KEY3DB51DUP(?
)
DATAENDS
CODESEGMENT
ASSUMEDS:
DATA,CS:
CODE
MAIN:
MOVAX,DATA
MOVDS,AX
MOVSI,OFFSETKEY1
MOVAH,0AH
INT21H
LEABX,KEY3
XORDX,DX
MOVCL,KEY2
MOVCH,0
LP0:
MOVAL,[SI]
TESTAL,01H
JNZLP
ADDBL,AL
MOVAL,BH
ADDAL,1
DAA
MOVBH,AL
LP:
INCSI
LOOPLP0
SHLAL,4
ADDAL,30H
MOVDL,AL
MOVAH,01
INT21H
ANDBH,0FH
MOVDL,30H
ADDDL,BH
MOVAH,1
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDMAIN
9.以STRING起始的字符串的最大长度为80个字符,字符串的结束用字符$表示。
编写程序在该字符串中查找是否有空格符(ASCII码为20H),若有就将第一个空格字符串中的位置(00H~4FH)存入POST单元;若无空格则将-1存入POST。
LEABX,STRING
MOVCX,80
NEXT1:
MOVAL,[BX]
CMPAL,’$’
JZDONE
CMPAL,20H
JZNEXT
INCBX
LOOPNEXT1
JMPDONE
NEXT:
MOVPOST,BL
JMPEND1
DONE:
MOVPOST,0FFH
END1:
……
10.BUFFER字节数组中存有一组无序列字节数数据,列的长度表示在BUFFER的第一个字节中KEY中为一个字节数据,编写程序在BUFFER中查找有无KEY,若有就结束,若没有就将KEY加入到BUFFER中去,并修改列的长度。
LEASI,BUFFER
MOVCL,[SI]
INCSI
XORCH,CH
NEXT:
MOVAL,[SI]
CMPAL,KEY
JZDONE
INCSI
LOOPNEXT
MOVAL,KEY
MOV[SI],AL
INCBYTEPTRBUFFER
DONE:
………。
11.利用移位及数据循环指令完成将DHAL中的16位二进制乘以8的运算,结果仍存入DHAL中。
MOVCX,3
NEXT:
SHLAL,1
RCLDH,1
LOOPNEXT
MOVAH,4CH
INT21H
12.分别从键盘上接收两长度相等的组数A和B,试完成两数组的求和任务,将结果存放在数组C中,并显示在屏幕上。
DATASEGMENT
A0DB80
A1DB?
ADB80DUP(?
)
B0DB80
B1DB?
BDB80DUP(?
)
CDB80DUP(?
)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
MAIN:
MOVAX,DATA
MOVDS,AX
LEADX,A0
MOVAH,0AH
INT21H
LEADX,B0
MOVAH,0AH
INT21H
CLC
LEASI,A
LEABX,B
LEADI,C
MOVCL,A1
XORCH,CH
NEXT:
MOVAL,[SI]
ADCAL,[BX]
MOV[DI],AL
INCBX
INCSI
INCDI
LOOPNEXT
MOVCL,A1
XORCH,CH
LEADI,C
N0:
MOVDL,[DI]
SHLDL,4
ADDDL,30H
CMPDL,39H
JNCN1
ADDDL,07H
N1:
MOVAH,01H
INT21H
AND[DI],0FH
MOVDL,[DI]
ADDDL,30H
CMPDL,39H
JNCN2
ADDDL,07H
N2:
MOVAH,01H
INT21H
INCDI
LOOPN0
MOVAH,4CH
INT21H
CODEENDS
ENDMAIN
13.编写程序,将键盘输入的小写字母用大写字母显示出来。
AGAIN:
MOVAH,2
INT21H
ANDAL,11011111B
MOVDL,AL
MOVAH,1
INT21H
JMPAGAIN
14.要求从键盘接收一个十进制数字,然后找出它的前导数字和后继数字,并按相反的顺序显示输出。
MOVAH,2
INT21H
MOVCL,AL
INCAL
MOVDL,AL
MOVAH,1
INT21H
MOVDL,CL
MOVAH,1
INT21H
DECCL
MOVDL,CL
MOVAH,1
INT21H
15.设在变量X、Y、Z中存放有三个数,若三个数都不为0,则求出三个数之和存入U中,若有一个为0,则将其它两个单元也清零,编写此程序。
MOVAL,X
ANDAL,AL
JNZNEXT
ORAL,Y
JZDONE
CMPZ,0
JZDONE
MOVY,0
MOVZ,0
JMPDONE
NEXT:
CMPY,0
JNZNEXT1
CMPZ,0
JZDONE
MOVX,0
MOVZ,0
JMPDONE
NEXT1:
CMPZ,0
JNZNEXT2
MOVX,0
MOVY,0
JMPDONE
NEXT2:
ADDAL,Y
ADDAL,Z
MOVU,AL
DONE:
……
16.求出首地址为DATA的M个字节的无符号数组中最小奇数,并把它存放于DL中。
LEABX,DATA
MOVCX,M
MOVAH,01H
AGAIN:
MOVAL,[BX]
TESTAL,0FFH
JZNEXT
CMPAH,AL
JNCNEXT
MOVAH,AL
NEXT:
INCBX
LOOPAGAIN
MOVDL,AL
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第2章 指令系统及汇编语言程序设计答案 指令系统 汇编语言 程序设计 答案