汇编实验一 DOS 环境下的汇编语言编程环境使用.doc

上传人:啊飒飒 文档编号:11555339 上传时间:2021-08-23 格式:DOC 页数:10 大小:474KB
返回 下载 相关 举报
汇编实验一 DOS 环境下的汇编语言编程环境使用.doc_第1页
第1页 / 共10页
汇编实验一 DOS 环境下的汇编语言编程环境使用.doc_第2页
第2页 / 共10页
汇编实验一 DOS 环境下的汇编语言编程环境使用.doc_第3页
第3页 / 共10页
汇编实验一 DOS 环境下的汇编语言编程环境使用.doc_第4页
第4页 / 共10页
汇编实验一 DOS 环境下的汇编语言编程环境使用.doc_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《汇编实验一 DOS 环境下的汇编语言编程环境使用.doc》由会员分享,可在线阅读,更多相关《汇编实验一 DOS 环境下的汇编语言编程环境使用.doc(10页珍藏版)》请在三一文库上搜索。

1、汇编语言实验报告 班级: 姓名: 学号:汇编语言实验报告实验一 DOS环境下的汇编语言编程环境使用(基础与验证型)班级:姓名:学号:实验日期:实验一 DOS 环境下的汇编语言编程环境使用(基础与验证型)一、实验要求和目的1、掌握汇编语言程序设计的基本流程和学会上机开发简单程序;2、熟练掌握宏汇编程序MASM 的使用;3、熟练掌握连接程序LINK 的使用;4、熟练掌握DEBUG 的使用;二、软硬件环境1、硬件环境:计算机系统 windows;2、软件环境:装有MASM、DEBUG、LINK、等应用程序。三、实验涉及的主要知识汇编语言程序设计上机开发过程如图1.1 所示。1、汇编语言源程序的汇编过

2、程汇编语言源程序的汇编过程是是利用汇编程序(MASM)对已编辑好的源程序文件(.ASM)进行汇编,将源程序文件中以ASCII 码表示的助记符指令逐条翻译成机器码指令,并完成源程序中的伪指令所指出的各种操作,最后可以建立3 个文件:扩展名为 .OBJ 的目标文件、扩展名为 .LST 的列表文件和扩展名为 .CRF 的交叉索引文件。目标文件是必须建立的,它包含了程序中所有的机器码指令和伪指令指出的各种有关信息,但该文件中的操作数地址还不是内存的绝对地址,只是一个可浮动的相对地址。列表文件(.LST)中包含了源程序的全部信息(包括注释)和汇编后的目标程序,列表文件可以打印输出,可供调试检查用。交叉索

3、引文件(.CRF)是用来了解源程序中各符号的定义和引用情况的。.LST 和.CRF 两个文件不是必须建立的,可有有无,可以通过汇编时的命令加以选择。在对源程序文件(ASM 文件)汇编时,汇编程序将对ASM 文件进行两遍扫描,若程序文件中有语法错误,则结束汇编,汇编程序将指出源程序中存在的错误,这时应返回编辑环境修改源程序中的错误,再经过汇编,直到最后得到无错误的目标程序,即OBJ 文件。因此,汇编程序的主要功能可以概括为以下三点: (1) 检查源程序中的语法错误,并给出错误信息;(2) 产生目标程序文件(OBJ 文件),并可给出列表文件(.LST 文件);(3) 展开宏指令。汇编程序是系统提供

4、的用于汇编的系统软件,目前常用的汇编程序有Microsoft 公司推出的宏汇编程MASM(MACRO ASSEMBLER)和BORLAND 公司推出的TASM(TURBO ASSEMBLER)两种。Microsoft 公司推出有宏汇编程序MASM 和小汇编程序ASM 两种,二者的区别在于:MASM有宏处理功能,而ASM 没有宏处理功能,因此,MASM 比ASM 的功能强大。实验开发过程中选用 MASM。2、目标程序的连接过程汇编后产生的目标程序(OBJ 文件)并不是可执行程序文件(EXE 文件),还不能直接运行,它必须通过连接程序(LINK)连接成一个可执行程序后才能运行。连接程序进行连接时,

5、其输入有两个部分:一是目标文件(.OBJ),目标文件可以是一个也可以是多个,可以是汇编语言经汇编后产生的目标文件,也可以是高级语言(例如C 语言)经编译后产生的目标文件;另一是库文件(.LIB),库文件是系统中已经建立的,主要是为高级语言提供的。连接后输出两个文件,一是扩展名为 .EXE 的可执行文件,另一个是扩展名为 .MAP 的内存分配文件,它是连接程序的列表文件,又称为连接映像(Link Map),它给出每个段在存储器中的分配情况,该文件可有可无。连接程序给出的“无堆栈段的警告性错误”并不影响程序的运行。所以,到此为止,连接过程已经结束,可以在操作系统下执行该.EXE 程序了。3、Deb

