2022年2022年汇编语言源程序的运行过程 .pdf
《2022年2022年汇编语言源程序的运行过程 .pdf》由会员分享,可在线阅读,更多相关《2022年2022年汇编语言源程序的运行过程 .pdf(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1 汇编语言源程序的运行过程一、概述二、具体操作过程1编辑过程在计算机“附件”的 “记事本” 中,用 word 编辑汇编语言源程序,比用编辑程序EDLIN要方便得多。 因为使用后者, 必须熟记它的各种命令及其功能。使用前者的操作步骤如下:第一步:编辑并建立扩展名为ams的文件开始程序附件记事本键入汇编语言源程序(也可用Ctrl+C 及 Ctrl+V 拷贝已有程序)文件另存为出现“另存为”窗口在文件名:处为该文件命名,并切记:将扩展名由 .txt 改为.asm在“另存为”窗口里的“我的电脑” 中找到含有MASM.EXE 、LINK.EXE以及 DEBUG.EXE 这三个工具的文件夹(如,8086
2、experi) ,并双击 之该文件夹名便出现在“保存在:”处 保存 (至此,该文件夹中将出现你所编辑的扩展名为asm的汇编语言源程序。此时的源程序以ASCII 码形式存盘,而非机器码)关闭记事本。注意:上述三个工具及用户程序必须在同一文件夹中。此后,为显示,打印或修改该程序,双击该程序的图标即可。第二步:在DOS 下运行 EDLIN ,以便查找并排除源程序中可能存在的语法错误。window 状态开始运行打开:cmd确定出现DOS 提示符: 指定存有你的程序的文件夹所在盘(如D 盘)为当前盘D: D: cd 文件夹名在 DOS 管理下键 入 汇 编 语 言源程序编辑程序EDLIN.EXE 编辑过
3、程无语法错误的汇编语言源程序 NAME ASM(以ASCII 码形式存盘)汇编程序 MASM EXE 汇编过程目标(机器码)文件NAME OBJ 连接程序 LINK EXE 连接过程可执行文件NAME EXE 调试程序 DEBUG EXE 调试过程无逻辑错误的可执行文件 NAME EXE 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 12 页 - - - - - - - - - 2 文件夹名 edlin文件名 .asm End of input file * E按结束编
4、辑命令E 之前,生成了一个扩展名为$的文件;结束编辑状态之后,该文件的扩展名由$变为 BAK 。特别指出:即使不用EDLIN进行编辑,也必须进行此步。否则,若源程序中存在语法错误, 下一步进行汇编后,不予提示, 也不生成机器码文件,无法进行再下一步的连接,致使程序无法运行。除非源程序中无任何语法错误。2汇编过程文件夹名 masm文件名;汇编程序负责将源程序文件(扩展名为.ASM )翻译为二进制的机器码文件(扩展名为.OBJ) 。在汇编过程中,计算机对源程序文件要进行语法检查,若有错误,在汇编结束后,屏幕上将出现错误信息提示,这时需要返回到编辑过程,对有语法错误的语句进行修改,修改后的源程序需要
5、重新汇编,直到汇编结束时无语法错误为止。注意:汇编过程不能发现程序中的逻辑错误。汇编结束时,生成扩展名为OBJ 的文件(即 CPU 可识别的目标( object)文件,又称机器码文件) 。若在编辑阶段中留有任何语法错误未改,则不能生成OBJ 文件,从而无法往下进行。3连结过程文件夹名 Link文件名;我们学习汇编的主要目的,就是通过用汇编语言进行编程而深入地理解计算机底层的基本工作机理, 达到可以随心所欲地控制计算机的目的。基于这种考虑, 我们的编程活动,大都是直接对硬件进行的。我们希望直接对硬件编程,却并不希望用机器码编程。我们用汇编语言编程,就要用到:编辑器(Edit) 、编译器( Mas
6、m) 、连接器( Link ) 、调试工具(Debug)等工具,而这些工具都是在操作系统控制下运行的程序,所以我们的学习过程必须在操作系统的环境中进行。而操作系统, 使用了许多工具, 这势必要牵扯到操作系统、编译原理等方面的知识和原理。我们只是利用这些环境、工具来方便我们的学习,而不希望这些东西分散了我们的注意力。所以,对于涉及到而又不在本课程学习内容之中的东西,只做简单的解释。* L 显示 24 条指令* 25L 显示从第 25 条指令开始的另24 条指令此处为选择性操作名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心
7、整理 - - - - - - - 第 2 页,共 12 页 - - - - - - - - - 3 连接的作用有以下几个:当源程序很大时,可以将它分为多个源程序文件来编译,每个源程序编译成为目标文件后,再用连接程序将它们连接到一起,生成一个可执行文件;程序中调用了某个库文件中的子程序,需要将这个库文件和该程序生成的目标文件连接到一起,生成一个可执行文件;一个源程序编译后,得到机器码的目标文件,目标文件中的有些内容还不能直接用来生成可执行文件,需通过连接程序将这些内容处理为最终的可执行信息。所以,既便只有一个源程序文件,而又不需要调用某个库中的子程序的情况下,也必须用连接程序对目标文件进行处理,
8、生成可执行文件。注意,对于连接过程,可执行的目标文件是我们要得到的最终结果。LINK把汇编产生的目标程序(扩展名为.OBJ)转换为一个可执行文件(扩展名为.EXE) 。如果 LINK 运行结束时给出错误标志,这时仍需返回到编辑过程,修改源程序后重新汇编、连接,直到LINK 运行结束时,不显示错误标志为止。连接后,若显示: “Warning: no stack segments” ,可不予理采。4调试过程文件夹名 debug文件名 .exe出现调试状态提示符,表示已进入调试阶段。这时已存盘的代码段的机器码及其数据段的数据便由硬盘调入了内存,供调试用,但程序尚未执行。CS 已自动赋值,但DS 和
9、SS、ES(如果用到的话)尚未赋值(这三个段寄存器是通过程序的运行对其赋值的)。三、DEBUG 调试程序的使用DEBUG 调试程序的功能十分强大,在DEBUG 的控制下,操作人员可以通过命令直接输入汇编源程序,并用相应命令将其汇编成机器语言程序;然后调试并运行该程序,这样免去使用MASM和 LINK程序的麻烦,因而调试周期短,除此之外,更重要的是,使用 DEBUG ,它能使程序设计人员触及到机器的内部,能观察并修改寄存器和存储单元的内容,能监视目标程序的执行情况,便于操作人员调试程序。然而由于在DEBUG 控制下,只宜编写较小的程序,编写较大程序很不方便,不便于程序的分块设计,它不具备编写大程
10、序所需的编辑功能。因而,人们通常使用DEBUG 来调试程序,而很少用DEBUG 来编写较大程序。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 12 页 - - - - - - - - - 4 1使用 DEBUG 调试程序的条件在你所使用的硬盘或软盘上,必须有DEBUG.EXE 这个文件。2进入与退出DEBUG 在进入 DEBUG 后,出现提示符 “”。此时 CPU 各寄存器内容处于初始状态(注意:此时程序尚未执行) :CS:保存程序开始运行段的段基值。IP:保存第一条要
11、执行的指令的偏移量。SS:保存程序段定义语句中组合类型指定作堆栈段的段基值。SP:保存堆栈底部+1 单元的偏移量。DS、 ES:保存程序段前缀的(PSP)的段基值。标志寄存器:各标志位均为0 (复位)状态。如需退出DEBUG ,返回 DOS 操作系统,可使用:Q 3程序连续运行的命令(1)在 DEBUG 下运行时:G=CS:0(不返回DOS,显示“ Program terminated normally ”不保留运行结果)G=CS:0,指令 INT 21H 所在地址(不返回DOS,保留运行结果)(2)在 DOS 下运行时:文件夹名 不带扩展名的文件名(返回DOS)注意:一旦返回DOS,代码段、
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年2022年汇编语言源程序的运行过程 2022 汇编语言 源程序 运行 过程
限制150内