汇编实验报告汇编程序的汇编及运行顺序程序设计分支循环程序设计子程序设计dos功能调用

上传人:s9****2 文档编号:513830627 上传时间:2022-09-30 格式:DOC 页数:79 大小:1.27MB
返回 下载 相关 举报
汇编实验报告汇编程序的汇编及运行顺序程序设计分支循环程序设计子程序设计dos功能调用_第1页
第1页 / 共79页
汇编实验报告汇编程序的汇编及运行顺序程序设计分支循环程序设计子程序设计dos功能调用_第2页
第2页 / 共79页
汇编实验报告汇编程序的汇编及运行顺序程序设计分支循环程序设计子程序设计dos功能调用_第3页
第3页 / 共79页
汇编实验报告汇编程序的汇编及运行顺序程序设计分支循环程序设计子程序设计dos功能调用_第4页
第4页 / 共79页
汇编实验报告汇编程序的汇编及运行顺序程序设计分支循环程序设计子程序设计dos功能调用_第5页
第5页 / 共79页
点击查看更多>>
资源描述

《汇编实验报告汇编程序的汇编及运行顺序程序设计分支循环程序设计子程序设计dos功能调用》由会员分享,可在线阅读,更多相关《汇编实验报告汇编程序的汇编及运行顺序程序设计分支循环程序设计子程序设计dos功能调用(79页珍藏版)》请在金锄头文库上搜索。

1、福建农林大学东方学院信息工程类实验报告课程名称:汇编语言姓 名:廖少兵系:计算机系专 业:电子信息工程年 级:2010学 号:1050302103指导教师:职 称:2012年 6 月 17 日 福建农林大学东方学院信息工程类实验报告系: 计算机系 专业: 电子信息工程 年级: 10 姓名: 廖少兵 学号: 1050302103 实验课程: 汇编语言 实验室号:_ 实验设备号: 实验时间: 指导教师签字: 成绩: 实验一 汇编程序的汇编及运行1实验目的和要求 1、 熟悉汇编程序的汇编、连接、执行过程2、 生成LST文件,查看LST文件3、 生成OBJ文件,修改语法错误4、 生成EXE文件5、 执

2、行2实验的原理和主要仪器设备IBMPC机及其兼容机实验的软件环境是: 操作系统:DOS 2.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的值为多少?DATA SEGMENT ORG 20H NUM1=8 NUM2=NUM1+10H

3、DA1 DB IBM PC DA2 DB 0AH, 0DHCOUNT EQU $-DA1DATAENDS END2、 输入有错误的文件,修改错误语句。(MASM没有出现错误即可。不必连接、运行。)DATA SEGMENTVAR1DB 0, 25, ODH, 300VAR2 DB 12H, A4H, 6BHVAR3 DB ABCDEFVAR4 DW 1234H, 5678HVAR5 DW 10H DUP(?)DATA ENDSCODE SEGMENT ASSUMECS: CODE, DE: DATABEINGMOV AX, DATA MOV DS, AX LEA SI, VAR5 MOV BX,

4、 OFFSET VAR2 MOV SI, 0ABH MOV AX, VAR1+2 MOV BX, SI MOV VAR5+4, VAR4 MOV AH, 4CH INT 21HCODEENDS ENDSTART3、 输入正确的程序,汇编、连接、运行STACKSSEGMENT STACK DW 128 DUP(?)STACKSENDSDATASSEGMENT STRING DB WELCOME!, 13, 10, $DATASENDSCODESSEGMENT ASSUMECS: CODES, DS: DATASSTART: MOVAX, DATAS MOVDS, AX LEA DX, STRIN

5、G MOVAH, 9 INT 21H MOV AH, 4CH INT 21HCODESENDS ENDSTART4操作方法及实验步骤 编写各代码并存储为源程序asm文件,对其进行汇编、连接。1、Dos进入masm目录2、masm 文件名(对文件进行编译)3、link 文件名(对生成OBJ目标文件进行连接) 4、由dos加载连接后生成的可执行文件来执行程序5实验数据处理和分析(1)(2)如图输入代码编译未能通过,提示出错有9处其中2、3、9行均为符号未定义错误,其中修改ODH中O在十六进制中未定义(不存在)、而A4H以字母开头必须添上数字0)、寄存器中没有DE故而修改之。第十行我们暂且放着,第十

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

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

