汇编语言课程实验1_第1页
汇编语言课程实验1_第2页
汇编语言课程实验1_第3页
汇编语言课程实验1_第4页
汇编语言课程实验1_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

汇编语言第一次

实验报告9910

软学号099074140姓名陈浩指导教师陆勤安徽工业大学实验一显示AL寄存器中的两位十六进制、程序流程图、程序源代码movch,2moval,27hmovbl,alagain:movcl,4rolbl,clmovdl,blanddl,0fhadddl,30hcmpdl,3ahjlprintadddl,7hprint:movah,2int21hdecchjnzagain三、DEBUG调试验五循环程序实验一、实验目的:1、掌握循环程序的设计方法。2、 进一步熟悉利用DEBUG程序修改参数的方法,并检查和验证结果的正确性。3、 学会针对不同的问题,选用不同的组织循环的方法。二、实验内容:编写一个程序,显示AL寄存器中的两位十六进制数。三、编程提示:利用DOS功能调用INT21H的1号功能从键盘输入字符和2号功能在显示器上显示一个字符。四、实验报告:1、 程序说明。说明程序的功能、结构。2、 调试说明。包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。3、 画出程序框图。4、 写出源程序清单和执行结果。 实验报告系 班级 同组者 系 班级 同组者 指导教师 1、 程序说明。程序名:disphex.asm。功能:显示AL寄存器中的两位十六进制数。如当键盘输入a时,AL寄存器的保存的值为61H,故输出61H。2、2、调试说明。用EDIT编写源程序,保存为disphex.asm;用MASM编译源程序,生成目标文件:disphex.obj;用LINK链接上一步的目标文件,生成可执行文件:disphex.exe。在编写该程序时遇到了一个较难的问题,就是如何输出AL寄存器中的十六进制数,因为一般情况下直接调用2号功能调用会显示出该十六进制数对应的ASC码,故需要把十六进制数逐位的输出。在输出时还要判别是数字还是字母,再分别做处理。3、 画出程序框图。4、写出源程序清单和执行结果。程序清单: next1:adddl,30hcodesegment movah,2hint21h;showhigherbitpopaxmovdl,alanddl,0fhassumecs:codestart:again:movah,1int21hmoval,3ehcmpal,'Q'jeexitpushaxmovch,almovdl,3ahmovah,2hint21h ;show:movcl,4movdl,chshrdl,clcmpdl,9hjbenext]adddl,7h执行结果:实验六分支程序实验一、实验目的:1、掌握分支程序的设计方法。2、掌握利用DEBUG修改参数、检查结果的方法。3、掌握汇编语言源程序的编辑、汇编、连接及调试过程。二、实验内容:编写一个程序,判别键盘上输入的字符;若是1~9字符,则显示之;若是A~Z或a~z字符,则显示'c';若是回车字符<CR>(其ASCII码为ODH),则结束程序;若是其它程序则不显示,继续等待新的字符输入。三、编程提示:利用DOS功能调用INT21H的1号功能从键盘输入字符和2号功能在显示器上显示一个字符。四、实验报告:1、 程序说明。说明程序的功能、结构。2、 调试说明。包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。3、 画出程序框图。4、 写出源程序清单和执行结果。 实验报告系 班级 学号 姓名 同组者 指导教师 1、 程序说明。程序名:dispkey.asm。功能:判别键盘上输入的字符;若是1~9字符,则显示之;若是A~Z或a〜z字符,则显示'c';若是回车字符vCR>(其ASCII码为ODH),则结束程序;若是其它程序则不显示,继续等待新的字符输入。2、 调试说明。(1) 用EDIT编写源程序,保存为dispkey.asm;(2) 用MASM编译源程序,生成目标文件:dispkey.obj;(3) 用LINK链接上一步的目标文件,生成可执行文件:dispkey.exe。3、 画出程序框图。4、 写出源程序清单和执行结果。程序清单:

