欢迎来到天天文库
浏览记录
ID:14092208
大小:64.50 KB
页数:5页
时间:2018-07-26
《汇编语言上机过程》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、汇编语言上机过程一、用汇编语言编写的源程序,使之运行必须经过以下几个步骤:1.用编辑程序建立一个扩展名为.ASM的汇编语言源程序文件。2.调汇编程序(MASM),对源程序汇编,生成机器码目标文件,扩展名为.OBJ。3.连接(LINK)目标文件,生成可执行文件,扩展名为.EXE。4.运行可执行文件。5.如果程序运行有错,可调用DEBUG程序对.EXE文件进行调试。二、编辑汇编语言源程序可用各种编辑软件来建立汇编语言源程序,例如记事本。先保存为.TXT文件,然后改为.ASM文件,方法是在windows界面:工具
2、——文件夹选项——查看——将“隐藏已知文件的扩展名”选项去掉。然后将扩展名.TXT直接改为.ASM,汇编程序文件名称由用户自定(只能用英文字母、数字下划线)。三、编译汇编语言源裎序用MASM程序汇编源程序,生成浮动目标程序(即扩展名为.OBJ的文件),这里产生的是浮动的目标模块,是不可执行程序。汇编前,在DOS状态下用下列命令可以打开源程序,例如打开z1.asm的方法是:>typez1.asm<CR>则屏幕上显示出z1.asm的源程序。汇编z1.asm文件过程的屏幕操作与显示如下:>masmz1.asm<C
3、R>屏幕显示以下各行(一次一行),提示用户所应键入的信息:OBJECTFILENAME[Z1.OBJ]<CR>SOURCELISTING[NUL.LST]:<CR>CROSSREFERENCE[NUL.CRF]:<CR>产生目标文件(.OBJ)是汇编的主要目的,通常用户可以直接回车,表示采用默认文件名。(.LST)文件为列表文件,提供全部汇编后的信息。若用户不需要这些信息,可直接回车。(.CRF)文件为交义引用文件,要建立交叉引用文件,则键入文件名。MASM将为用户建立扩展名为(.CRF)的交叉引用文件,这
4、里所得到的交叉引用文件,必须调用CREF程序处理,以建立一个按字母顺序排列的能被显示或打印的源程序中的符号(包括变量)表。5利用它用户可以很快查到符号的相对地址及类型,这对调试较大的程序是很有用的。所以用户的盘中还应拷贝CREF.EXE文件。若用户不需要这些信息,可直接回车。到此为止,汇编过程已完成。MASM对源程序进行汇编时,若发现源程序中有语法错误则列出有错误的语句,错误的代码和错误的类型,最后列出错误的总数。此时就可以分析错误,调用编辑程序修改错误,直到汇编无错误。一、连接装配汇编程序LINK.EXE
5、文件用来将(.OBJ)文件连接成可执行文件,扩展名为(.EXE)。连接过程如下:在DOS下,键入>LINKz1<CR>先显示版本号,然后依此提问以下几个问题:RUNFILE[Z1.EXE]:<CR>LISTFILE[NUL.MAP]:<CR>LIBRARIES[.LIB]:<CR>第一个提示询问要产的可执行文件(.EXE)的文件名,一般按回车表示默认括号内规定的文件名。第二个提示询问是否建立内存分配图文件(.MAP),直接回车表示不要建立。最后询问是否用库文件(.LIB),若不用库文件,直接回车。然后连接程
6、序开始进行连接,若连接过程有错,则显示错误信息。有错误就要修改源文件,重新汇编、连接直至无错。若用户程序直接使用系统堆栈,则不要理会“NOSTACKSEGMENT”的警告提示。二、汇编语言程序的运行汇编语言源程序经过汇编、连接以后生成的.EXE文件,可在DOS下直接键入文件名运行。例如:>z1<CR>。则z1.EXE文件会装入内存并从程序中起始的地址运行。程序如正确无误,执行完后控制将能正常返回DOS操作系统。若运行结果在存储单元里,或发现程序运行错误,或想跟踪程序的执行,那么就需要用DEBUG程序。三、汇
7、编程序的调试DEBUG是专为汇编语言设计的一个调试程序,它通过单步、设置断点等方式为汇编语言程序的调试提供了非常有效的调试手段。在DOS的提示下,键入命令:>DEBUGz1.exe<CR>5DOS把DEBUG.COM调入内存后把被调试的z1程序也调入内存。装入内存的地址从偏移0开始,装入后显示DEBUG的提示符“—”。在提示符“—”下可执行DEBUG的各种命令。一、常用的DEBUG命令介绍如下。1.显示内存单元内容的命令D格式1:D<CR>表示从代码段cs:0000H开始的80H个单元的内存。格式2:Dds
8、:[地址]<CR>表示从数据段指定地址开始的80H个单元的内存。格式3:D[始地址末地址]<CR>此命令显示指定范围的内存。例如下面是D命令显示内容的其中一行,显示说明:0B2E:0200E8DAE146E8ACDF74-0DE84500ACE84100...F...t..E...A.左边“0B2E:0200”是头一个存储单元的逻辑地址,对应内容就是“E8”,后面依次是后续存储单元的内容(十六进制形式),共16个
此文档下载收益归作者所有