资源预览内容
第1页 / 共15页
第2页 / 共15页
第3页 / 共15页
第4页 / 共15页
第5页 / 共15页
第6页 / 共15页
第7页 / 共15页
第8页 / 共15页
第9页 / 共15页
第10页 / 共15页
亲,该文档总共15页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
汇编语言程序设计实验指导书刘淑霞 编青岛理工大学计算机工程学院汇编语言上机环境及基本操作1.汇编语言源程序的上机环境硬件环境:目前 8086 汇编语言程序一般多在 IBM PCXT 及其兼容机上运行,因此要求机器具有一些基本配置就可以了,汇编语言对机器硬件环境没有特殊要求。软件环境:软件环境是指支持汇编语言程序运行和帮助建立汇编语言源程序的一些软件,主要包括以下几个方面:(1)DOS 操作系统:汇编语言程序的建立和运行都是在 DOS 操作系统的支持下进行的。目前 IBMPCXT 上流行的是 MS-DOS,因此,要首先进入 MS-DOS 状态,然后开始汇编语言的操作。(2)编辑程序:编辑程序是用来输入和建立汇编语言源程序的一种通用的系统软件,通常源程序的修改也是在编辑状态进行的。常用的编辑程序有: 行编辑程序:EDLIN.COM 全屏幕编辑程序:EDIT.COM、WORDSTAR、NE.COM、TC.COM 等(3)汇编程序:8086 的汇编程序有基本汇编 ASM.EXE 和宏汇编 MASM.EXE 两种。.一般选用宏汇编MASM.EXE。(4)连接程序:8086 汇编语言使用的连接程序是 LINK.EXE。(5)调试程序:这类程序作为一种辅助工具,帮助编程者进行程序的调试,通常用动态调试程序DEBUG.COM。 2.运行汇编语言程序的步骤一般情况下,在计算机上运行汇编语言程序的步骤如下:(1)用编辑程序(例如 EDIT.COM)建立扩展名为.ASM 的汇编语言源程序文件。(2)用汇编程序(例如 MASM.EXE)将汇编语言源程序文件汇编成用机器码表示的目标程序文件,其扩展名为.OBJ。(3)如果在汇编过程中出现语法错误,根据错误的信息提示(如错误位置、错误类型、错误说明),用编辑软件重新调入源程序进行修改。没有错误时采用连接程序(例如 LINK.EXE)把目标文件转化成可执行文件,其扩展名为.EXE。(4)生成可执行文件后,在 DOS 命令状态下直接键入文件名就可执行该文件。3.汇编语言源程序的建立当启动系统后,进入 DOS 状态,发出下列命令,就可以进入 EDIT 屏幕编辑软件,然后输入汇编语言源程序。C:EDIT当不指定具体文件名称时,进入 EDIT 状态,用键激活命令选项,选择 NEW 命令建立一个新文件,进入编辑状态,开始输入源程序并编辑。下例给出一个程序,要求从内存中存放的 10 个无符号字节整数数组中找出最小数,将其值保存在AL 寄存器中。假设源程序的文件名取为 ABC。则键入以下命令:C:EDIT ABC.ASM 进入 EDIT 编辑状态,输入如下源程序: DATA SEGMENTBUF DB 23H,16H,08H,20H,64H,8AH,91H,35H,2BH,7FHCN EQU $-BUFDATA ENDS CODE SEGMENTASSUME CS:CODE, DS:DATA, START: MOV AX, DATAMOV DS,AXMOV BX,OFFSET BUFMOV CX, CNDEC CXMOV AL,BXINC BXLP: CMP AL, BXJBE NEXTMOV AL,BXNEXT: INC BXDEC CXJNZ LPMOV AH,4CHINT 21HCODE ENDSEND START程序输入完毕后一定要执行存盘,将源程序文件存入盘中,以便进行汇编及连接,也可以再次调出源程序进行修改。4.将源程序文件汇编成目标程序文件一般情况下,MASM 汇编程序的主要功能有以下 3 点:(1)检查源程序中存在的语法错误,并给出错误信息。(2)源程序经汇编后没有错误,则产生目标程序文件,扩展名为.OBJ。(3)若程序中使用了宏指令,则汇编程序将展开宏指令。源程序建立以后,在 DOS 状态下,采用宏汇编程序 MASM 对源程序文件进行汇编,其操作过程为键入命令:C:MASM ABC.ASM 汇编程序调入后,首先显示软件版本号,然后出现三个提示行:第 1 个提示行是询问目标程序文件名,方括号内为机器规定的默认文件名,通常直接键入回车,表示采用默认的文件名,也可以键入指定文件名。第 2 个提示行是询问是否建立列表文件,若不建立,可直接键入回车;若要建立,则输入文件名再键入回车。列表文件中同时列出源程序和机器语言程序清单,并给出符号表,有利于程序的调试。第 3 个提示行是询问是否要建立交叉索引文件,若不要建立,直接键入回车;如果要建立,则输入文件名,就建立了扩展名为.CRF 的文件。为了建立交叉索引文件,必须调用 CREF.EXE 程序。调入汇编程序以后,当逐条回答了上述各提示行的询问之后,汇编程序就对源程序进行汇编。如果汇编过程中发现源程序有语法错误,则列出有错误的语句和错误代码。汇编过程的错误分警告错误(Warning Errors)和严重错误(Severe Errors)两种。其中警告错误是指汇编程序认为的一般性错误;严重错误是指汇编程序认为无法进行正确汇编的错误,并给出错误的个数、错误的性质。这时,就要对错误进行分析,找出原因和问题,然后再调用屏幕编辑程序加以修改,修改以后再重新汇编,一直到汇编无错误为止。5.用连接程序生成可执行程序文件 经汇编以后产生的目标程序文件(.OBJ 文件)并不是可执行程序文件,必须经过连接以后,才能成为可执行文件(即扩展名为.EXE)。连接过程为键入命令:C:LINK ABC.OBJ 在连接程序调入后,首先显示版本号,然后出现三个提示行。第 1 个提示行是询问要产生的可执行文件的文件名,一般直接键入回车,采用方括号内规定的隐含文件名就可以了。第 2 个提示行是询问是否要建立连接映像文件。若不建立,则直接回车;如果要建立,则键入文件名再回车。第 3 个提示行是询问是否用到库文件,若无特殊需要,则直接键入回车就可以了。上述提示行回答以后,连接程序开始连接,如果连接过程中出现错误,则显示出错误信息,根据提示的错误原因,要重新调入编辑程序加以修改,然后重新汇编,再经过连接,直到没有错误为止。连接以后,便可以产生可执行程序文件(.EXE 文件)。通常情况下,汇编程序连接以后,可以产生以下三个文件:(1).EXE 文件:这是可以直接在 DOS 操作系统下运行的文件。(2).MAP 文件:这是连接程序的列表文件,又称为连接映像文件。它给出每个段在存储器中的分配情况。(3).LIB 文件:这是指明程序在运行时所需要的库文件。6.程序的执行当我们建立了正确的可执行文件以后,就可以直接在 DOS 状态下执行该程序。键入命令:C: ABC 本程序当中没有用到 DOS 中断调用指令,所以在屏幕上看不到程序执行的结果。我们可以采用调试程序 DEBUG 来进行检查,相关内容请见教材第 4 章。实 验 一 顺序结构程序设计一、实验学时2 学时二、实验内容1. 编制程序,对存于数据段中 DATA 单元的双字数据求相反数,并将结果存放于 RLT 开始的单元;2. 使用 DEBUG 工具调试程序,查看程序运行结果。三、实验目的及要求 1. 掌握汇编语言程序的编写、调试步骤;2. 熟悉 8086 的指令系统;3. 熟悉 DEBUG 工具。四、实验报告要求按照青岛理工大学实验报告格式撰写实验报告。五、DEBUG 工具的使用DEBUG 调试程序是以 DOS 外部命令程序的形式提供的,它的文件名是 DEBUG.COM。DEBUG 的命令是具有规定格式的特殊字符串。命令是单个字母,通常后面还有 1 个或 1 个以上的参数。DEBUG 支持基本的 80868088 汇编语言语法,DEBUG 下的汇编语言有下面一些特点和规则:(1)数值都是十六进制数,并且不加尾缀“H” 。(2)不能使用符号常量和符号地址。(3)不能使用绝大部分伪指令,但两个最常用的伪指令 DB 和 DW 能被使用,用于直接把字节和字数据置人相应存储单元。如:DB 1,2,3,4, “ABCD”DW 1234,5678(4)可以使用属性操作符“PTR”对 DEBUG 不能明确类型的操作数进行说明。如:INC BYTE PTR BX。(5)DEBUG 的 A 命令汇编程序能根据转移目标地址的距离自动地汇编出短、近或远的转移或调用指令。当然,这也能由“SHORT” 、 “NEAR PTR”或FAR PTR”对转移目标地址进行说明来实现。(6)远返回指令的助记符在 DEBUG 中为 RETF。(7)指令前缀助记符必须在相关的指令之前输入,也可以分别放在不同的行。(8)串操作指令只能用其字节型或字型的助记符形式,如:MOVSB、CMPSW 等。(9)可以使用段超越前缀助记符 CS:、DS:、ES:和 SS:。DEBUG 常用命令如下:(1)汇编命令(Assemble)用途:键人汇编指令,并把它们汇编成机器代码,相继存放在从指定地址开始的存储区中。格式:Aaddress 说明:输入给本命令的所有数字都是十六进制的。将输人的指令从指定的地址 address 开始装入内存的连续单元。如果不指定地址,则把语句装人 CS:0100 确定的区域中;如果已用过 A 命令,那么就在前一个 A 命令所装入的最后一条指令的后继单元中,接着输入指令。当所有要求的指令已输人完成,在提示继续输人下一条指令时,直接按 ENTER 就退回 DEBUG 提示符下。DEBUG 对不可用语句的响应是显示信息: error并显示当前的装人地址。(2)显示内存命令(Dump)用途:显示存储器的内容。格式:Daddress 或者 Drange说明:用两个部分来显示内存内容:十六进制部分。用十六进制显示每个字节。ASCII 部分。把字节显示成 ASCII 字符。句点“.”表示非显示打印的字符。(3)修改内存命令(Enter)用途:该命令有两种工作方式:用清单中包含的值替换从指定地址开始的一个或一个以上的字节内容;显示和允许顺序方式修改字节。格式:E address (list)说明:如果只输入偏移值作为地址,那么 E 命令认为是包含在 DS 寄存器内的那个段。(4)执行命令(GO)用途:执行正在调试的程序。当达到所指定的断点地址处时,就停止执行,并显示寄存器、标志位以及下一条要执行的指令。格式:G=addressaddressaddress说明:如果不采用=address 参数(必须输入=号),就从 CS 和 IP 寄存器内容决定的地址开始执行程序。如果指定=address,则程序就从 CS:address 处开始执行。(5)退出命令(Quit) ,用途:结束 DEBUG 程序。格式:Q说明:Q 命令不保存内存中正工作的文件,需要时可用 Write 命令保存文件。(6)寄存器命令(Register)用途:寄存器命令有三种功能:显示单个寄存器的十六进制内容,并带有修改这些内容的选择。显示全部寄存器、标志位、以及将被执行的下条指令。显示 8 个标志位状态,并带有修改它们之中任一个或全部的选择。格式:Rregistename使用说明:显示单个寄存器有效寄存器是:AX、BX、CX、DX、SP、BP、SI、DI、DS、ES、SS、CS 和 IP。例如,为了显示 AX 寄存器的内容,可输入:R AX系统显示如下:AX F1E4:_现在可以采用下列两个操作中的某一个:a.按 ENTER 键保留未修改的内容。b.输入 14 字符的十六进制值来修改 AX 寄存器的内容,例如 FFFH,AX F1F4:FFF_现 在 按 ENTER键 把 AX寄 存 器 内 容 改 变 成 0FFFH。 显 示 所 有 的 寄 存 器 和 标 志 位
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号