;dispkey・asmdispc:codesegmentmovdl,*c*;showcassumecs:codemovah,2start:int21hmovah,1movdl,20hint21hint21hcmpal,0dhnext:jzexitjmpstartcmpal,'0*chrdn:jbnextcmpal,61h;cmpacmpal,'9'jbnextjacharupcmpal,7ah;cmpzmovdl,aljanextmovah,2jmpdispcint21hexit:movdl,20hmovah,4chint21hint21hjmpstartcodeendscharup:endstartcmpal,41hjbnextcmpal,5ah;cmpZjachrdn执行结果:实验七统计不同成绩段学生的人数一、实验目的:1、掌握分支、循环、子程序调用、DOS功能调用等基本的程序结构。2、掌握综合程序的编制及调试方法。二、实验内容:设有十个学生成绩分别是76,69,84,90,73,88,99,63,100和80分。试编制一个子程序,统计低于60分,60〜69分,70〜79分,80〜89分,90〜99分和100分的人数,并输出显示统计结果。三、编程提示:1、 成绩分等部分采用分支结构,统计所有成绩则用循环结构完成,显示统计结果采用DOS功能调用。2、 统计学生成绩和显示统计结果两部分内容用子程序结构来完成。四、实验报告:1、 程序说明。说明程序的功能、结构。2、 调试说明。包括上机调试的情况、上机调试步骤、调试所遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。3、 画出程序框图。4、 写出源程序清单和执行结果。 实验报告系 班级 学号 姓名 同组者 指导教师

1、 程序说明。程序名称:statiscore.asm。功能:统计各分数段的人数,并输出统计结果。2、 调试说明。用EDIT编写源程序,保存为statiscore.asm;用MASM编译源程序,生成目标文件:statiscore.obj;用LINK链接上一步的目标文件,生成可执行文件:statiscore.exe。由于这道题要用子程序设计,所以考虑到要如何传递参数和如何保存与恢复寄存器的值花了一些时间。还有在内存寻址方面也遇到了不少问题。3、 画出程序框图。从内存取一个成绩在相应分数段r统计此分数段人数理显示各分数段人数退出4、写出源程序清单和执行结果。;统计不同成绩段学生的人数datasegmentscoredb76,69,84,90,73,88,99,63,100,80a2fdb6dup(O)dataendscodesegmentassumeds:data,cs:codestart:movax,datamovds,axleasi,scoreleabx,a2fcallstatiscorecalldisplaymovax,4c00hint21h;子程序名:statiscore;功能描述:统计学生成绩;入口和出口参数:ds,si,score;调用注意事项和说明等:寄存器的恢复statiscoreprocpushdspushsipushaxpushbxpushcxmovcx,10again:lodsbcmpal,60jlfcmpal,70;子程序名:displayjle;功能描述:显示统计结果cmpal,80;入口和出口参数:bx,si,a2fjld;调用注意事项和说明等:寄存器的恢复12displayprocpushcxcmpal,90jlccmpal,100jlbincbyteptr[bx]jmpnextf:incbyteptr[bx+5]jmpnexte:incbyteptr[bx+4]jmpnextd:incbyteptr[bx+3]jmpnextc:incbyteptr[bx+2]jmpnextb:incbyteptr[bx+1]jmpnextnext:loopagainpopcxpopbxpopaxpopsipopdsretstatiscoreendp学这门课的体会和意见通过这门课的学习,让我对汇编语言有一定的了解,即汇编语言相对机器语言而言要好记好用,但远不如高级语言方便、实用,而且编写同样的程序,使用汇编语言比使用高级语言花费的时间更多,可读性和可移植性较差,调试和维护更困难。但汇编语言也有它优秀的地方,即它的执行速度快,且相对般的高级语言占用的内存要小。另外,汇编语言的魅力就是直接控制硬件。总之,汇编语言存在很多的弱点,但它具有一些高级语言所不具备的突出优点,所以我觉得它是一门不错的程序设计语言,它也让我对计算机具体的工作原理有一些了解,虽然目前还不是很深。我想以后如果我从事程序员工作,对汇编的应用是少不了的。对于用任何一门高级语言写的程序,如果我们把它研究到汇编级别,从汇编层面看机器是如何运行的,那会对编写高质量的程序会有很大的帮助。我感觉如果要当一位编程高手,一定要从汇编语言开始!体会和意见体会:在做实验之前,我有很多的指令不熟悉,不少指令都不会用,通过做实验,我对这些指令更加熟悉,用起来更加熟练。有很多问题,不通过做实验,可能永远也不会知道。例如:在DOS功能调用INT21H的几种功能时会改变al当中的值,这个问题,我也是在做实验时,通过debug调试时发现的,以前我一直没有意识到这个问题。也许很多知识我们也知道,当在真正解决问题时,不一定能够想到。只有通过做实验,我才对很多知识有了更深的认识。在做实验时,我也碰到很多问题,正是通过分析这些问题,解决这些问题,我才逐渐真正掌握了某些知识。以前看书的时候,我感觉很多知识

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论