资源描述:
《汇编实验报告:汇编程序的汇编及运行,顺序程序设计,分支循环程序设计,子程序设计,dos功能调用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、福建农林大学东方学院信息工程类实验报告课程名称:汇编语言姓名:廖少兵系:计算机系专业:电子信息工程年级:2010学号:1050302103指导教师:职称:2012年6月17日福建农林大学东方学院信息工程类实验报告系:计算机系专业:电子信息工程年级:10姓名:廖少兵学号:1050302103实验课程:汇编语言实验室号:_______实验设备号:实验时间:指导教师签字:成绩:实验一汇编程序的汇编及运行1.实验目的和要求1、熟悉汇编程序的汇编、连接、执行过程2、生成LST文件,查看LST文件3、生成OBJ文件,修改语法错误4、生成EXE文件5、执行2.实验的原理和主要
2、仪器设备IBM—PC机及其兼容机实验的软件环境是:操作系统:DOS2.0以上;调试程序:DEBUG.COM;文本编程程序:EDIT.EXE、WPS.EXE;宏汇编程序:MASM.EXE(或ASM.EXE);连接装配程序:LINK.EXE;交叉引用程序:CREF.EXE(可有可无)。3.实验内容及实验数据记录1、将数据段输入,取名1.txt,保存在MASM文件夹下。生成LST文件,(不必连接、运行)用EDIT查看1.LST文件。试回答:DA1,DA2的偏移量分别是多少?COUNT的值为多少?DATASEGMENTORG20HNUM1=8NUM2=NUM1+10HD
3、A1DB‘IBMPC’DA2DB0AH,0DHCOUNTEQU$-DA1DATAENDSEND2、输入有错误的文件,修改错误语句。(MASM没有出现错误即可。不必连接、运行。)DATASEGMENTVAR1DB0,25,ODH,300VAR2DB12H,A4H,6BHVAR3DB’ABCDEF’VAR4DW1234H,5678HVAR5DW10HDUP(?)DATAENDSCODESEGMENTASSUMECS:CODE,DE:DATABEINGMOVAX,DATAMOVDS,AXLEASI,VAR5MOVBX,OFFSETVAR2MOV[SI],0ABHMOV
4、AX,VAR1+2MOV[BX],[SI]MOVVAR5+4,VAR4MOVAH,4CHINT21HCODEENDSENDSTART2、输入正确的程序,汇编、连接、运行STACKSSEGMENTSTACKDW128DUP(?)STACKSENDSDATASSEGMENTSTRINGDB‘WELCOME!’,13,10,‘$’DATASENDSCODESSEGMENTASSUMECS:CODES,DS:DATASSTART:MOVAX,DATASMOVDS,AXLEADX,STRINGMOVAH,9INT21HMOVAH,4CHINT21HCODESENDSEND
5、START4.操作方法及实验步骤编写各代码并存储为源程序asm文件,对其进行汇编、连接。1、Dos进入masm目录2、masm文件名(对文件进行编译)3、link文件名(对生成OBJ目标文件进行连接)4、由dos加载连接后生成的可执行文件来执行程序5.实验数据处理和分析(1)(2)如图输入代码编译未能通过,提示出错有9处其中2、3、9行均为符号未定义错误,其中修改ODH中O在十六进制中未定义(不存在)、而A4H以字母开头必须添上数字0)、寄存器中没有DE故而修改之。第十行我们暂且放着,第十四行提示说操作数必须指定大小空间由代码可知,立即数ABH传给内存单元时,必
6、须指定内存大小空间,所以可修改该句为MOVBYTEPTR0ABH。而15行的错误提示与17行一样均不能找到段寄存器所分配的地址,15行从代码格式上看除了位数不一致外并不是如是的所提错误,而17行是错在两个立即数作为MOV指令的操作数,我们先跳过。下面16行的错误是非法错误的操作数格式,这里两个操作数均是内存单元里的数据,可修改【BX】为BX。由21行错误可知START未定义,之前程序入口中出现了标识符BEING,因此这里改为BEING。同时可知刚刚第十行错误就显而易见了,标识的格式错了。应该为BEING:。部分修改后代码如下:重新编译得如下错误提示第2行中300
7、超出了所分配的看空间字节大小,这里把它改为30,比较之前的出错提示17行和15行的均改变了,这才具体指出了出错原因。这里15行我们就修改AX为AL,匹配两操作数位数。17行中我们为不改变原意可以用如下指令替代:MOVCX,VAR4;MOVVAR5+4,CX;(3)编辑源程序后编译未能通过,提示如图:我们打开源程序看到如图所示:我们之前定义的是DATAS而不是DATAX,修改之。编译通过,我们link进行连接如图:已生成可执行文件3.exe。6.实验结果(1)编辑源程序后编译生成list文件提示时输入文件名得到1.list文件。打开如图得知:DA1、DA2的偏移量
8、分别是0020H和002