《微机基本原理及其应用实验报告.doc》由会员分享,可在线阅读,更多相关《微机基本原理及其应用实验报告.doc(12页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、+*中国石油大学(华东)现代远程教育实验报告课程名称:微机原理及应用实验名称:循环程序设计实验形式:在线模拟+现场实践提交形式:在线提交实验报告学生姓名: 褚东 学 号:1796414800002 年级专业层次:17电气自动化技术 高起专 学习中心: 山东枣庄函授站(新) 提交时间: 2018 年 7月 10 日一、实验目的1掌握单重循环及多重循环的程序设计方法;2学会针对不同的问题,选用不同的组织循环的方法;3进一步熟悉利用DEBUG程序、CODEVIEW调试程序的方法,并检查和验证结果的正确性。二 、实验内容1. 已知字数组定义如下:ARRAY DW 12,78,55,4,125,96 M
2、AX DW ? 编制程序求出该ARRAY数组中的最大数放入MAX单元。data segmentarraydw12,78,55,4,125,96maxdw?dataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,axmovsi,0movax,arraysimovcx,5again:addsi,2deccxjcxzexitcmpax,arraysijaagainmovax,arraysijmpagainexit:movmax,axmovah,02hint21hmovah,4chint21hcodeendsendstart 2. 预
3、留字符串口令,输入口令串与预留密码串比较。若匹配则显示“MATCH!CONGRATULATION”,否则显示“NOMATCH!”,并让用户重新输入,程序能对口令进行测试,但测试次数最多3次,若3次输入密码皆错,给出相应的提示信息,程序退出。data segmentpassworddb123456inputdb20,?,20 dup(?)countequ6str1db0dh,0ah,match!congratulation$str2db0dh,0ah,no match!please input again:$str3db0dh,0ah,please intout you password:$st
4、r4db0dh,0ah,wrong 3 times,program will be over$data endscodesegmentassumecs:code,ds:datastart:movax,datamovds,axmovdi,3begin:decdileadx,str3movah,09hint21hleadx,inputmovah,0ahint21hmovsi,0moval,inputsi+1cmpal,countjnzoutput1movsi,0movcx,countagain:moval,passwordsimovbl,inputsi+2cmpal,bljnzoutput1inc
5、siloopagainjmpoutput2output1:leadx,str2movah,09int21hcmpdi,0jnzbeginjmpaaoutput2:leadx,str1movah,09int21hjmpexitaa:leadx,str4movah,09int21hmovax,9999ha:movcx,9999hb:loopbdecaxjnzaexit:movah,4chint21hcodeendsendstart 3.有一个首地址为NUM的N字无序无符号整数数组,编制程序采用选择排序法使该数组中的数按照从小到大的次序排序输出。data segmentarraydw22,31,10
6、,5,1,66,136,99data endscodesegmentmainprocfarassumecs:code,ds:datastart:movax,datamovds,axmovdi,0again:movsi,dinext:movax,arraydiaddsi,2cmpsi,16jaexitcmpax,arraysijbenextxchgax,arraysimovarraydi,axjmpnextexit:adddi,2cmpdi,16jbagaincalloutputmovah,4chint21hmainendpoutputprocnearpushaxpushbxpushcxpush
7、dxmovdi,0s0:movax,arraybxmovcx,sps1:movdx,0movdi,10divdipushdxcmpax,0jas1s2:popaxaddax,30hmovdl,almovah,02hint21hcmpsp,cxjbs2addbx,2movdx,movah,02hint21hcmpbx,15jbes0popdxpopcxpopbxpopaxretoutputendpcodeendsendstart 4.设有一段英文,其字符变量名为ENG,并以$字符结束。试编写一程序,统计其中单词的个数,并查出单词SUN在该文中的出现次数,并以格式“SUN:”显示出次数。sta s
8、egment stack dw 40h dup(?) top label word sta endsdatarea segment ENG db I ALWAYS WATCH THE NBA GAMES .ESPECIALLY I SUPPORT FOR THE SUN TEAM$ total dw ? num db SUN:$ datarea ends code segment assume ds:datarea,ss:sta,cs:code main proc far mov ax,sta mov ss,ax lea sp,top mov ax,datarea mov ds,ax xor
9、bx,bx xor ax,ax mov si,0 l0: mov al,ENGsi cmp al,$ je exit cmp al,S jne goback inc si mov al,ENGsi cmp al,U jne goback inc si mov al,ENGsi cmp al,N jne goback inc bx inc si jmp l0 goback: inc si jmp l0 exit: mov total,bx mov ah,09h lea cx,num mov dx,cx int 21h mov cx,4 mov bx,total l11:push cx mov c
10、l,4 rol bx,cl push bx mov al,bl and al,0fh cmp al,0 jb l10 cmp al,9 jna right add al,7 right: add al,30h mov dl,al mov ah,2 int 21h pop bx pop cx loop l11 l10: mov ah,4ch int 21h main endp code ends end main三、 预习要求1掌握单重循环及多重循环的程序设计方法;2学会针对不同的问题,选用不同的组织循环的方法;3进一步熟悉利用DEBUG程序、CODEVIEW调试程序的方法,并检查和验证结果的正确性。四、编写完整的程序代码五、思考题1根据实验要求写出运行后正确无误的MASM、LINK和DEBUG命令格式。2写出程序的数据段、代码段的位置和大小