参考借鉴《微机原理及应用》实验报告doc.docx
- 文档编号:3155656
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:10
- 大小:16.90KB
参考借鉴《微机原理及应用》实验报告doc.docx
《参考借鉴《微机原理及应用》实验报告doc.docx》由会员分享,可在线阅读,更多相关《参考借鉴《微机原理及应用》实验报告doc.docx(10页珍藏版)》请在冰点文库上搜索。
参考借鉴《微机原理及应用》实验报告doc
中国石油大学(华东)现代远程教育
实验报告
课程名称:
微机原理及应用
实验名称:
循环程序设计
实验形式:
在线模拟+现场实践
提交形式:
在线提交实验报告
学生姓名:
褚东学号:
1796414800002
年级专业层次:
17电气自动化技术高起专
学习中心:
山东枣庄函授站(新)
提交时间:
2018年7月10日
一、实验目的
1.掌握单重循环及多重循环的程序设计方法;
2.学会针对不同的问题,选用不同的组织循环的方法;
3.进一步熟悉利用DEBUG程序、CODEVIEW调试程序的方法,并检查和验证结果的正确性。
二、实验内容
1.已知字数组定义如下:
ARRARDW12,78,55,4,125,96
MARDW?
编制程序求出该ARRAR数组中的最大数放入MAR单元。
datasegment
arraRdw12,78,55,4,125,96
maRdw?
dataends
codesegment
assumecs:
code,ds:
data
start:
movaR,data
movds,aR
movsi,0
movaR,arraR[si]
movcR,5
again:
addsi,2
deccR
jcRzeRit
cmpaR,arraR[si]
jaagain
movaR,arraR[si]
jmpagain
eRit:
movmaR,aR
movah,02h
int21h
movah,4ch
int21h
codeends
endstart
2.预留字符串口令,输入口令串与预留密码串比较。
若匹配则显示“MATCH!
CONGRATULATION”,否则显示“NOMATCH!
”,并让用户重新输入,程序能对口令进行测试,但测试次数最多3次,若3次输入密码皆错,给出相应的提示信息,程序退出。
datasegment
passworddb'123456'
inputdb20,?
20dup(?
)
countequ6
str1db0dh,0ah,'match!
congratulation$'
str2db0dh,0ah,'nomatch!
pleaseinputagain:
$'
str3db0dh,0ah,'pleaseintoutRoupassword:
$'
str4db0dh,0ah,'wrong3times,programwillbeover$'
dataends
codesegment
assumecs:
code,ds:
data
start:
movaR,data
movds,aR
movdi,3
begin:
decdi
leadR,str3
movah,09h
int21h
leadR,input
movah,0ah
int21h
movsi,0
moval,input[si+1]
cmpal,count
jnzoutput1
movsi,0
movcR,count
again:
moval,password[si]
movbl,input[si+2]
cmpal,bl
jnzoutput1
incsi
loopagain
jmpoutput2
output1:
leadR,str2
movah,09
int21h
cmpdi,0
jnzbegin
jmpaa
output2:
leadR,str1
movah,09
int21h
jmpeRit
aa:
leadR,str4
movah,09
int21h
movaR,9999h
a:
movcR,9999h
b:
loopb
decaR
jnza
eRit:
movah,4ch
int21h
codeends
endstart
3.有一个首地址为NUM的N字无序无符号整数数组,编制程序采用选择排序法使该数组中的数按照从小到大的次序排序输出。
datasegment
arraRdw22,31,10,5,1,66,136,99
dataends
codesegment
mainprocfar
assumecs:
code,ds:
data
start:
movaR,data
movds,aR
movdi,0
again:
movsi,di
neRt:
movaR,arraR[di]
addsi,2
cmpsi,16
jaeRit
cmpaR,arraR[si]
jbeneRt
RchgaR,arraR[si]
movarraR[di],aR
jmpneRt
eRit:
adddi,2
cmpdi,16
jbagain
calloutput
movah,4ch
int21h
mainendp
outputprocnear
pushaR
pushbR
pushcR
pushdR
movdi,0
s0:
movaR,arraR[bR]
movcR,sp
s1:
movdR,0
movdi,10
divdi
pushdR
cmpaR,0
jas1
s2:
popaR
addaR,30h
movdl,al
movah,02h
int21h
cmpsp,cR
jbs2
addbR,2
movdR,','
movah,02h
int21h
cmpbR,15
jbes0
popdR
popcR
popbR
popaR
ret
outputendp
codeends
endstart
4.设有一段英文,其字符变量名为ENG,并以$字符结束。
试编写一程序,统计其中单词的个数,并查出单词SUN在该文中的出现次数,并以格式“SUN:
××××”显示出次数。
stasegmentstack
dw40hdup(?
)
toplabelword
staends
datareasegment
ENGdb'IALWARSWATCHTHENBAGAMES.ESPECIALLRISUPPORTFORTHESUNTEAM$'
totaldw?
numdb'SUN:
$'
datareaends
codesegment
assumeds:
datarea,ss:
sta,cs:
code
mainprocfar
movaR,sta
movss,aR
leasp,top
movaR,datarea
movds,aR
RorbR,bR
RoraR,aR
movsi,0
l0:
moval,ENG[si]
cmpal,'$'
jeeRit
cmpal,'S'
jnegoback
incsi
moval,ENG[si]
cmpal,'U'
jnegoback
incsi
moval,ENG[si]
cmpal,'N'
jnegoback
incbR
incsi
jmpl0
goback:
incsi
jmpl0
eRit:
movtotal,bR
movah,09h
leacR,num
movdR,cR
int21h
movcR,4
movbR,total
l11:
pushcR
movcl,4
rolbR,cl
pushbR
moval,bl
andal,0fh
cmpal,0
jbl10
cmpal,9
jnaright
addal,7
right:
addal,30h
movdl,al
movah,2
int21h
popbR
popcR
loopl11
l10:
movah,4ch
int21h
mainendp
codeends
endmain
三、预习要求
1.掌握单重循环及多重循环的程序设计方法;
2.学会针对不同的问题,选用不同的组织循环的方法;
3.进一步熟悉利用DEBUG程序、CODEVIEW调试程序的方法,并检查和验证结果的正确性。
四、编写完整的程序代码
五、思考题
1.根据实验要求写出运行后正确无误的MASM、LINK和DEBUG命令格式。
2.写出程序的数据段、代码段的位置和大小
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机原理及应用 参考 借鉴 微机 原理 应用 实验 报告 doc