MASM汇编基础及上机.ppt
《MASM汇编基础及上机.ppt》由会员分享,可在线阅读,更多相关《MASM汇编基础及上机.ppt(69页珍藏版)》请在三一办公上搜索。
1、微机原理与汇编语言,第4章 MASM汇编基础及上机 4.6 汇编程序的编写与执行 4.7 调试程序DEBUG的使用,第4章 MASM汇编基础及上机,4.6 汇编程序的编写与执行4.6.1 一个汇编语言程序从写出到最终执行的简要过程 编写-编译-连接-执行演示,1.编写汇编源程序,使用文本编辑器(如Edit、记事本等),用汇编语言编写汇编源程序。,2.对源程序进行编译连接,使用汇编语言编译程序对源程序文件中的源程序进行编译,产生目标文件;再用连接程序对目标文件进行连接,生成可在操作系统中直接运行的可执行文件。,3.可执行文件,可执行文件中包含两部分内容:程序(从原程序中的汇编指令翻译过来的机器码
2、)和数据(源程序中定义的数据)相关的描述信息(比如:程序有多大、要占多少内存空间等),4.执行可执行文件中的程序,在操作系统中,执行可执行文件中的程序。操作系统依照可执行文件中的描述信息,将可执行文件中的机器码和数据加载入内存,并进行相关的初始化(比如:设置CS:IP指向第一条要执行的指令),然后由CPU执行程序。,第4章 MASM汇编基础及上机,assumecodesg XXX segment XXX ends end,4.6 汇编程序的编写与执行4.6.2 源程序,寄存器与段的关联假设,assume:含义为“假设”。它假设某一段寄存器和程序中的某一个用 segment ends 定义的段相
3、关联。通过assume说明这种关联,在需要的情况下,编译程序可以将段寄存器和某一个具体的段相联系。,标号,一个标号指代了一个地址。codesg:放在segment的前面,作为一个段的名称,这个段的名称最终将被编译、连接程序处理为一个段的段地址。,定义一个段,segment和ends是一对成对使用的伪指令,这是在写可被编译器编译的汇编程序时,必须要用到的一对伪指令。segment和ends的功能是定义一个段,segment说明一个段开始,ends 说明一个段结束。一个段必须有一个名称来标识,使用格式为:段名 segment 段名 ends,定义一个段,一个汇编程序是由多个段组成的,这些段被用来存
4、放代码、数据或当作栈空间来使用。一个有意义的汇编程序中至少要有一个段,这个段用来存放代码。,程序结束标记,End 是一个汇编程序的结束标记,编译器在编译汇编程序的过程中,如果碰到了伪指令 end,就结束对源程序的编译。如果程序写完了,要在结尾处加上伪指令end。否则,编译器在编译程序时,无法知道程序在何处结束。注意:不要搞混了end和ends。,第4章 MASM汇编基础及上机,4.6 汇编程序的编写与执行4.6.2 源程序程序的结构定义一个段实现处理任务程序结束段与段寄存器关联,语法错误和逻辑错误,语法错误程序在编译时被编译器发现的错误;容易发现。assum cs:codesgcodesg s
5、egment start:mov ax,0123h mov bx,0456h add ax,bx add ax,ax mov ax,4c00h int 21hcodesg endsend start,语法错误和逻辑错误,逻辑错误程序在编译时不能表现出来的、在运行时发生的错误不容易发现。,assume cs:codesgcodesg segment start:mov ax,0123h mov bx,0456h add ax,bx add ax,axcodesg ends mov ax,4c00h int 21hend start,第4章 MASM汇编基础及上机,4.6 汇编程序的编写与执行4.
6、6.2 源程序打开“记事本”程序,在其中编辑程序,如下图所示:,第4章 MASM汇编基础及上机,4.6 汇编程序的编写与执行4.6.3 编译进入DOS方式,进入 D:masm 目录,运行masm.exe。如果源程序文件不是以 asm为扩展名的话,就要输入它的全名。比如1.txt。在输入源程序文件名的时候一定要指明它所在的路径。如果文件就在当前路径下,只输入文件名就可以。,第4章 MASM汇编基础及上机,4.6 汇编程序的编写与执行4.6.3 编译输入要编译的源文件文件名后,按 Enter键。目标文件(*.obj)是我们对一个源程序进行编译要得到的最终结果。编译程序默认要输出的目标文件名为1.o
7、bj,所以可以不必再另行指定文件名。,第4章 MASM汇编基础及上机,4.6 汇编程序的编写与执行4.6.3 编译列表文件是编译器将源程序编译为目标文件的过程中产生的中间结果。可以不生成这个文件,直接按 Enter键即可。,第4章 MASM汇编基础及上机,4.6 汇编程序的编写与执行4.6.3 编译编译程序提示输入交叉引用文件的名称。这个文件同列表文件一样,是编译器将源程序编译为目标文件过程中产生的中间结果。可以不生成这个文件,直接按 Enter 键即可。,第4章 MASM汇编基础及上机,4.6 汇编程序的编写与执行4.6.3 编译对源程序的编译结束,编译器输出的最后两行告诉我们这个源程序没有
8、警告错误和必须要改正的错误。一般来说,有两类错误使我们得不到所期望的目标文件:(1)我们程序中有“Severe Errors”;(2)找不到所给出的源程序文件。,第4章 MASM汇编基础及上机,4.6 汇编程序的编写与执行4.6.4 连接在对源程序进行编译得到目标文件后,我们需要对目标文件进行连接,从而得到可执行文件。继续上一节的过程,我们再将D:masm1.obj连接为D:masm1.exe。,第4章 MASM汇编基础及上机,4.6 汇编程序的编写与执行4.6.4 连接进入DOS方式,进入C:masm目录,运行link.exe。在输入目标文件名的时候,要注意指明它所在的路径。这里,我们要连接
9、的文件是当前路径下1.obj,所以此处输入“1”。,第4章 MASM汇编基础及上机,4.6 汇编程序的编写与执行4.6.4 连接输入要连接的目标文件名后,按Enter键。可执行文件是我们对一个程序进行连接要得到的最终结果。连接程序默认要输出的可执行文件名为 1.EXE,所以可以不必再另行指定文件名。我们直接按 Enter 键,使用连接程序设定的可执行文件名。,第4章 MASM汇编基础及上机,4.6 汇编程序的编写与执行4.6.4 连接映像文件是连接程序将目标文件连接为可执行文件过程中产生的中间结果。可以不生成这个文件,直接按 Enter 键即可。,第4章 MASM汇编基础及上机,4.6 汇编程
10、序的编写与执行4.6.4 连接连接程序提示输入库文件的名称。库文件里包含了一些可以调用的子程序,如果我们的程序中调用了某一个库文件中的子程序,就需要在连接的时候,将这个库文件和我们的目标文件连接到一起,生成可执行文件。如果没有调用任何子程序,直接按Enter键即可。,第4章 MASM汇编基础及上机,4.6 汇编程序的编写与执行4.6.4 连接这时我们得到了一个新的文件 1.exe。当然,如果连接过程中出现错误,那么我们将得不到这个可执行文件。对目标文件的连接结束,连接程序输出的最后一行告诉我们,这个程序有一个警告错误:“没有栈段”,这里我们不理会这个错误。,连接,连接的作用有以下几个:当源程序
11、很大时,可以将它分为多个源程序文件来编译,每个源程序编译成为目标文件后,再用连接程序将它们连接到一起,生成一个可执行文件;程序中调用了某个库文件中的子程序,需要将这个库文件和该程序生成的目标文件连接到一起,生成一个可执行文件;,连接,连接的作用有以下几个(续):一个源程序编译后,得到了存有机器码的目标文件,目标文件中的有些内容还不能直接用来生成可执行文件,连接程序将这此内容处理为最终的可执行信息。所以,在只有一个源程序文件,而又不需要调用某个库中的子程序的情况下,也必须用连接程序对目标文件进行处理,生成可执行文件。注意,对于连接的过程,可执行文件是我们要得到的最终结果。,第4章 MASM汇编基
12、础及上机,4.6 汇编程序的编写与执行4.6.5 执行现在,终于将我们的第一个汇编程序加工成了一个可在操作系统下执行的程序文件。1.exe的执行情况:程序到底运行没有?程序当然运行了,只是从屏幕上不可能看到任何运行结果。,第4章 MASM汇编基础及上机,4.6 汇编程序的编写与执行4.6.5 执行我们的程序没有像显示器输出任何信息。程序只是做了一些将数据送入寄存器和加法的操作,而这些事情,我们不可能从显示屏上看出来。程序执行完成后,返回,屏幕上再次出现操作系统的提示符。可执行文件中的程序装入内存并运行的原理,可执行文件中的程序装入内存并运行的原理,DOS是一个单任务操作系统。在DOS中,可执行
13、文件中的程序P2若要运行,必须有一个正在运行的程序P1,将 P2从可执行文件中加载入内存,将CPU的控制权交给它,P2才能得以运行;P2开始运行后,P1暂停运行。当P2运行完毕后,应该将CPU的控制权交还给使它得以运行的程序P1。此后,P1继续运行。1.exe的执行过程,可执行文件中的程序装入内存并运行的原理,1.exe的执行过程:(1)我们在提示符“D:masm”后面输入可执行文件的名字“1”,按Enter键。(2)1.exe中的程序运行;问题1(3)运行结束,返回,再次显示提示符“D:masm”。问题2,问题1执行第(1)步操作时,有一个正在运行的程序将1.exe中的程序加载入内存,这个正
14、在运行的程序是什么?它将程序加载入内存后,如何使程序得以运行?结论在DOS中直接执行 1.exe 时,是正在运行的command将1.exe中的程序加载入内存。command设置CPU的CS:IP指向程序的第一条指令(即程序的入口),从而使程序得以运行。,问题2执行第(3)步操作,程序运行结束后,返回到哪里?结论程序运行结束后,返回到command中,CPU继续运行command。,第4章 MASM汇编基础及上机,4.6 汇编程序的编写与执行汇编程序从写出到执行的过程:1.编写源程序1.txt2.编译masm 1.txt 1.obj3.连接link 1.obj 1.exe4.加载到内存并运行,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MASM 汇编 基础 上机
链接地址:https://www.31ppt.com/p-6511611.html