8、DA1、DA2的偏移量分别是0020H和0026H。(2)通过以上调试分析,最终修正代码,如图已能通过编译。(3)运行3.exe文件,结果如图:7. 总结,质疑,建议,问题讨论 通过此次上机实验进行从编辑源程序到最终的可执行文件的生成并运行。加深了我对程序编译连接运行程序的整个过程的理解,而其中的编译过程让我看到了一个不显眼list文件对之后查错,核实各个指令运行的正确性应该说是程序员的理解与系统处理是否存在出入的重要性,其次让我更加懂得去读懂出错提示,根据提示定位代码的错误之处并修正,再者从实验中发现了重要的一点,要让编译器给出正确或说是更确切的指示,我们应该先保证自己编写的代码语法上的严谨

9、与规范,如17行与15行的错误提示由于程序入口标识符的错误定义而受影响的情况。实验二 顺序程序设计1实验目的和要求(1) 学习使用DEBUG的命令;(2) 使用DEBUG命令在数据段中查看程序运行的结果;(3) 利用DEBUG运行简单的程序段。2实验用的软硬件环境实验的硬件环境是:IBMPC机及其兼容机实验的软件环境是: 操作系统:DOS 2.0以上;调试程序:DEBUG.COM;文本编程程序:EDIT.EXE、WPS.EXE;宏汇编程序:MASM.EXE(或ASM .EXE);连接装配程序:LINK .EXE;交叉引用程序:CREF.EXE(可有可无)。3实验内容及实验数据记录1)输入程序观

10、察寄存器变化 使用DEBUG,将下面的程序段写入内存,逐条执行,观察每条指令执行后,CPU中相关寄存器的内容变化。注意用T命令执行时,CS: IP寄存器的内容MOVAX, 4E20ADDAX, 1416MOVBX, 2000ADDAX, BXMOVBX, AXADDAX, BXMOVAX, 001AMOVBX, 0026ADDAL, BLADDAH, BL ADDBH, AL MOVAH, 0 ADDAL, BL ADDAL, 9C2)下列程序单步运行,注意AL,BX,CX寄存器的变化,并观察数据段字母的变化。DSEGSEGMENTMSG1DBabcDSEGENDSCSEGSEGMENT AS

11、SUMECS: CSEG, DS: DSEGSTART:MOVAX, DSEG MOVDS, AX LEABX, MSG1 MOVCX, 3 S:MOVAL, BX ANDAL, 11011111B ;将AL中的ASCII码的第5位置0,;变成大写字母。 MOV BX, AL INCBX LOOPS MOVAL, 0 MOVAH, 4CH INT 21HCSEGENDS ENDSTART3)程序的跟踪执行操作在DOS下直接输入文件主名就可以执行文件了,有的程序会显示结果,可能执行后什么结果都没有,是因为程序中没有显示命令。那么如何查看程序的运行结果呢?程序执行过程的跟踪操作步骤如下:(1)在D

12、OS下输入:DEBUG 文件名.EXE(2)在DEBUG提示符下输入U命令(3)可以用T命令单步执行指令,执行到 MOV AH, 4CH时结束,也可以用G命令执行整个程序,输入:G=B地址(如:G=0000)(4)用D命令查看程序执行后数据段的变化输入:D K地址:0 (如:D1260:0)在显示的数据中,对照源程序或LST文件查看结果所在的偏移地址的内容。4)输入下面程序,按实验一和上面步骤运行一遍DSEGSEGMENTMSG1DW 7856H,2038HMSG2DW ?DSEGENDSCSEGSEGMENTASSUMECS:CSEG,DS:DSEGSTART:MOVAX,DSEGMOVDS,AXMOVAX,MSG1ANDAX,MSG1+2MOVMSG2,AXMOVAL,0MOVAH,4CHINT21HCSEGENDSENDSTART5)编写调试下面的程序,用DEBUG查看数据段中的结果(1),X,Y,W为

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号