《汇编语言》王爽老师课件.ppt
《《汇编语言》王爽老师课件.ppt》由会员分享,可在线阅读,更多相关《《汇编语言》王爽老师课件.ppt(61页珍藏版)》请在三一办公上搜索。
1、广东海洋大学信息学院计算机科学与技术系,汇编语言课件,王爽 著清华大学出版社主讲-叶晓霞,广东海洋大学信息学院,广东海洋大学信息学院计算机科学与技术系,第4章 第1个程序,4.1 一个源程序从写出到执行的过程4.2 源程序4.3 编辑源程序4.4 编译4.5 连接4.6 以简化的方式进行编译和连接4.7 1.exe的执行4.8 可执行文件中的程序装入内存并运行的原理4.9 程序执行过程的跟踪,广东海洋大学信息学院计算机科学与技术系,引言,现在我们将开始编写完整的汇编语言程序,用编译器将它们编译成为可执行文件(如:*.exe文件),在操作系统中运行。这一章,我们将编写第一个这样的程序。,广东海洋
2、大学信息学院计算机科学与技术系,4.1 一个源程序从写出到执行的过程,一个汇编语言程序从写出到最终执行的简要过程:编写-编译-连接-执行演示,使用文本编辑器(如Edit、记事本等),用汇编语言编写汇编源程序。,使用汇编语言编译程序对源程序进行编译,产生目标文件;再用连接程序对目标文件进行连接,生成可在操作系统中直接运行的可执行文件。,在操作系统中,执行可执行文件中的程序。可执行文件中包含两部分内容:程序(从源程序中的汇编指令翻译过来的机器码)和数据(源程序中定义的数据);相关的描述信息(比如:程序有多大、要占多少内存空间等)。,广东海洋大学信息学院计算机科学与技术系,执行可执行文件中的程序,操
3、作系统依照可执行文件中的描述信息,将可执行文件中的机器码和数据加载入内存,并进行相关的初始化(比如:设置CS:IP指向第一条要执行的指令),然后由CPU执行程序。,广东海洋大学信息学院计算机科学与技术系,广东海洋大学信息学院计算机科学与技术系,4.2 源程序,汇编指令伪指令 XXX segment XXX ends end assume,广东海洋大学信息学院计算机科学与技术系,4.2 源程序,汇编指令有对应的机器码的指令,可以被编译为机器指令,最终为CPU所执行。,广东海洋大学信息学院计算机科学与技术系,4.2 源程序,伪指令没有对应的机器码的指令,最终不被CPU所执行。谁来执行伪指令呢?伪指
4、令是由编译器来执行的指令,编译器根据伪指令来进行相关的编译工作。,广东海洋大学信息学院计算机科学与技术系,定义一个段,segment和ends是一对成对使用的伪指令,这是在写可被编译器编译的汇编程序时,必须要用到的一对伪指令。功能:定义一个段,segment说明一个段开始,ends 说明一个段结束。一个段必须有一个名称来标识,使用格式为:段名 segment 段名 ends一个汇编程序是由多个段组成的,这些段被用来存放代码、数据或当作栈空间来使用。一个有意义的汇编程序中至少要有一个段,这个段用来存放代码。(汇编语言源程序至少要有一个代码段),广东海洋大学信息学院计算机科学与技术系,程序结束标记
5、,End 是一个汇编程序的结束标记,编译器在编译汇编程序的过程中,如果碰到了伪指令 end,就结束对源程序的编译。如果程序写完了,要在结尾处加上伪指令end。否则,编译器在编译程序时,无法知道程序在何处结束。注意:不要搞混了end和ends。,广东海洋大学信息学院计算机科学与技术系,寄存器与段的关联假设,assume:含义为“假设”。它假设某一段寄存器和程序中的某一个用 segment ends 定义的段相关联。通过assume说明这种关联,在需要的情况下,编译程序可以将段寄存器和某一个具体的段相联系。格式 段寄存器:段名,广东海洋大学信息学院计算机科学与技术系,4.2 源程序,源程序中的“程
6、序”汇编源程序:伪指令(编译器处理)汇编指令(编译为机器码)程序:源程序中最终由计算机执行、处理的指令或数据。注意,广东海洋大学信息学院计算机科学与技术系,注意,我们可以将源程序文件中的所有内容称为源程序,将源程序中最终由计算机执行处理的指令或数据,称为程序。程序最先以汇编指令的形式存在源程序中,经编译、连接后转变为机器码,存储在可执行文件中,图示,广东海洋大学信息学院计算机科学与技术系,程序经编译连接后变为机器码,广东海洋大学信息学院计算机科学与技术系,4.2 源程序,标号一个标号指代了一个地址。codesg:放在segment的前面,作为一个段的名称,这个段的名称最终将被编译、连接程序处理
7、为一个段的段地址。,广东海洋大学信息学院计算机科学与技术系,4.2 源程序,程序的结构任务:编程运算 23。定义一个段实现处理任务程序结束段与段寄存器关联,汇编程序 assume cs:abc abc segment mov ax,2 add ax,ax add ax,ax abc ends end,广东海洋大学信息学院计算机科学与技术系,4.2 源程序,程序返回我们的程序最先以汇编指令的形式存在源程序中,经编译、连接后转变为机器码,存储在可执行文件中,那么,它怎样得到运行呢?(讨论)现在,我们知道,一个程序结束后,将CPU的控制权交还给使它得以运行的程序,我们称这个过程为:程序返回。如何返回
8、呢?,广东海洋大学信息学院计算机科学与技术系,DOS中的程序运行,DOS是一个单任务操作系统。一个程序P2在可执行文件中,则必须有一个正在运行的程序P1,将P2从可执行文件中加载入内存后,将CPU的控制权交给P2,P2才能得以运行。P2开始运行后,P1暂停运行。而当P2运行完毕后,应该将CPU的控制权交还给使它得以运行的程序P1,此后,P1继续运行。,广东海洋大学信息学院计算机科学与技术系,4.2 源程序,程序返回应该在程序的末尾添加返回的程序段。mov ax,4c00H int 21H这两条指令所实现的功能就是程序返回。几个和结束相关的内容,广东海洋大学信息学院计算机科学与技术系,段结束、程
9、序结束、程序返回,广东海洋大学信息学院计算机科学与技术系,语法错误和逻辑错误,语法错误程序在编译时被编译器发现的错误;容易发现。aume cs:abc abc segment mov ax,2 add ax,ax add ax,ax end,广东海洋大学信息学院计算机科学与技术系,语法错误和逻辑错误,逻辑错误程序在编译时不能表现出来的、在运行时发生的错误;不容易发现。,assume cs:abc abc segment mov ax,2 add ax,ax add ax,ax mov ax,4c00H int 21H abc ends end,广东海洋大学信息学院计算机科学与技术系,4.3 编
10、辑源程序,进入DOS方式,运行Edit,在其中编辑程序,如下图所示:,广东海洋大学信息学院计算机科学与技术系,4.4 编译,进入DOS方式,进入 C:masm 目录,运行masm.exe。如果源程序文件不是以 asm 为扩展名的话,就要输入它的全名。比如p1.txt。在输入源程序文件名的时候一定要指明它所在的路径。如果文件就在当前路径下,只输入文件名就可以。,广东海洋大学信息学院计算机科学与技术系,4.4 编译,输入要编译的源文件文件名后,按 Enter键。目标文件(*.obj)是我们对一个源程序进行编译要得到的最终结果。编译程序默认要输出的目标文件名为1.obj,所以可以不必再另行指定文件名
11、。,广东海洋大学信息学院计算机科学与技术系,4.4 编译,列表文件是编译器将源程序编译为目标文件的过程中产生的中间结果。可以不生成这个文件,直接按 Enter键即可。,广东海洋大学信息学院计算机科学与技术系,4.4 编译,编译程序提示输入交叉引用文件的名称。这个文件同列表文件一样,是编译器将源程序编译为目标文件过程中产生的中间结果。可以不生成这个文件,直接按 Enter 键即可。,广东海洋大学信息学院计算机科学与技术系,4.4 编译,对源程序的编译结束,编译器输出的最后两行告诉我们这个源程序没有警告错误和必须要改正的错误。,广东海洋大学信息学院计算机科学与技术系,4.4 编译,一般来说,有两类
12、错误使我们得不到所期望的目标文件:(1)我们程序中有“Severe Errors”;(2)找不到所给出的源程序文件。,广东海洋大学信息学院计算机科学与技术系,4.5 连接,在对源程序进行编译得到目标文件后,我们需要对目标文件进行连接,从而得到可执行文件。继续上一节的过程,我们再将C:masm1.obj连接为C:masm1.exe。,广东海洋大学信息学院计算机科学与技术系,4.5 连接,进入DOS方式,进入C:masm目录,运行link.exe。如果目标文件不是以obj为扩展名的话,就要输入它的全名。比如:p1.bin。在输入目标文件名的时候,要注意指明它所在的路径。这里,我们要连接的文件是当前
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 汇编语言 老师 课件
链接地址:https://www.31ppt.com/p-6077678.html