学习交流

当前位置 /首页/母婴教育/学习交流/列表

汇编语言程序的上机过程

本处文档结合大学阶段《微机原理与接口技术》,汇编语言也是大学阶段重要的计算机语言,希望借实验说明让大家更好理解汇编语言这一块。

汇编语言程序的上机过程

操作方法

(01)一、 建立汇编语言的工作环境为运行汇编语言程序至少要在磁盘上建立以下文件:1、 编辑程序,如2、 汇编程序,如3、 连接程序,如4、 调试程序,如必要时,还可建立如,等文件。

汇编语言程序的上机过程 第2张

(02)二、在计算机上运行汇编语言的步骤1、 用编辑程序建立ASM源文件,以ASM作为扩展名2、 用汇编程序把ASM文件转换成OBJ文件3、 用连接程序把OBJ文件转换成可执行文件4、 在DOS提示符下直接键入可执行文件名即可执行该程序

汇编语言程序的上机过程 第3张

(03)三、 建立ASM文件建立ASM文件的编辑程序可以是DOS自身带的编辑程序,在DOS提示符下键入EDIT命令即可出现EDIT界面,其操作如下:D:>edit源程序输入完后,以ASM作为扩展名进行保存,假设所保存的文件名为:。ASM源文件的格式1:;定义数据段,如果需要的话,其中segment和ends是一对伪操作,表示段的开始和结束data segment ;数据段开始;定义数据段的主体,如定义变量data ends ;数据段结束;定义附加段,如果需要的话extra segment ;附加段开始;定义附加段的主体,如定义变量extra ends ;附加段结束;定义代码段,必须的code segment ;代码段开始main proc far ;程序的主体部分,proc和endp这一对伪操作表示一个程序模块的开始和结束assume ds:data, es:extra, cs:code ;assume 伪操作指定某个段分配给哪个段寄存器start: ;程序的入口地址push ds ;保存原数据段sub ax,ax ;ax寄存器清零,作为数据段0偏移地址push ax ;数据段0偏移地址压入堆栈中mov ax,datamov ds,ax ;把数据段地址装入数据段寄存器dsmov ax,extramov es,ax ;把附加段地址装入附加段寄存器es;自己所要实现的功能源代码在此添加ret ;程序结束后返回DOSmain endp  ;程序的主体部分结束code ends ;代码段结束end start  ;汇编程序的结束,程序在start处开始执行ASM源文件的格式2:;定义数据段,如果需要的话,其中segment和ends是一对伪操作,表示段的开始和结束data segment ;数据段开始;定义数据段的主体,如定义变量data ends ;数据段结束;定义附加段,如果需要的话extra segment ;附加段开始;定义附加段的主体,如定义变量extra ends ;附加段结束;定义代码段,必须的code segment ;代码段开始main proc far ;程序的主体部分,proc和endp这一对伪操作表示一个程序模块的开始和结束assume ds:data, es:extra, cs:code ;assume 伪操作指定某个段分配给哪个段寄存器start: ;程序的入口地址mov ax,datamov ds,ax ;把数据段地址装入数据段寄存器dsmov ax,extramov es,ax ;把附加段地址装入附加段寄存器es;自己所要实现的功能源代码在此添加mov ax,4c00h ;程序结束后返回DOSint 21hmain endp  ;程序的主体部分结束code ends ;代码段结束end start  ;汇编程序的结束,程序在start处开始执行该步以及以下几步在电脑上一边讲解,一边演示给同学们看。

汇编语言程序的上机过程 第4张
汇编语言程序的上机过程 第5张
汇编语言程序的上机过程 第6张
汇编语言程序的上机过程 第7张
汇编语言程序的上机过程 第8张

(04)四、 用MASM程序产生OBJ文件源文件建立后,就要用汇编程序对源文件汇编,汇编后产生二进制目标文件(以OBJ作为扩展名),其操作如下:D:>masm 汇编程序输入的是ASM文件,其输出文件可以是3个,第一个是OBJ文件,这是我们汇编的主要目的。第二个是LIST文件,称为列表文件,这个文件列出源程序和机器语言程序清单,并给出符号表,因而可使程序调试更加方便,这个文件可有可无,如果不需要,则可对[]直接按回车键。LST清单的最后部分为段名表和符号表,表中分别给出段名、段的大小及有关属性,以及用户定义的符号名、类型和属性。第三个是CRF文件,这个文件用来产生交叉引用表REF,对于一般程序不需要建立此文件。为了建立交叉引用表,必须调用CREF程序。至此,汇编过程已经完成了。但是,汇编程序还有另一个重要功能,可以给出源程序的出错信息。警告信息(warning errors)指出汇编程序所认为的一般性错误,严重警告错误(severe errors)则指出汇编程序认为已使汇编程序无法进行正确汇编的错误。除给出错误的个数外,汇编程序还给出出错信息,包括出错的行和错误类型。当然汇编程序只能给出程序中的语法错误,至于程序的算法或编制程序中的其他错误则程序的调试时去解决。

汇编语言程序的上机过程 第9张

(05)五、 用LINK程序产生EXE文件在DOS提示符下键入LINK命令即可,具体的操作如下:D:>link INK程序有两个输入文件OBJ和LIB。OBJ是我们需要连接的目标文件,LIB则是程序中需要用到的库文件,如果程序中没有用到库文件,则直接按回车健。LINK程序有两个输出文件EXE和MAP文件,EXE文件就是可执行文件,MAP文件是连接程序的列表文件,又称为连接映像,它给出每个段在存储器中的分配情况。

汇编语言程序的上机过程 第10张
汇编语言程序的上机过程 第11张

(06)六、 程序的执行在DOS提示符下直接键入可执行的文件名即可,具体的操作如下:D:>ex

汇编语言程序的上机过程 第12张

(07)七、 举例下面这个源代码的功能是在屏幕上显示一个字符串“This is my first ASM program.”。data segmentstring db 'This is my first ASM program.',13,10,'$'  ;字符串以’$’符号结尾,以单引号括起来data endscode segmentmain proc farassume cs:code,ds:data ;assume 伪操作指定某个段分配给哪个段寄存器,但它不能把段地址装入段寄存器中start: ;程序的入口地址push ds ;save old data segmentsub ax,ax ;ax寄存器清零,作为数据段0偏移地址push ax ;零偏移地址入栈mov ax,datamov ds,ax ;把数据段地址装入数据段寄存器dslea dx,string ;把字符串首地址装入dx寄存器,或写成mov dx, offset stringmov ah,9 ;DOS功能调用,在屏幕上显示字符串int 21h ;DOS中断ret ;return to DOSmain endpcode endsend start ;汇编的结束,程序在此执行

汇编语言程序的上机过程 第13张
TAG标签:汇编语言 上机 #