微机原理与汇编语言实验报告.doc

微机原理与汇编语言实验报告.doc

ID:58000584

大小:47.02 KB

页数:9页

时间:2020-04-06

微机原理与汇编语言实验报告.doc_第1页
微机原理与汇编语言实验报告.doc_第2页
微机原理与汇编语言实验报告.doc_第3页
微机原理与汇编语言实验报告.doc_第4页
微机原理与汇编语言实验报告.doc_第5页
资源描述:

《微机原理与汇编语言实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、微机原理与汇编语言实验报告学号:********班级:*****姓名:*****指导教师:*****一.实验目的 1.通过上机实验进一步熟悉并掌握汇编语言的指令系统和寻址方式;2.熟悉汇编语言程序上机的流程,以及与实验有关的系统软件(如编辑程序、汇编程序、连接程序和调试程序等)3.学习汇编程序设计的基本方法和技能,熟练掌握用汇编语言设计、编写、调试和运行程序的方法4.能够独自编写,调试,并成功运行一个完整的程序。二.实验内容与步骤1.掌握汇编语言程序上机过程首先,新建文本文档后将扩展名改为.ASM,这是汇编语言源

2、程序的文件格式,以记事本形式打开后在其中键入所编写的程序。第一次题目是在屏幕上显示一串字符串,在老师的指导下,编写的程序如下:datasegmentnotedb'hello','$'dataendscodesegmentmainprocfarassumecs:code,ds:data,es:datastart:pushdssubax,axpushaxmovax,datamovds,axmoves,axmovah,09hleadx,noteint21hmainendpcodeendsendstart之后,要进行编译

3、和运行。源程序经过翻译程序成为机器能够识别的目标程序,目标程序再经过连接程序连接后转换成在机器上可执行的程序。基本流程图如下:Xll.EXEXll.OBJXll.ASMMASM汇编程序LINK连接程序在编译的过程中,程序查出的主要是语法上的错误,如果有错,则不能通过汇编,要纠错后重新汇编直到无错为止。最后,生成的.EXE文件即为可执行文件,从磁盘调入内存运行,得到运行结果。上述程序的运行结果为在屏幕上显示出“hello”。2.编程完成任意两个两位数的加法运算编程任务的基本要求为:从键盘输入任意两个两位数相加,将结

4、果显示在屏幕上。刚开始拿到题目后,头脑里是比较混乱的。经过与同学的探讨之后,我们大概确定出要完成整个功能,需经过以下过程:将输入的ASCII码与十进制数值进行转换,并保存在寄存器中;通过调用程序将两个数相加,并将结果保存;将结果显示在屏幕上。虽然有一个基本的思路,但还是没有办法下手敲代码,于是在网上查找有关资料,网上的一些讲解和实例也给我们提供了一些启发。整个过程通过主程序调用子程序来完成,即如下格式:CALL过程名RET过程以语句PROC开头,用语句ENDP结束。所以我理解这和我们学过的C++编程里调用函数是相

5、似的,在C++中,首先将函数定义,而后在主程序中调用这些函数完成运算,而汇编语言中是定义子程序的功能,在主程序中调用这些功能进行运算。之后,我们开始尝试写代码,但仍然是参考网上的一些实例来进行。首先,数据段的定义:datasegmentindatadw2dup(?)outdatadw1dup(?)notein1db'pleaseinputthefirstdecimalnumber(0-99):$'notein2db'pleaseinputtheseconddecimalnumber(0-99):$'noteout

6、db'theresultofadditionis:$'notewarndb'warning:wrongchar!$'noteagaindb'pleaseinputagain:$'dataendsshowmacroaddrmovah,9hleadx,addrint21hendm这部分定义了在屏幕上现实的提示和输入数值的位数。值得一提的是宏定义这一部分:show为宏名,之后的三行代码是对9号功能的调用,即显示以$结尾的字符串,经此定义后,就可以在源程序中调用宏,只需在需要复制宏体的地方写宏的名字show即可。以上部分

7、为第二次的实验过程,最终的程序没有写出来,但还是有一些收获的。第一,是将这个运算的基本过程理解了,特别是对于主程序调用子程序的方式有了更深一步的认识,将其类比到C++语言中更有利于学习,所以各种编程语言应该都是有相通之处的。第二,了解了宏指令的定义和调用,老师课上是讲解过的,但当时没有特别注意,现在自己写代码时才意识到这个问题。第三,自己写代码时才注意到基础知识的不牢固,通过这一过程巩固一下基本知识也算一个收获吧。第三次实验课,老师把完整的代码展示给我们并仔细的讲解了一遍。经过老师的讲解,我们对整个运算过程都有了

8、比较清晰的理解,但再一次自己动手的时候又陷入昨天一样的困境,无从下手,只得根据网上的实例和老师的代码将过程基本还原,第二部分代码如下:codesegmentassumecs:code,ds:data,es:datamainprocfarstart:pushdssubax,axpushaxmovax,datamovds,axmoves,axshownotein1callcr

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。