6、ug 调试过程通过编辑、汇编和连接后的程序是可以执行的程序。但是,一个程序特别是比较复杂的程序不能保证没有一点错误。因此,在投入正式运行前必须进行调试,以检查程序的正确性。调试程序Debug 就是用来调试汇编语言程序的一种工具。Debug 的主要功能有显示和修改寄存器及内存单元的内容;按指定地址启动并运行程序;设置断点使程序分段运行,以便检查程序运行过程中的中间结果或确定程序出错的位置;反汇编被调试程序,它将一个可执行文件中的指令机器码反汇编成助记符指令并同时给出指令所在的内存地址;单条追踪或多条追踪被调试程序,它可以逐条指令执行或几条指令执行被调试程序,每执行一条(或几条)指令后,Debug

7、 程序将中断程序的运行并提供有关结果信息;汇编一段程序,在Debug 的汇编命令下可以直接输入助记符指令,并将其汇编成可运行程序段。此外,Debug 还可以将磁盘指定区的内容或一个文件装入到内存或将内存的信息写到磁盘上等等。Debug 后面的文件名及路径是指被调试程序的文件名及路径,Debug 后面的文件必须是程序的可执行文件,其扩展名可以是.EXE 或.COM。在此命令后,DOS 将调试程序Debug调入内存,Debug 接着将被调程序送入内存。比如:DEBUG test01.EXE 4、汇编语言和DOS 操作系统的接口编写的汇编语言源程序是在 DOS 环境下运行的,为了保证用户程序执行完后

8、能返回到DOS 状态,可使用如下两种方法。(一)标准方法首先将用户程序的主程序定义成一个FAR 过程,其最后一条指令为RET。然后在代码段的主程序(即FAR 过程)的开始部分用如下三条指令将PSP 中INT 20H 指令的段地址及偏移地址压入堆栈:PUSH DS ;保护PSP 段地址MOV AX,0 ;保护偏移地址0PUSH AX这样,当程序执行到主程序的最后一条指令RET 时,由于该过程具有FAR 属性,故存在堆栈内的两个字就分别弹出到CS 和IP,从而执行INT 20H 指令,使控制返回到DOS 状态。返回DOS 的标志就是程序运行完后出现一个DOS 的标识符,如D:。(二)非标准方法也可

9、在用户的程序中不定义过程段,只在代码段结束之前(即CODE ENDS 之前)增加两条语句:MOV AH,4CHINT 21H则程序执行完后也会自动返回DOS 状态。此外,由于开始执行用户程序时,DS 并不设置在用户的数据段的起始处,ES 同样也不设置在用户的附加段起始处,因而在程序开始处使用以下方法装填DS 和ES 的值使其指向用户的数据段:MOV AX,段名MOV 段寄存器名,AX ;段寄存器名可以是DS、ES、SS 之一四、实验内容与步骤1、汇编、链接并调试给出的简单程序,找出程序中的错误。 录入并建立汇编语言源程序文件(ASM 文件) 用汇编程序MASM 将ASM 文件汇编成目标程序文件

10、(OBJ 文件) 用连接程序LINK 生成可执行程序文件(EXE 文件) 程序的调试2、完成程序设计:分类统计字数组data 中正数、负数和零的个数,并分别存入内存字变量Positive、Negative和Zero 中,数组元素个数保存在其第一个字中。使用Debug 查看Positive、Negative 和Zero 三个变量的数据。五、程序设计:实验1:第一部分通过MOV指令将字符送入寄存器,并通过数据传送指令使之在显示器中显示出来。第二部分通过循环实现了累加功能,从而实现了计算从0到9的累加过程,并将每次累加结果寄存于AX当中。实验2:通过确定所筛选数据的个数,确定循环的次数,同时将各个数

11、据与0进行比较,比0大,存入Positive中,同时BX自动加两个字节,比0小存入Negative中,相等存入Zero中。开始Zero=0; Positive=0; Negative=0; 数据总数CXY CX=0?NN 结束N Data=0? YZero+1; data0? Y Positive+1 Negative+1 CX-1六、实验过程及结果:实验1:1. 输入给出的程序2. 运行程序,发现三处错误:根据错误提示,可知ADDITION后少了“:”并且COM应为CMP,修改代码为: 3. 编译代码,生成OBJ文件,再生成EXE文件,可成功运行。4. 通过Debug调试检查代码逻辑性,发现

12、JAE应为JB,修改代码为:5. 重新进行DEBUG调试:实验2:1. 根据要求,编译程序如下:2. 编译代码,生成OBJ文件,再生成EXE文件,可成功运行。3. 在DEBUG中调试:L对其进行程序的加载,随后用DEBUG:U进行反汇编,找到结束标志INT 21的地址。用-g38将程序运行到操作归还给DOS系统之前。用-dds:0查看内存状态:测试数据为 1,0,0,1,0,-1,则应1有2个正数,3个零,1个负数。七、实验感想: 由于是第一次实验,对整个编程环境和实验内容都不是很熟悉,但经过这次实验,对这些都有一些大致的了解,特别是学会了如何调试程序,也对从汇编课上学习到的理论知识有了更深刻的认识,经过自己动手编程,对汇编语言更加熟悉,通过将理论用于实践,也对学习汇编知识有很大帮助。9

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1