第2章 指令系统及汇编语言程序设计答案Word格式文档下载.docx
- 文档编号:7721860
- 上传时间:2023-05-09
- 格式:DOCX
- 页数:18
- 大小:23.92KB
第2章 指令系统及汇编语言程序设计答案Word格式文档下载.docx
《第2章 指令系统及汇编语言程序设计答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《第2章 指令系统及汇编语言程序设计答案Word格式文档下载.docx(18页珍藏版)》请在冰点文库上搜索。
四、阅读程序
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位二进制数,统计其中奇数的个数,并将结果显示在屏幕上。
KEYDB61
KEY1DB?
KEY2DB61DUP(?
CODE,DS:
DATA
MOVDX,OFFSETKEY
MOVAH,0AH
INT21H
MOVAL,0
LEASI,KEY2
MOVCH,0
MOVCL,KEY1
LP0:
MOVBL,[SI]
TESTBL,01H
JZLP1
ADDAL,01H
DAA
LP1:
LOOPLP0
MOVBL,AL
MOVCL,4
SHRAL,CL
ADDAL,30H
MOVAH,02H
ANDBL,0FH
ADDBL,30H
MOVDL,BL
MOVAH,4CH
ENDSTART
3.已知有100字节的数据块存放在以5C10H:
2000H开始的存储区内,要求编写一个完整程序将数据移动到以5C10H:
2008H开始的存储区内。
参考程序
CODESEGMENT
ASSUMECS:
CODE
MAIN:
MOVAX,5C10H
MOVES,AX
MOVSI,2063H
MOVDI,206BH
STD
MOVCX,100
REPMOVSB
ENDMAIN
4.数组A包含100个互不相等的整数,数组B包含150个互不相等的整数,试编程实现将数组A和数组B都有的整数存放在数组C中。
DATSEGMENT
ADB100DUP(?
BDB150DUP(?
CDB150DUP(?
NDW00H
DATENDS
CODSEGMENT
COD,DS:
DAT,ES:
DAT
START:
MOVAX,DAT
MOVDS,AX
CLD
LEASI,B
MOVDX,150
LP0:
MOVCX,100
LEADI,A
MOVAL,[SI]
REPNZSCASB
JNZLP1
LEABX,C
ADDBX,N
MOV[BX],AL
INCN
LP1:
DECDX
JNZLP0
MOVAX,004CH
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功能调用)
BUFDB81
DB?
DB81DUP(?
)
MESGDB‘WHATISYOURNAME?
’,0AH,0DH
DB$
DATAENDS
STACKSEGMENTPARASTACK‘STACK’
DB100DUP(?
STACKENDS
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
LF:
MOVDL,0AH
MOVAH,02H
DISTR:
MOVDX,OFFSETBUF+2
MOVAH,09H
STARTENDP
7.编写程序找出BUF数据区中50个带符号数的最大值和最小值,并分别存入MAX和MIN单元。
参考程序如下:
BUFDB50DUP(?
MAXDB?
MINDB?
CONTEQU$-BUF
STACKSEGMENT
TPDB100DUP(?
DATA,SS:
STACK
MAINPROCFAR
START:
SUBAX,AX
LEABX,BUF
MOVCX,CONT-1
MOVAL,[BX]
MOVAH,[BX+1]
INCBX
CMPAH,AL
JGELOP1
XCHGAH,AL
CMPAH,[BX]
JGELIS
XCHGAH,[BX]
JMPLOP2
LIS:
CMPAL,[BX]
JLELOP2
XCHGAL,[BX]
LOP2:
LOOPLOP1
MOVMAX,AH
MOVMIN,AL
8.试编程实现从键盘接收N个(N≤50)8位二进制数,统计偶数的个数及偶数之和,并将统计的个数以十进制方式显示在屏幕上。
KEY1DB51
KEY2DB?
KEY3DB51DUP(?
ASSUMEDS:
DATA,CS:
MAIN:
MOVSI,OFFSETKEY1
LEABX,KEY3
XORDX,DX
MOVCL,KEY2
LP0:
TESTAL,01H
JNZLP
ADDBL,AL
MOVAL,BH
ADDAL,1
MOVBH,AL
LP:
SHLAL,4
MOVAH,01
ANDBH,0FH
MOVDL,30H
ADDDL,BH
MOVAH,1
9.以STRING起始的字符串的最大长度为80个字符,字符串的结束用字符$表示。
编写程序在该字符串中查找是否有空格符(ASCII码为20H),若有就将第一个空格字符串中的位置(00H~4FH)存入POST单元;
若无空格则将-1存入POST。
LEABX,STRING
MOVCX,80
NEXT1:
CMPAL,’$’
JZDONE
CMPAL,20H
JZNEXT
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
CMPAL,KEY
LOOPNEXT
MOVAL,KEY
MOV[SI],AL
INCBYTEPTRBUFFER
DONE:
………。
11.利用移位及数据循环指令完成将DHAL中的16位二进制乘以8的运算,结果仍存入DHAL中。
MOVCX,3
SHLAL,1
RCLDH,1
LOOPNEXT
12.分别从键盘上接收两长度相等的组数A和B,试完成两数组的求和任务,将结果存放在数组C中,并显示在屏幕上。
A0DB80
A1DB?
ADB80DUP(?
B0DB80
B1DB?
BDB80DUP(?
CDB80DUP(?
LEADX,A0
LEADX,B0
CLC
LEASI,A
LEABX,B
LEADI,C
MOVCL,A1
XORCH,CH
ADCAL,[BX]
MOV[DI],AL
INCDI
N0:
MOVDL,[DI]
SHLDL,4
ADDDL,30H
CMPDL,39H
JNCN1
ADDDL,07H
N1:
MOVAH,01H
AND[DI],0FH
JNCN2
N2:
LOOPN0
13.编写程序,将键盘输入的小写字母用大写字母显示出来。
AGAIN:
MOVAH,2
ANDAL,11011111B
JMPAGAIN
14.要求从键盘接收一个十进制数字,然后找出它的前导数字和后继数字,并按相反的顺序显示输出。
MOVAH,2
MOVCL,AL
INCAL
MOVDL,CL
DECCL
15.设在变量X、Y、Z中存放有三个数,若三个数都不为0,则求出三个数之和存入U中,若有一个为0,则将其它两个单元也清零,编写此程序。
MOVAL,X
ANDAL,AL
JNZNEXT
ORAL,Y
CMPZ,0
MOVY,0
MOVZ,0
CMPY,0
JNZNEXT1
MOVX,0
JNZNEXT2
NEXT2:
ADDAL,Y
ADDAL,Z
MOVU,AL
16.求出首地址为DATA的M个字节的无符号数组中最小奇数,并把它存放于DL中。
LEABX,DATA
MOVCX,M
AGAIN:
TESTAL,0FFH
JNCNEXT
MOVAH,AL
NEXT:
LOOPAGAIN
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第2章 指令系统及汇编语言程序设计答案 指令系统 汇编语言 程序设计 答案