汇编实验:汇编程序的汇编及运行_顺序程序设计_分支循环程序设计_子程序设计_dos功能调用 -

汇编实验:汇编程序的汇编及运行_顺序程序设计_分支循环程序设计_子程序设计_dos功能调用 -

ID:19384140

大小:1.27 MB

页数:78页

时间:2018-10-01

汇编实验:汇编程序的汇编及运行_顺序程序设计_分支循环程序设计_子程序设计_dos功能调用 -_第1页
汇编实验:汇编程序的汇编及运行_顺序程序设计_分支循环程序设计_子程序设计_dos功能调用 -_第2页
汇编实验:汇编程序的汇编及运行_顺序程序设计_分支循环程序设计_子程序设计_dos功能调用 -_第3页
汇编实验:汇编程序的汇编及运行_顺序程序设计_分支循环程序设计_子程序设计_dos功能调用 -_第4页
汇编实验:汇编程序的汇编及运行_顺序程序设计_分支循环程序设计_子程序设计_dos功能调用 -_第5页
资源描述:

《汇编实验:汇编程序的汇编及运行_顺序程序设计_分支循环程序设计_子程序设计_dos功能调用 -》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验一汇编程序的汇编及运行1.实验目的和要求1、熟悉汇编程序的汇编、连接、执行过程2、生成LST文件,查看LST文件3、生成OBJ文件,修改语法错误4、生成EXE文件5、执行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文件,(不必连接

2、、运行)用EDIT查看1.LST文件。试回答:DA1,DA2的偏移量分别是多少?COUNT的值为多少?DATASEGMENTORG20HNUM1=8NUM2=NUM1+10HDA1DB‘IBMPC’DA2DB0AH,0DHCOUNTEQU$-DA1DATAENDSEND2、输入有错误的文件,修改错误语句。(MASM没有出现错误即可。不必连接、运行。)DATASEGMENTVAR1DB0,25,ODH,300VAR2DB12H,A4H,6BHVAR3DB’ABCDEF’VAR4DW1234H,5678HVAR5DW10HDUP(?)DATAENDSCODESEGMENTASSUME

3、CS:CODE,DE:DATABEINGMOVAX,DATAMOVDS,AXLEASI,VAR5MOVBX,OFFSETVAR2MOV[SI],0ABHMOVAX,VAR1+2MOV[BX],[SI]MOVVAR5+4,VAR4MOVAH,4CHINT21HCODEENDSENDSTART2、输入正确的程序,汇编、连接、运行STACKSSEGMENTSTACKDW128DUP(?)STACKSENDSDATASSEGMENTSTRINGDB‘WELCOME!’,13,10,‘$’DATASENDSCODESSEGMENTASSUMECS:CODES,DS:DATASSTART:M

4、OVAX,DATASMOVDS,AXLEADX,STRINGMOVAH,9INT21HMOVAH,4CHINT21HCODESENDSENDSTART4.操作方法及实验步骤编写各代码并存储为源程序asm文件,对其进行汇编、连接。1、Dos进入masm目录2、masm文件名(对文件进行编译)3、link文件名(对生成OBJ目标文件进行连接)4、由dos加载连接后生成的可执行文件来执行程序5.实验数据处理和分析(1)(2)如图输入代码编译未能通过,提示出错有9处其中2、3、9行均为符号未定义错误,其中修改ODH中O在十六进制中未定义(不存在)、而A4H以字母开头必须添上数字0)、寄存

5、器中没有DE故而修改之。第十行我们暂且放着,第十四行提示说操作数必须指定大小空间由代码可知,立即数ABH传给内存单元时,必须指定内存大小空间,所以可修改该句为MOVBYTEPTR0ABH。而15行的错误提示与17行一样均不能找到段寄存器所分配的地址,15行从代码格式上看除了位数不一致外并不是如是的所提错误,而17行是错在两个立即数作为MOV指令的操作数,我们先跳过。下面16行的错误是非法错误的操作数格式,这里两个操作数均是内存单元里的数据,可修改【BX】为BX。由21行错误可知START未定义,之前程序入口中出现了标识符BEING,因此这里改为BEING。同时可知刚刚第十行错误就

6、显而易见了,标识的格式错了。应该为BEING:。部分修改后代码如下:重新编译得如下错误提示第2行中300超出了所分配的看空间字节大小,这里把它改为30,比较之前的出错提示17行和15行的均改变了,这才具体指出了出错原因。这里15行我们就修改AX为AL,匹配两操作数位数。17行中我们为不改变原意可以用如下指令替代:MOVCX,VAR4;MOVVAR5+4,CX;(3)编辑源程序后编译未能通过,提示如图:我们打开源程序看到如图所示:我们之前定义的是DATAS而不是DATAX,修改之。编译通过,我们link进行连接如图:已生成可执行文件3.exe。6.实验结果(1)编辑源程序后编译生成

7、list文件提示时输入文件名得到1.list文件。打开如图得知:DA1、DA2的偏移量分别是0020H和0026H。(2)通过以上调试分析,最终修正代码,如图已能通过编译。(3)运行3.exe文件,结果如图:7.总结,质疑,建议,问题讨论通过此次上机实验进行从编辑源程序到最终的可执行文件的生成并运行。加深了我对程序编译连接运行程序的整个过程的理解,而其中的编译过程让我看到了一个不显眼list文件对之后查错,核实各个指令运行的正确性应该说是程序员的理解与系统处理是否存在出入的重要性

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

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

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