11284030管猛汇编分析作业Word格式.docx
《11284030管猛汇编分析作业Word格式.docx》由会员分享,可在线阅读,更多相关《11284030管猛汇编分析作业Word格式.docx(21页珍藏版)》请在冰豆网上搜索。
JANEXT
INCN1
JMPCONT
NEXT:
INCN2
CONT:
INCSI
LOOPL
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
请回答:
(1)该程序完成什么功能?
分别统计BUF数字字符和非数字字符的个数
(2)该程序执行完后,N1和N2的内容各是多少?
N1=12,N2=15
2.现有程序如下:
BUFDB‘ER39*5867JgeewFGHYUO9385’
C=$-BUF
MOVAX,DATA
CMPAL,61H
CMPAL,7AH
SUBAL,20H
MOV[SI],AL
把BUF中的小写字母转换为大写字母
(2)该程序执行完后,BUF缓冲区的内容是什么?
程序执行完后BUF缓冲区的内容是:
ER39*5867JGEEWFGHYUO9385
3.现有程序如下:
BUFDB47H,0A4H,93H,38,-23,55H,251,0,78H
C=$-BUF
BUF1DBCDUP(0)
BUF2DBCDUP(0)
ASSUMECS:
CODE,DS:
START:
MOVAX,DATA
MOVDS,AX
MOVCX,C
LEASI,BUF
LEADI,BUF1
LEABX,BUF2
L:
MOVAL,[SI]
CMPAL,0
JGEP
MOV[BX],AL
INCBX
JMPNEXT
P:
MOV[DI],AL
INCDI
NEXT:
LOOPL
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
完成的功能是:
把以上9个数按大于等于0和小于0分成两组,大于等于0的放在BUF1里,小于0的放在BUF2里。
(2)该程序执行完后,BUF1和BUF2缓冲区的内容各是什么?
BUF1缓冲区内容:
47H,38,55H,0,78H
BUF2缓冲区内容:
0A4H,93H,-23,251
4.现有程序如下:
BUF1DB100DUP(?
)
BUF2DB200DUP(0)
START:
MOVCX,100
LEASI,BUF1
LEADI,BUF2+100
MOV[DI],AL
INCDI
MOV,AH,4CH
请回答:
把BUF1中100个字节内容送入BUF2中的后100个字节单元中
(2)如果将指令“LEADI,BUF2+100”改为“LEADI,BUF2”之后,程序执行完后的结果如何?
把BUF1中的100个字节内容送入BUF2中的前100个字节单元中
5.现有程序如下:
BUF2DB100DUP(0)
LEADI,BUF2
CMPAL,100
INCDI
把BUF1中大于等于100的数放到BUF2中
(2)如果将指令“JBNEXT”改为“JAENEXT”,则程序执行结果如何?
把BUF1中小于100的数放到BUF2中
6.现有程序如下:
SUMDW0
MOVAX,0
ADDAL,[SI]
ADCAH,0
MOVSUM,AX
求BUF1中所有数之和
(2)如果去掉指令“ADCAH,0”,则程序执行结果将如何?
出现溢出,高位字节丢失
7.现有程序如下:
BUF1DB32H,64H,72H,38H,68H,9AH,89H,0
CMP[SI],BYTEPTR0
JZNDO
JMPL
NDO:
求所有数的和sum
(2)程序执行完后,共执行了多少次相加的操作?
总共完成了7次相加
8.现有程序如下:
STACKSEGMENTSTACK‘STACK’
DW100DUP(0)
STACKENDS
BUFDB100DUP(0)
DATA,SS:
STACK
MOVAX,STACK
MOVSS,AX
LEADI,BUF
MOVAH,1
CMPAL,0DH
JZEXIT
CALLSTO
EXIT:
MOVBYTEPTR[DI],‘$’
LEADX,BUF
MOVAH,9
STOPROC
RET
STOENDP
(1)STO子程序完成的功能是什么?
把寄存器中的数字字符放到BUF中
(2)该程序完成的功能是什么?
键盘输入字符,把其中的数字字符放入buf中,并显示字符
9.阅读以下程序后回答问题。
DD2
DB0,l,2,3,4,5,6,7,8,9
…
LEASI,DD2
LEADI,DD2+1
MOVCX,5
LOP:
MOVAL,[SI]
XCHGAL,[DI]
MOV[SI],AL
ADDSI,2
ADDDI,2
DECCX
JNZLOP
回答:
(1)该程序段完成什么功能?
相邻的两个字节数据交换
(2)程序运行后,DD2开始的l0个字节数应是什么值?
1、0、3、2、5、4、7、6、9、8
10.现有程序如下:
STACKSEGMENTSTACK'
STACK'
DW20hDUP(0)
BUFDw1
CDB2
ASSUMECS:
DATA,SS:
START:
MOVDS,AX
MOVAX,STACK
MOVSS,AX
MOVBL,C
MOVSI,BUF
L1:
PUSHSI
CALLSUBP1
CALLSUBP2
POPSI
DECBL
JNZL1
MOVAH,4CH
SUBP1PROC
PUSHAX
PUSHDX
L2:
MOVDL,41H
MOVAH,2
DECSI
JNZL2
POPDX
POPAX
SUBP1ENDP
SUBP2PROC
MOVCX,8
L3:
MOVDL,'
*'
LOOPL3
MOVDL,0DH
MOVDL,0AH
SUBP2ENDP
(1)SUBP1子程序完成的功能是什么?
(2)SUBP2子程序完成的功能是什么?
输出8个’*’,并以回车换行
(3)该程序完成的功能是什么?
11.现有程序如下:
XDB0ABH
FLAGDB0
MOVDS,AX
MOVAL,X
CMPAL,0