首页 实验2汇编语言程序上机过程

实验2汇编语言程序上机过程

举报
开通vip

实验2汇编语言程序上机过程-.z.大学汇编语言程序设计实验报告学生**:学号:专业班级:实验类型:□验证□综合□设计□创新实验日期:实验成绩:实验2汇编语言程序上机过程一.实验目的熟练掌握汇编语言程序的编辑、调试和运行的过程和方法。了解汇编语言程序的汇编、运行环境。二.实验容1.掌握常用的编辑工具软件〔如WORD、EDIT〕、MASM和LINK的使用;2.伪指令:SEGMENT,ENDS,ASSUME,END,OFFSET,DUP;3.利用的INT21H的1号功能实现键盘输入的方法;三.实验要求1.仔细阅读有关伪指令SEGMENT,ENDS...

实验2汇编语言程序上机过程
-.z.大学汇编语言程序设计实验报告学生**:学号:专业班级:实验类型:□验证□综合□设计□创新实验日期:实验成绩:实验2汇编语言程序上机过程一.实验目的熟练掌握汇编语言程序的编辑、调试和运行的过程和方法。了解汇编语言程序的汇编、运行环境。二.实验容1.掌握常用的编辑工具软件〔如WORD、EDIT〕、MASM和LINK的使用;2.伪指令:SEGMENT,ENDS,ASSUME,END,OFFSET,DUP;3.利用的INT21H的1号功能实现键盘输入的方法;三.实验 要求 对教师党员的评价套管和固井爆破片与爆破装置仓库管理基本要求三甲医院都需要复审吗 1.仔细阅读有关伪指令SEGMENT,ENDS,ASSUME,END,OFFSET,DUP的容;2.了解利用的INT21H的1号功能实现键盘输入的方法,了解.E*E文件和.文件的区别及用INT21H4C号功能返回系统的方法;3.阅读下面程序段。四.实验环境PC微机DOS操作系统或Windows操作系统MASM.E*E,LINK.E*E,DEBUG.或宏汇编集成环境五.实验步骤1、按步骤完成以下程序的编译、连接、运行及调试等过程:datasegmentmessagedb'Thisisasampleprogramofkeyboardanddisplay'db0dh,0ah,'Pleasestrikethekey!',0dh,0ah,'$'dataendsstacksegmentparastack'stack'db50dup(?)stackendscodesegmentassumecs:code,ds:data,ss:stackstart:mova*,datamovds,a*movd*,offsetmessagemovah,9int21hagain:movah,1int21hcmpal,1bhjee*itcmpal,61hjcdisplaycmpal,7ahjadisplayandal,11011111bdisplay:movdl,almovah,2int21hjmpagaine*it:movah,4chint21hcodeendsendstart实验步骤:1.用用文字编辑工具〔记事本或EDIT〕将源程序输入,其扩展名为.ASM。2.用MASM对源文件进展汇编,产生.OBJ文件和.LST文件。假设汇编时提示有错,用文字编辑工具修改源程序后重新汇编,直至通过。3.用TYPE命令显示1产生的.LST文件。4.用LINK将.OBJ文件连接成可执行的.E*E文件。5.在DOS状态下运行LINK产生的.E*E文件。即在屏幕上显示标题并提示你按键。每按一键在屏幕上显示二个一样的字符,但小写字母被改成大写。按ESC键可返回DOS。假设未出现预期结果,用DEBUG检查程序。6.将程序修改,使得用户键入除小写字母以外的其他字符〔除ESC键〕,输出提示信息“Illegalcharacterisstriked,Pleaseinputagain!〞,并要求重新输入。datasegmentmessagedb'thisisasampleprogramofkeyboardanddisplay'db0dh,0ah,'pleasestrikethekey!',0dh,0ah,'$'message2db'Illegalcharacterisstriked,Pleaseinputagain!'db0dh,0ah,'pleasestrikethekey!',0dh,0ah,'$'dataendsstacksegmentparastack'stack'db50dup(?)stackendscodesegmentassumecs:code,ds:data,ss:stackstart:mova*,datamovds,a*movd*,offsetmessagemovah,9int21hagain:movah,1int21hcmpal,1bhjee*it;如果输入是esc就退出cmpal,61hjcdisplay2;如果输入小于"a"cmpal,7ahjadisplay2;如果输入大于"z"andal,11011111bdisplay:movdl,al;直接输出movah,2int21hjmpagaindisplay2:mova*,data;如果不是小写字母输出“重新再输〞指令movds,a*movd*,offsetmessage2movah,9int21hjmpagaine*it:movah,4chint21hcodeendsendstart2.下面程序任务是完成查表求一个十以整数的平方,程序有错误,请进展纠正并调试运行。DATASEGMENTTABLEDB0,1,4,9,16,25,36,49,64,81HE*DW5;待查的整数RESULTDW?DATAENDSCDSEGMENTASSUMECS:CODE,DS:DATSTART:MOVA*,DATAMOVDS,A*MOVB*,TABLEMOVA*,HE*ADDB*,A*MOVA*,[B*]MOVRESULT,A*MOVAH,4CHINT21HCDENDSENDSTART实验步骤将该文件存成.asm文件,将其生成可执行文件。编译该程序,找出错误。并纠正。datasegmenttabledw0,1,4,9,16,25,36,49,64,81;“db〞应该改成“dw〞he*dw5;待查的整数resultdw?dataendscodesegment;“cd〞应该改成“code〞assumecs:code,ds:data;“dat〞应该改成“data〞start:mova*,datamovds,a*movb*,tablemova*,he*addb*,a*mova*,[b*]movresult,a*movah,4chint21hcodeends;“cd〞应该改成“code〞endstart连接、运行看程序是否能得到正确结果。假设不行,用Debug加载该可执行文件,单步调试,观察各存放器变化及RESULT单元的值。找出问题。重复汇编语言程序的上机过程,使程序能正确得到结果。修改源程序,选用换码指令*LAT完本钱程序一样的功能。datasegmenttabledb0,1,4,9,16,25,36,49,64,81;把“dw〞改成“db〞he*db5;待查的整数resultdb?dataendscodesegmentassumecs:code,ds:datastart:mova*,datamovds,a*leab*,table;把table地址给b*moval,he**lat;应用换码指令*LATmovresult,almovah,2int21hmovah,4chint21hcodeendsendstart曾经出现错误:经检查,是由于红色字体局部漏写导致程序陷入循环无法出来。补写上后成功运行。补充此程序的输入和输出功能。使得程序能任意输入数据,平方值也能以十进制显示在屏幕上。datasegmenttabledw0,1,4,9,16,25,36,49,64,81dataendsstacksegmentparastack'stack'db100dup(?)stackendscodesegmentassumecs:code,ds:data,ss:stackstart:mova*,datamovds,a*moves,a*begin:movah,1int21hcmpal,1bhjee*it;如果输入是ESC键则退出cmpal,30hjcbegincmpal,39hjabegin;如果输入值大于9小于0则重输subal,30h;输入值减去30h这样就变成了十进制的数字movb*,tablepushc*shlal,1movah,alincah*latmovcl,almoval,ah*latmovch,almova*,c*popc*callcr_lfcallout_a*callcr_lfjmpbegine*it:movah,4chint21hout_a*procnearpushb*movdl,0callout_ascmovbl,100divblmovdl,alcallout_ascmoval,ah*orah,ahmovbl,10divblmovdl,alcallout_ascmovdl,ahcallout_ascpopb*retout_a*endpout_ascprocnearadddl,30hcallout_dlretout_ascendpcr_lfprocnearmovdl,10callout_dlmovdl,13callout_dlretcr_lfendpout_dlprocnearpusha*movah,02hint21hpopa*retout_dlendpcodeendsendstart六.实验报告要求汇编,连接及调试时产生的错误,其原因及解决方法,要求你修改的程序的清单(修改后)和调试记录;各实验中的关键数据截图。七.简答题1.假设在源程序中把INT21H的'H'省去,会产生什么现象?从原来的int21h去掉h后就会变成int21,因为输入默认是10进制,不加h就会变成调用中断15h了。2.把INT21H中4CH号功能改为INT20H,行不行?不行,会出现程序无法响应的问题。八.实验小结1.了解了伪指令SEGMENT,ENDS,ASSUME,END,OFFSET,DUP的用法并且熟练应用2.了解利用的INT21H的1号功能实现键盘输入的方法,movah,1int21h了解输出显示输出的方法,movdl,*movah,2int21h了解用INT21H4C号功能返回系统的方法,movah,4chint21h3.知道了如何调试程序,当出现好几个错误的时候,很有可能是改掉前面一个错,接下来的错误都没有了,还有就是发现自己写的程序找不出问题时,可以参考书上的程序做个例,看看自己和书上的框架是不是错了还是怎样的错误。总之,当程序报错时,一定要很耐心的去修改,也可以和同伴互相交流讨论一下有可能出错的地方,相互学习改良。
本文档为【实验2汇编语言程序上机过程】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
阳光心态
在单位培训
格式:doc
大小:43KB
软件:Word
页数:7
分类:教育学
上传时间:2022-03-26
浏览量:0