汇编语言源程序的运行过程.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
汇编语言源程序的运行过程

汇编语言源程序的运行过程 一、概述 二、具体操作过程 1.编辑过程 在计算机“附件”的“记事本”中,用word编辑汇编语言源程序,比用编辑程序EDLIN要方便得多。因为使用后者,必须熟记它的各种命令及其功能。使用前者的操作步骤如下: 第一步:编辑并建立扩展名为ams的文件 开始→程序→附件→记事本→键入汇编语言源程序(也可用Ctrl+C及Ctrl+V拷贝已有程序)→文件→另存为→出现“另存为”窗口→在‘文件名:’处为该文件命名,并切记:将扩展名由.txt改为.asm→在“另存为”窗口里的“我的电脑”中找到含有MASM.EXE、LINK.EXE以及DEBUG.EXE这三个工具的文件夹(如,8086experi),并双击之→该文件夹名便出现在“保存在:”处→保存(至此,该文件夹中将出现你所编辑的扩展名为asm的汇编语言源程序。此时的源程序以ASCII码形式存盘,而非机器码)→关闭记事本。 注意:上述三个工具及用户程序必须在同一文件夹中。 此后,为显示,打印或修改该程序,双击该程序的图标即可。 第二步:在DOS下运行EDLIN,以便查找并排除源程序中可能存在的语法错误。 window状态→开始→运行→打开:cmd↙→确定→出现DOS提示符:C:\……→指定存有你的程序的文件夹所在盘(如D盘)为当前盘 D: ↙→D:\cd 文件夹名↙→ D:\文件夹名edlin 文件名.asm ↙ End of input file * E↙ 按结束编辑命令E之前,生成了一个扩展名为$$$的文件;结束编辑状态之后,该文件的扩展名由$$$变为BAK。 特别指出:即使不用EDLIN进行编辑,也必须进行此步。否则,若源程序中存在语法错误,下一步进行汇编后,不予提示,也不生成机器码文件,无法进行再下一步的连接,致使程序无法运行。除非源程序中无任何语法错误。 2.汇编过程 D:\文件夹名masm 文件名;↙ 汇编程序负责将源程序文件(扩展名为.ASM)翻译为二进制的机器码文件(扩展名为.OBJ)。 在汇编过程中,计算机对源程序文件要进行语法检查,若有错误,在汇编结束后,屏幕上将出现错误信息提示,这时需要返回到编辑过程,对有语法错误的语句进行修改,修改后的源程序需要重新汇编,直到汇编结束时无语法错误为止。注意:汇编过程不能发现程序中的逻辑错误。 汇编结束时,生成扩展名为OBJ的文件(即CPU可识别的目标(object)文件,又称机器码文件)。若在编辑阶段中留有任何语法错误未改,则不能生成OBJ文件,从而无法往下进行。 3.连结过程 D:\文件夹名Link 文件名;↙ 我们学习汇编的主要目的,就是通过用汇编语言进行编程而深入地理解计算机底层的基本工作机理,达到可以随心所欲地控制计算机的目的。基于这种考虑,我们的编程活动,大都是直接对硬件进行的。我们希望直接对硬件编程,却并不希望用机器码编程。我们用汇编语言编程,就要用到:编辑器(Edit)、编译器(Masm)、连接器(Link)、调试工具(Debug)等工具,而这些工具都是在操作系统控制下运行的程序,所以我们的学习过程必须在操作系统的环境中进行。而操作系统,使用了许多工具,这势必要牵扯到操作系统、编译原理等方面的知识和原理。我们只是利用这些环境、工具来方便我们的学习,而不希望这些东西分散了我们的注意力。所以,对于涉及到而又不在本课程学习内容之中的东西,只做简单的解释。 连接的作用有以下几个: 当源程序很大时,可以将它分为多个源程序文件来编译,每个源程序编译成为目标文件后,再用连接程序将它们连接到一起,生成一个可执行文件; 程序中调用了某个库文件中的子程序,需要将这个库文件和该程序生成的目标文件连接到一起,生成一个可执行文件; 一个源程序编译后,得到机器码的目标文件,目标文件中的有些内容还不能直接用来生成可执行文件,需通过连接程序将这些内容处理为最终的可执行信息。 所以,既便只有一个源程序文件,而又不需要调用某个库中的子程序的情况下,也必须用连接程序对目标文件进行处理,生成可执行文件。 注意,对于连接过程,可执行的目标文件是我们要得到的最终结果。 LINK把汇编产生的目标程序(扩展名为.OBJ)转换为一个可执行文件(扩展名为.EXE)。 如果LINK运行结束时给出错误标志,这时仍需返回到编辑过程,修改源程序后重新汇编、连接,直到LINK运行结束时,不显示错误标志为止。 连接后,若显示:“Warning: no stack segments”,可不予理采。 4.调试过程 D:\文件夹名debug 文件名.exe↙ — 出现调试状态提示符‘—’,表示已进入调试阶段。 这时已存盘的代码段的机器码及其数据段的数据便由硬盘调入了内存,供调试用,但程序尚未执行。CS已自动赋值,但DS和SS、ES(如果用到的话)尚未赋值(

文档评论(0)

shenlan118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档