资源描述:
《实验2 建立运行汇编语言源程序》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、实验2建立运行汇编语言程序实验目的:1.熟悉8088/8086的数据传送和算术运算指令的书写格式、功能。2.编写源程序,掌握汇编语言程序格式。3.掌握汇编、连接、运行汇编程序的全过程;使用DEBUG调试和运行汇编程序。实验内容:在硬盘E中建立自己的文件夹,以“班级姓名”命名(比如计科1111张三),实验文件以“实验次数-序号”命名,比如sy2-1.asm。1、有3个内存单元x,,yz,其中x=1234h,y=0c3f6h,z=10c5h,请编写源程序,计算x+2z-y,结果保存在z单元中,并用debug调试运行查看结果,观察标志位变化。2、写一个完整的源程序,
2、用DEBUG调试运行,查看运行结果。DATASEGMENT;定义数据段DATAAUGENDDD99251SUMDD?DATAENDS;请补充语句定义附加段EXTRA,将ADDEND赋值为双精度数-15962CODESEGMENT;定义代码段CODEASSUMECS:CODE,DS:DATA,ES:EXTRASTART:MOVAX,DATMOVDS,AX;请补充完成给ES赋值的语句,将EXTRA赋值给ES。;请补充进行加法运算的语句,把数据段DATA中的AUGEND和附加段EXTRA中的ADDEND相加,并把结果存放在DATA的SUM中。MOVAX,4C00HI
3、NT21HCODEENDSENDSTART3、完成实验教程第一章的内容。学习字符串处理指令(课本P75)和DOS显示字符串功能调用(课本P335),理解实验教程例题1.1的程序。实验报告要求:61、将程序1的调试运行查看结果的过程截图,并分析标志位值的变化情况。答:有进位,标志位CF由NC变为CY,与分析结果一致。源程序:DATASSEGMENTXDW1234HYDW0c3f6HZDW10C5HDATASENDSCODESSEGMENTASSUMECS:CODES,DS:DATASSTART:MOVAX,DATASMOVDS,AXMOVAX,XADDAX,ZA
4、DDAX,ZSUBAX,YMOVZ,AXMOVAH,4CHINT21HCODESENDSENDSTART62、分析一个完整的汇编语言源程序应由哪些部分组成?答:汇编语言源程序由语句序列构成,每条语句一般占一行;完整的汇编语言程序由段构成;一个汇编语言源程序可以包含若干个代码段、数据段、附加段或堆栈段,段与段之间的顺序可以随意排列;需要独立运行的程序必须包含一个代码段,并指示程序执行的起始点,一个程序只有一个起始点;所有可以执行语句必须位于某一个代码段内,说明性语句可以根据需要位于任一段内;通常,程序还需要一个堆栈段。6源程序:DATASSEGMENTAUGEN
5、DDD99251SUMDD?DATASENDSEXTRASEGMENTADDENDDD-15962EXTRAENDSCODESSEGMENTASSUMECS:CODES,DS:DATAS,ES:EXTRASTART:MOVAX,DATASMOVDS,AXMOVAX,EXTRAMOVES,AXMOVAX,wordptrAUGENDMOVDX,wordptrAUGEND+2ADDAX,wordptrADDENDADCDX,wordptrADDEND+2MOVwordptrSUM,AXMOVwordptrSUM+2,DXMOVAH,4CHINT21HCODESEND
6、SENDSTART662、总结汇编源程序从编写到执行的过程。写出用DEBUG调试并运行可执行文件的过程,如何查错?如何查看执行结果?答:1·汇编源程序从编写到执行的过程可概括为以下三个步骤:编写→编译连接→执行。①对源程序进行编译连接,使用汇编语言编译程序(MASM.EXE)对源程序文件中的源程序进行编译,产生目标文件——obj文件;②再用连接程序(LINK.EXE)对目标文件进行连接,生成可在操作系统中直接运行的可执行文件,可执行文件包含两部分内容:程序(从源程序中的汇编指令翻译过来的机器码)和数据(源程序中定义的数据)相关的描述信息(比如,程序有多大,要占
7、多少内存空间等);③操作系统依照可执行文件中的描述信息,将可执行文件中的机器码和数据加载入内存,并进行相关的初始化(比如:设置CS:IP指向第一条要执行的指令),然后由CPU执行程序。2·经汇编连接生成的可执行文件(.EXE文件),可以进入调试程序DEBUG中进行运行、调试,观察运行结果是否正确,操作方法如下:①带被调试文件启动DEBUG;②调入文件后,执行:G=0;则程序执行完成并提示ProgramTerminatednormally,③同时DEBUG将重新设置寄存器和变量等的初始值;如果要观察程序运行之后的结果,应该执行:G=0,断点地址。这里的断点地址应
8、该指向程序结束返回DOS之前,也就是如