《微机原理和应用》实验报告Word文档下载推荐.docx
《《微机原理和应用》实验报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《《微机原理和应用》实验报告Word文档下载推荐.docx(10页珍藏版)》请在冰豆网上搜索。
2.学会针对不同的问题,选用不同的组织循环的方法;
3.进一步熟悉利用DEBUG程序、CODEVIEW调试程序的方法,并检查和验证结果的正确性。
二、实验内容
1.已知字数组定义如下:
ARRAYDW12,78,55,4,125,96
MAXDW?
编制程序求出该ARRAY数组中的最大数放入MAX单元。
datasegment
arraydw12,78,55,4,125,96
maxdw?
dataends
codesegment
assumecs:
code,ds:
data
start:
movax,data
movds,ax
movsi,0
movax,array[si]
movcx,5
again:
addsi,2
deccx
jcxzexit
cmpax,array[si]
jaagain
jmpagain
exit:
movmax,ax
movah,02h
int21h
movah,4ch
codeends
endstart
2.预留字符串口令,输入口令串与预留密码串比较。
若匹配则显示“MATCH!
CONGRATULATION”,否则显示“NOMATCH!
”,并让用户重新输入,程序能对口令进行测试,但测试次数最多3次,若3次输入密码皆错,给出相应的提示信息,程序退出。
passworddb'
123456'
inputdb20,?
20dup(?
)
countequ6
str1db0dh,0ah,'
match!
congratulation$'
str2db0dh,0ah,'
nomatch!
pleaseinputagain:
$'
str3db0dh,0ah,'
pleaseintoutyoupassword:
str4db0dh,0ah,'
wrong3times,programwillbeover$'
movdi,3
begin:
decdi
leadx,str3
movah,09h
leadx,input
movah,0ah
moval,input[si+1]
cmpal,count
jnzoutput1
movcx,count
moval,password[si]
movbl,input[si+2]
cmpal,bl
incsi
loopagain
jmpoutput2
output1:
leadx,str2
movah,09
cmpdi,0
jnzbegin
jmpaa
output2:
leadx,str1
jmpexit
aa:
leadx,str4
movax,9999h
a:
movcx,9999h
b:
loopb
decax
jnza
3.有一个首地址为NUM的N字无序无符号整数数组,编制程序采用选择排序法使该数组中的数按照从小到大的次序排序输出。
arraydw22,31,10,5,1,66,136,99
mainprocfar
movdi,0
movsi,di
next:
movax,array[di]
cmpsi,16
jaexit
jbenext
xchgax,array[si]
movarray[di],ax
jmpnext
adddi,2
cmpdi,16
jbagain
calloutput
mainendp
outputprocnear
pushax
pushbx
pushcx
pushdx
s0:
movax,array[bx]
movcx,sp
s1:
movdx,0
movdi,10
divdi
cmpax,0
jas1
s2:
popax
addax,30h
movdl,al
cmpsp,cx
jbs2
addbx,2
movdx,'
'
cmpbx,15
jbes0
popdx
popcx
popbx
ret
outputendp
4.设有一段英文,其字符变量名为ENG,并以$字符结束。
试编写一程序,统计其中单词的个数,并查出单词SUN在该文中的出现次数,并以格式“SUN:
×
”显示出次数。
stasegmentstack
dw40hdup(?
toplabelword
staends
datareasegment
ENGdb'
IALWAYSWATCHTHENBAGAMES.ESPECIALLYISUPPORTFORTHESUNTEAM$'
totaldw?
numdb'
SUN:
datareaends
codesegment
assumeds:
datarea,ss:
sta,cs:
code
mainprocfar
movax,sta
movss,ax
leasp,top
movax,datarea
xorbx,bx
xorax,ax
l0:
moval,ENG[si]
cmpal,'
jeexit
S'
jnegoback
U'
incsi
N'
incbx
jmpl0
goback:
exit:
movtotal,bx
leacx,num
movdx,cx
movcx,4
movbx,total
l11:
pushcx
movcl,4
rolbx,cl
moval,bl
andal,0fh
cmpal,0
jbl10
cmpal,9
jnaright
addal,7
right:
addal,30h
movah,2
loopl11
l10:
mainendp
codeends
endmain
三、预习要求
四、编写完整的程序代码
五、思考题
1.根据实验要求写出运行后正确无误的MASM、LINK和DEBUG命令格式。
2.写出程序的数据段、代码段的位置和大小