汇编源程序上机操作过程
实验一 汇编语言程序设计的实验环境及上机步骤
实验一熟悉汇编语言程序设计的实验环境及上机步骤一、实验目的:1、掌握文本编辑程序EDIT的基本使用方法。
2、熟练掌握汇编语言上机操作的基本步骤,学会汇编语言程序的编辑、汇编、连接、运行等操作方法。
二、上机实验指导(一)实验环境1.硬件环境微型计算机(Intel x86系列CPU)一台2. 软件环境⏹Windows98/2000/XP操作系统⏹文本编辑器(NOTEPAD(记事本))⏹汇编程序(MASM.EXE)⏹连接程序(LINK.EXE)(二)上机实验步骤上机步骤总结如下:1.把汇编程序拷贝到 C:\ASM\2.用记事本建立ASM源程序,保存为C:\ASM\HELLO.ASM3.汇编 C:\ASM>MASM HELLO.ASM<回车>4.链接C:\ASM>LINK HELLO.OBJ<回车>5.执行C:>ASM>HELLO〈回车〉下面详细介绍上机步骤:1.确定源程序的存放目录建议源程序存放的目录名为ASM(或MASM),并放在C盘或D盘的根目录下。
创建方法:找到C盘的根目录,在C盘的根目录窗口中点击右键,在弹出的菜单中选择“新建”→“文件夹”,并把新建的文件夹命名为ASM。
请把MASM.EXE、LINK.EXE都拷贝到此目录中。
2.建立ASM源程序使用NOTEPAD(记事本)文本编辑器建立ASM源程序。
打开记事本,输入源程序后,保存为后缀为.ASM的文件,保存路径为C:\ASM\HELLO.ASM。
3.用MASM.EXE汇编源程序产生OBJ目标文件具体操作如下:在DOS命令提示符窗口中操作选择“开始”→“程序”→“附件”→“命令提示符”,打开DOS命令提示符窗口,然后用CD命令转到源程序目录下,接着输入MASM命令:C:\Documents and Settings>cd..(回车,退回到上一级根目录)C:>CD ASM<回车>C:\ASM>MASM HELLO.ASM<回车>操作时的屏幕显示如图2所示。
汇编语言程序的上机过程
汇编语言的上机过程汇编语言程序的上机过程包括编辑、汇编、连接和执行这四个步骤。
汇编程序我们提供宏汇编程序MASM5.0和MASM6.14两个版本。
1、建立源程序文件建立和编辑汇编语言源程序可以使用EDIT、记事本、写字本,也可以使用TC等来输入源程序。
保存时,源程序文件的扩展名必须是ASM。
练习:(1)在DOS下用编辑软件EDIT建立如下源程序文件,将文件保存为Hello.ASM,保存在MASM5目录下。
(调用命令“C:\EDIT”进入EDIT编辑器。
)源程序文件如下:DSEG SEGMENTMESSAGE DB 'HOW DO YOU DO?',0DH,0AH,24HDSEG ENDSCSEG SEGMENTASSUME CS:CSEG,DS:DSEGBEGIN:MOV AX,DSEGMOV DS,AXMOV DX,OFFSET MESSAGEMOV AH,9INT 21HMOV AH,4CHINT 21HCSEG ENDSEND BEGIN(2)编程计算1+2+3+ ……+100,和放在AX寄存器中,要求用循环实现。
对于MASM5.0和MASM6.14两个版本,编译和连接的方法有所不同。
以下分别就两个版本的编译和连接的方法进行讲解。
如果使用MASM5.0的话,操作方法如下(以HELLO.ASM源程序文件为例):2、对源程序进行汇编,生成目标文件HELLO.OBJ。
操作:(1)在DOS下进入MASM5.0的目录,如C:\MASM5>(2)敲入命令: MASM HELLO说明:.obj文件:目标代码文件,纯二进制代码文件,不能直接显示在屏幕上。
.lst文件:包含源程序中各语句及其对应的目标代码,各语句的偏移量等相关信息,对调试程序有帮助,但一般情况不需要。
.crf文件:交叉索引文件,给出源程序中定义的符号引用情况,初学时不需建立。
3、连接目标文件,生成执行文件HELLO.EXE,操作:敲入命令LINK HELLO说明:.EXE文件:可执行文件.MAP文件:连接映象文件,包括各个段在存储器中的分配情况,初学时不需要。
汇编语言程序设计的上机过程
例 1.1求平均数。
试编写一程序:在数据段中定义一个5字节数据的数组array,把它们看作有符号数求其平均数,结果送avg内存单元。
程序框图见图1.1:图1.1 例1.1的程序框图上机过程如下:1.调用文本编辑程序Edit建立asm文件Edit是Dos系统环境下的编辑工具,当然读者也可以用其它的W32编辑工具如EditPlus、Ultra edit、NotePad等软件在Windows下来建立源文件。
下面假设启动的是Dos操作系统或启动Windows切换到Command命令窗口(为便于讨论下面均以Dos系统说明之),汇编语言上机的工作环境在E:\masm子目录下。
键入以下命令:E:\masm\edit sample.asm使用该命令建立以sample.asm为文件名的源文件如图1.2所示。
然后,保存文件返回到Dos 系统。
;*****************************************************************************data segment ;定义数据段array db 1,2,3,4,5avg db ?data ends;***************************************************************************** code segment ;定义代码段;----------------------------------------------------------------------------- main proc far ;定义主过程assume ds:data,cs:codestart: ;程序的入口地址标号push ds ;以下3条指令为返回Dos系统做准备xor ax,axpush ax;mov ax,data ;装载Ds段寄存器mov ds,ax;lea si,array ;设置数组的指针simov cx,5 ;装载循环计数器cxmov al,0 ;累加器al清零next: ;循环求累加和mov dl,[si]add al,dlinc siloop nextcbw ;将al中的累加和扩展到axmov bl,5idiv bl ;商在al中,余数在ah中mov avg,al;ret ;返回到Dos系统main endp ;主过程结束;--------------------------------------------------------------------------------------------------------------------- code ends ;代码段结束;***************************************************************************** end start ;整个程序结束;图1.2 例1.1的源文件sample.asm2.调用汇编程序Masm对源文件汇编产生目标文件sample.obj键入以下命令:E:\masm\ masm sample屏幕显示如下:Microsoft (R) Macro Assembler Version 5.00Copyright (C) Microsoft Corp 1981-1985, 1987. All rights reserved.Object filename [sample.OBJ]:Source listing [NUL.LST]:Cross-reference [NUL.CRF]:50956 + 450516 Bytes symbol space free0 Warning Errors0 Severe Errors上述三个问题以回车作为默认回答,如汇编指示出错则须重新调用编辑程序修改错误,直至汇编通过为止。
汇编上机流程如下
第一次上机流程如下:1.将Masm615文件夹拷贝到D盘下;2.编写汇编源程序(扩展名为.asm)。
新建一个word文档或者记事本,输入源程序,然后将其存入D:\Masm615目录下,扩展名改为.asm,如exam.asm(第一次上机的程序为P182中7.1.3里的源程序);3.点击开始——运行,输入cmd,之后点击确定按钮,弹出DOS命令框;4.在命令框中输入D:,再敲回车,进入D盘;5.接着输入CD masm615,再敲回车,进入D:\masm615目录下;6、以下的内容遵照P282第七章7.1.3里讲述的上机内容,(1)首先输入masm exam.asm ,再敲回车,对源程序进行汇编。
如果源程序没有错误,汇编成功后生成文件exam.obj7.(2)输入link exam.obj ,再敲回车,连接目标文件。
简单方式下出现的4个提示依次提的4个问题,直接按回车就可以,自动选择默认选项。
如果成功,会生成可执行文件exam.exe 。
8.(3)输入exam,再按回车,运行可执行文件,得到运行结果。
以后每次上机的流程都和第一次相同,只是源程序不同。
第一次上机的源程序:输出显示字符串HOW ARE YOU! P282的7.1.3的程序。
(exam.asm ) 第二次上机的源程序:运行例3.15,验证输入输出。
(315.asm)第三次上机的源程序:调试顺序结构程序。
P145的课后题4.1,计算2]310)0232([*-=H H z ,结果为144,将结果以十进制的形式输出显示。
第四次上机的源程序:调试分支结构程序。
P108例题4.3 (43.asm )第五次上机的源程序:调试循环结构程序 给出十个有符号数,编程求出其中的最大值,并将结果输出显示 。
(49.asm )第六次上机的源程序:调试子程序的应用 410.asm 分别以十进制和十六进制的形式输出显示指定数据 第七次上机的源程序:运行模块程序设计第八次上机的源程序:运行中断程序。
微机原理实验汇编程序上机过程
第一节汇编程序的开发过程本节主要介绍了汇编语言源程序的编辑、汇编、连接的方法,DEBUG调试命令及其使用方法。
一、简介汇编语言源程序:用汇编语句编写的解决应用问题的程序。
汇编程序:将汇编语言源程序翻译成机器语言程序的系统。
汇编:将汇编语言程序翻译成机器语言程序的过程。
在编辑汇编语言源程序时,对计算机硬件工作环境无特殊要求,对软件工作环境要求也很简单,只需用建立ASCII码文本文件的软件即可。
(1)编辑软件行编辑软件:全屏编辑软件:WPS、、、WORD、PE等。
当输入、建立和修改源程序时,可任选一种编辑软件,不要用格式控制符,要求编辑完成的文件扩展名一定是.ASM。
(2)汇编程序有汇编ASM.EXE、宏汇编MASM.EXE及TASM等,一般使用宏汇编MASM.EXE,因它比ASM.EXE功能强。
TASM适用于8086/8088~Pentium系列指令系统所编写的汇编语言程序,是比较先进的汇编工具。
(3)连接程序用连接程序LINK.EXE或TLINK.EXE,将MASM.EXE产生的机器代码程序(.OBJ)文件连接成可执行程序.EXE,TLINK比LINK更先进。
(4)辅助工具程序(.EXE)进行汇编语言程序调试和文件格式转换的程序有: 动态调试程序EXE2BIN.EXE 文件格式转换程序CREF.EXE 交叉引用程序编辑、汇编、连接、调试过程如下图所示。
TD(turbo Debugger简称)也是动态调试程序,可在DOS和Windows环境下运行,用户界面十分友好。
二、汇编源程序用编辑软件建立的源程序.ASM文件,必须经过汇编才能产生.OBJ文件。
为此,需键入:C:>MASM <源文件名>↘或C:>MASM↘按前一种格式键入,屏幕上显示:Microsoft(R) Macro assemble Version 5.00Copyright(C) Microsoft Corp 1981-1985,1987 ALL rights reservedOBJ filename[<file>.obj]:Source listing[nul.lst]:Cross-reference[nul.crf]:以上信息中方括中为该项提示的缺省回答值,冒号后面等待用户输入信息,若不改变缺省值则直接按回车键。
实验二-汇编语言程序的上机步骤
实验二汇编语言程序的上机步骤一、实验目的熟练掌握汇编语言程序的上机步骤和程序调试方法。
二、实验内容及步骤1.通过CMD命令进入DOS方式。
2.通过CD命令和MD命令建立和进入用户程序目录。
3.将实验一笑脸程序补充为一个完整的汇编语言程序。
4.熟读第五部分内容:环境简介5.通过编辑——汇编——连接步骤生成.EXE形式的笑脸程序Smile.exe。
6.运行Smile.exe程序,观察运行结果。
7.用“DUBUG Smile.exe”命令将Smile.exe程序装入内存,通过R命令读取Smile.exe程序在内存的地址。
8.用反汇编U命令观察笑脸程序。
9.重复实验一“使用DEBUG调试程序”中的步骤(4)和(5),观察程序运行结果。
10.验证题以下程序段用以显示信息“Press any key when you ready.”。
在用户按下任一键后,另起一行显示信息“Input your password:”。
DSEG SEGMENT use16MESS1 DB ‘Press any key when you ready’,0AH,0DH,‘$’MESS2 DB ‘Input your password:’,’$’DSEG ENDSSSEG SEGMENT STACKDB 80H DUP(0)SSEG ENDSCSEG SEGMENTASSUME DS:DSEG,SS:SSEG,CS:CSEGSTART:MOV AX,DSEGMOV DS,AXMOV DX,OFFSET MESS1MOV AH,09HINT 21H ;显示“press any key when you ready.”MOV AH,08HINT 21H ;等待用户按任一键MOV DX,OFFSET MESS2MOV AH,09HINT 21H ;显示“Input your password:”MOV AH,4CHINT 21HCSEG ENDSEND START三、实验要求认真完成实验每一步骤,详细记录实验过程、现象和结果,及时整理实验报告。
汇编语言程序的上机过程
汇编语言程序的上机过程
1.建立源程序
用记事本写写代码,把扩展名改为.asm,存入masm文件夹中,保存类型改为“所有文件”,否则系统默认为.txt文件保存。
2.用MASM程序编译源文件,产生目标文件。
1)先进入C:\MASM>中
2)输入“masm MM”即masm 文件名(扩展名可以省略)
3)画蓝线的部分表示有0个警告和0个致命的错误,表示编译通过了。
3
目标文件查看:
3.用Link程序连接目标文件,产生可执行程序
输入“LINK 文件名.obj(扩展名可以省)”eg: LINK MM.OBJ
通过连接产生MM.exe文件,在命令符窗口输入dir命令查看。
4.直接输入文件名查看输出内容。
5.用debug程序调试与运行可执行文件
输入debug命令,屏幕显示:
-
“-”号表示debug系统提示符,
1)用u命令反汇编该文件,屏幕显示如下:
2)用d命令了解数据存储
格式为:
d 数据段地址:0
3)用g命令执行该程序
格式为
g=程序的首地址:0
表示程序正常终止,文件中的文件显示出来。
3)用r显示寄存器内容命令
这里的cs和IP显示了当前指向的指令及其代码,即即将执行的下一条语句。
汇编语言上机过程
汇编语言程序的上机过程一、上机环境要运行调试汇编语言程序,至少需要以下程序文件:▪编辑程序:或其他文本编辑工具软件,用于编辑源程序。
▪汇编程序:MASM.EXE,用于汇编源程序,得到目标程序。
▪连接程序:LINK.EXE,用于连接目标程序,得到可执行程序。
▪调试程序:DEBUG.EXE,用于调试可执行程序。
二、上机过程汇编语言程序上机操作包括:编辑、汇编、连接和调试几个阶段。
1.编辑源程序用文本编辑软件创建、编辑汇编源程序。
常用编辑工具有:、记事本、Word等。
无论采用何种编辑工具,生成的文件必须是纯文本文件,所有字符为半角,且文件扩展名为.asm(文件名不分大小写,由1~8个字符组成)。
2.汇编用汇编工具对上述源程序文件(.asm)进行汇编,产生目标文件(.obj)等文件。
汇编程序的主要功能是:检查源程序的语法,给出错误信息;产生目标程序文件;展开宏指令。
汇编过程如下:在DOS状态下,输入命令:MASM MYFILE.ASM(回车),即启动了汇编程序。
此命令执行后,会出现下面的3行信息,依次按回车键(即选择默认值)即可建立3个输出文件,其扩展名分别为:.OBJ(目标文件),.LST(列表文件)和.CRF(交叉引用文件)。
Object Filename [MYFILE.OBJ]:Source Listing [Nul.LST]:Cross Reference [Nul.CRF]:依次按回车键,进行选择后,汇编程序就对汇编源程序进行汇编。
如果汇编过程中发现有语法错误,则屏幕上会显示出错语言的位置和出错的类型。
此时,需要进行修改,然后再进行汇编。
如此进行,直至汇编无错误,得到目标文件为止。
3.连接汇编产生的目标文件(.obj)并不是可执行的程序,还要用连接程序把它转换为可执行的EXE文件。
连接过程如下:▪在DOS状态下,输入命令:LINK MYFILE.OBJ(回车),即可完成连接。
▪与汇编过程类似,如果连接过程中出错,那么程序会在屏幕上显示提示信息。
实验二 汇编语言程序上机过程
实验二汇编语言程序上机过程实验目的:1、掌握常用工具软件 PE,MASM和LINK的使用。
2、伪指令: SEGMENT,ENDS,ASSUME,END,OFFSET,DUP。
3、利用的 1号功能实现键盘输入的方法。
4、了解.EXE文件和.COM文件的区别及用INT 21H 4C号功能返回系统的方法。
程序:data s egmentmessage db 'This is a sample program of keyboard and display' db 0dh,0ah,'Please strike the key!',0dh,0ah,'$'data e ndsstack segment para stack 'stack'db 50 dup(?)stack endscode s egmentassume cs:code, ds:data, ss:stack start: mov ax, datamov ds, axmov dx, offset messagemov ah,9int 21hagain: mov ah,1int 21hcmp al,1bhje exitcmp al,61hjc ndcmp al,7ahja ndand al,11011111b nd: mov dl, almov ah,2int 21hjmp againexit: mov ah,4chint 21hcode e ndsend start实验步骤:1、用用文字编辑工具(记事本或EDIT)将源程序输入,其扩展名为.ASM。
2、用MASM对源文件进行汇编,产生.OBJ文件和.LST文件。
若汇编时提示有错,用文字编辑工具修改源程序后重新汇编,直至通过。
3、用TYPE命令显示1产生的.LST文件。
4、用LINK将.OBJ文件连接成可执行的.EXE文件。
5、在DOS状态下运行LINK产生的。
微机原理汇编语言的上机过程 实验报告
微机原理技术与接口实验报告学院:专业:班级:姓名:学号:汇编语言程序的上机过程实验目的通过简单地操作了解汇编语言程序的基本内容,体会汇编语言的运行,为以后的实验打下一定的基础。
实验原理及操作步骤一、上机环境❖要运行调试汇编语言程序,至少需要以下程序文件:▪编辑程序:或其他文本编辑工具软件,用于编辑源程序。
▪汇编程序:MASM.EXE,用于汇编源程序,得到目标程序。
▪连接程序:LINK.EXE,用于连接目标程序,得到可执行程序。
▪调试程序:DEBUG.EXE,用于调试可执行程序。
二、上机过程❖汇编语言程序上机操作包括:编辑、汇编、连接和调试几个阶段。
1.编辑源程序❖用文本编辑软件创建、编辑汇编源程序。
常用编辑工具有:、记事本、Word等。
❖无论采用何种编辑工具,生成的文件必须是纯文本文件,所有字符为半角,且文件扩展名为.asm(文件名不分大小写,由1~8个字符组成)。
2.汇编❖用汇编工具对上述源程序文件(.asm)进行汇编,产生目标文件(.obj)等文件。
❖汇编程序的主要功能是:检查源程序的语法,给出错误信息;产生目标程序文件;展开宏指令。
❖汇编过程如下:❖在DOS状态下,输入命令:MASM MYFILE.ASM(回车),即启动了汇编程序。
❖此命令执行后,会出现下面的3行信息,依次按回车键(即选择默认值)即可建立3个输出文件,其扩展名分别为:.OBJ(目标文件),.LST(列表文件)和.CRF(交叉引用文件)。
Object Filename [MYFILE.OBJ]:Source Listing [Nul.LST]:Cross Reference [Nul.CRF]:依次按回车键,进行选择后,汇编程序就对汇编源程序进行汇编。
如果汇编过程中发现有语法错误,则屏幕上会显示出错语言的位置和出错的类型。
此时,需要进行修改,然后再进行汇编。
❖如此进行,直至汇编无错误,得到目标文件为止。
3.连接❖汇编产生的目标文件(.obj)并不是可执行的程序,还要用连接程序把它转换为可执行的EXE文件。
实验二 汇编语言程序上机过程
实验二汇编语言程序上机过程实验目的:熟悉8086/88汇编语言编程格式及上机设计调试过程。
如图5-1所示。
实验器材:计算机一台,DOS或WINDOWS环境,、MASM.EXE、LINK.EXE、DEBUG.EXE 等程序文件。
实验内容及步骤:1、编辑录入源程序建议EDIT后的文件名不要省略,源程序扩展名必须为ASM,不能省略。
EDIT界面如图6-1所示,激活菜单用鼠标单击或ALT+菜单名的第一个字母。
最常用的文件下拉中Save(保存)、Exit(退出,若未存盘会提示是否存盘)两个命令,如果未存盘选择Exit则会弹出如图6-2所示的对话框询问是保存退出(Yes)、不保存退出(No)、取消返回继续编辑(Cancel)。
例如:执行如下命令图6-1 EDIT的基本界面图6-2 EDIT的Exit命令对话框2、汇编汇编命令格式如下:建议源程序基本名不要省略。
例如:;扩展名“.ASM”可省略若没有错误显示如下:Microsoft (R) Macro Assembler Version 5.10Copyright (C) Microsoft Corp 1981, 1988. All rights reserved.Object filename [aa.OBJ]: ;目标文件名Source listing [NUL.LST]: ;源程序列表文件,加行号便于查错Cross-reference [NUL.CRF]: ;交叉参考文件,名字信息49576 + 420869 Bytes symbol space free0 Warning Errors ;警告错误0 Severe Errors ;严重错误,若有此类错误,不能生成目标OBJ文件有关错误信息的含义请参看教材附录C。
如果省略源程序名则第一个提示信息为:Source filename [.ASM]: ;源程序文件名3、连接连接命令格式如下:建议目标程序基本名不要省略。
实验二 汇编语言程序上机过程及调试
实验报告二课程微机原理实验名称汇编语言程序上机过程以及调试第页专业电子信息班级__ __ 学号_ __ 姓名实验日期:2014 年 3 月10 日报告退发(订正、重做)一、实验目的学习汇编语言程序设计的基本步骤,即编辑(EDIT)程序、汇编(MASM)、连接(LINK)和运行,使对汇编语言程序设计有一个初步的认识。
二、实验内容1、学习使用全屏幕文本编辑软件EDIT。
用EDIT输入一段给定的源程序。
2、用MASM对已存盘的源程序进行汇编,形成目标文件(.OBJ);如有错误,再返回到EDIT进行修改。
3、用LINK对上述形成的目标文件进行连接,形成可执行文件(.EXE)4、在DOS提示符下运行该可执行文件。
[汇编语言程序的编写格式]汇编语言程序一般由几个段组成,它们分别是堆栈段,数据段,代码段。
任何一个源程序至少必须有一个代码段和一条作为源程序结束的伪指令END。
段的定义有两种格式,分述如下:1,完整的段定义格式:一个段由段头,段体,段尾组成,形式如下:段名SEGMENT[定位类型][组合类型][‘类别’]……段名ENDS其中SEGMENT后的参数一般可省略,详细说明参阅后面的有关章节。
2,简化的段定义格式(MASM5.0版本提供)每段以.开始后跟固定的段名,一般形式如下:DOSSEG.MODEL 存储类型;“存储类型”可选择为SMALL。
.STACK[大小];堆栈段,“大小”指定堆栈的字节数。
.DATA;数据段。
.CODE[名字];代码段;一般只有一个代码段,名字可缺少……例1:用完整的段定义编写一源程序。
NAME EXAM1;可以省略DATA SEGMENT;定义数据段,以下是数据段的内容STR1 DB “HELLO,WELCOME!”,13,10,‘$’STR2 DB “DO YOU LIKE COMPUTER?(Y/N)”,13 10,‘$’STR3 DB “NICE!”,13,10,‘$’STR4 DB “SORRY!”,13,10,‘$’STR5 DB “UNKNOW,ANSWER AGAIN!(Y/N)”,DB 13,10,‘$’STR6 DB “SEE YOU NEXT TIME!”,13,10,‘$’DA TA ENDS ;数据段结束CODE SEGMENT ;定义代码段ASSUME CS:CODE;DS:DATA;以下是代码段内容START:MOV AX,DA TA;给数据段寄存器赋值MOV DS,AXMOV AH,9;显示一字符串的功能号MOV DX,OFFSET STR1;显示字符串STR1的偏址INT 21H;DOS功能调用ASK :MOV DX,OFFFSET STR2;显示字符串STR2INT 21HMOV AH,1;键盘输入一字符的功能号INT 21H;键入的字符ASCⅡ码在ALNOT AL;求反TEST AL,‘Y’;是否按下‘Y’或‘y’键JE NEXT1TEST AL,‘y’JE NEXT1TEST AL,‘N’;是否按下‘N’键或‘y’键JE NEXT2TEST AL, ‘n’JE NEXT2MOV DX,OFFSET STR5;不是按上述键MOV AH,9INT 21HJMP ASK;再返回ASKNEXT1:MOV DX,OFFSET STR3;是按下‘Y’或‘y’键MOV AH,9INT 21HJMP BYENEXT2:MOV DX,OFFSET STR4;是按下‘N’或‘n’键MOV AH,9INT 21HBYE:MOV DX,OFFSET STR6INT 21HMOV DL,7;喇叭响的ASCⅡ码MOV AH,2INT 21HMOV AH,4CH;退回DOSINT 21HCODE ENDS;代码段结束END START;源程序结束注:源程序中的每一行注释语句前一定要加分号‘;’,下同。
[理学]汇编源程序上机操作过程_OK
三、经过连接形成可执行文件
汇编、连接成功后,
生成的可执行文件
lt2.exe (已是二进制代
码的程序文件) 。
30
四、调试、运行可执行文件 调试程序: Microsoft:DEBUG Borland:TD
2
1、启动记事本 执行“开始”|“所有程序”
|“附件” |“记事本”命令,启 动记事本。
3
2、在记事本中输入源程序
4
3、保存源程序,生成源程序文件(源文件) 执行“文件”|“保存”命令,在弹出的“另存
为”对话框中,依次执行下列操作
1)设置文件保存路径,设为“d:\masm5”, 以使源文件与汇编程序MASM在同一文件夹 中。
19
4、用户需再次调用编辑程序修改源文件,并重新汇编,直 至汇编正确为止。
修改后的源文件
源文件中的第11行已改为 ADD AL,X+1
20
4、用户需再次调用编辑程序修改源文件,并重新汇编,直 至汇编正确为止。
按照前面所述步骤重新对修改后的 源文件进行汇编,汇编后若显示
0 Warning Errors 0 Severe Errors 表示汇编正确。
① 在提示符后输入“d:”,然后回车
10
② 在提示符后输入“cd\masm5”,然后回车
2、启动汇编程序MASM 当前系统工作路径已转换到汇编程序MASM 所在路径”d:\masm5”
汇编程序MASM所在路径”d:\masm5”, 是系统当前工作路径
11
2、启动汇编程序MASM 2)在提示符后键入“masm”, 以提问方式启动MASM
汇编语言程序上机过程(续)、顺序程序设计
实验2 汇编语言程序上机过程(续)、顺序程序设计一、实验目的1.通过宏汇编(MASM)上机操作,使学生进一步掌握汇编语言源程序的编辑、汇编、连接和执行的完整过程。
2.进一步掌握调试过程中各命令的作用及使用方法,了解汇编和连接过程。
3.掌握顺序程序的概念和设计方法。
4.掌握汇编语言源程序框架的结构,伪指令的功能及使用。
二、实验内容与要求要求学生按照教师的要求从下列编程题目中选择2-3题编写源程序、汇编、连接并调试得到正确结果。
1.编写程序计算Y=∑X1+X2+X3+X4+X5,其中Xi为字单元无符号数。
2.编写程序计算Z=(A+B)-(C-D),其中A=30H,B=20H,C=10H,D=05H均为字单元无符号数。
3.设X、Y、Z、V均为16位字单元有符号数,编程计算W=(V-(X*Y+Z-250))/X,结果的16位商在AX中,余数在DX中。
(X为非零数)4.写一个完整的程序放在代码段CODE_SEG,要求把数据段DATA_SEG中的DATA1和附加段EXTRA_SEG中DATA2相加,并把结果存放在DATA_SEG段中的SUM中。
其中DATA1 、DATA2和SUM均为双精度数,DATA1赋值为7725,DATA2赋值为-2341。
5.编写一个程序,将AX寄存器中的16位数分成四组,每组四位,然后把这四组数分别放在AL,BL,CL和DL中。
三、上机操作过程1>编写源程序我所选的是第4题和第5题。
2>建立源程序文件(MASM)先建立一个文本文档(TEXT),再转变成MASM格式,然后经过汇编程序的汇编,使其转为目标代码文件。
它是通过调用宏汇编MASM程序完成这一汇编操作的。
汇编程序还将对源文件进行语法检查,如发现有错,将给出错误原因。
程序设计者可根据它分析和修改源程序,并再经过汇编,直到无错误时为止,此时得到的是一个目标文件(OBJ文件)。
3>连接目标文件(LINK)目标文件为浮动的相对地址,是不可直接执行的。
汇编语言上机实验汇总
START: MOV AX,DATA MOV DS,AX LEA DX,INFON MOV AH,9 INT 21H LEA DX,BUF MOV AH,10 INT 21H MOV CL, [BUF+1] LEA DI,BUF+2 CALL DATACATE CALL IFYEARS JC A1 LEA DX,N MOV AH,9 INT 21H JMP EXIT A1: LEA DX,Y MOV AH,9 INT 21H EXIT: MOV AH,4CH INT 21H DATACATE PROC NEAR LEA SI,BUF+2 MOV BX,0 X3: MOV AL ,[SI] SUB AL ,30H MOV AH,0 XCHG AX,BX MOV DX,10D MUL DX XCHG AX,BX ADD BX,AX INC SI LOOP X3 MOV W,BX RET DATACATE ENDP IFYEARS PROC NEAR PUSH BX PUSH CX PUSH DX MOV AX,W MOV CX,AX MOV DX,0 MOV BX,4 DIV BX CMP DX,0 JNZ LAB1 MOV AX,CX MOV BX,100 DIV BX CMP DX,0 JNZ LAB2 MOV AX,CX MOV BX,400
18A2:011E CD21 INT 21 可见,要执行10条指令,至011B处停止 -G=100,011B AX=7777 BX=0000 CX=020C DX=0000 SP=0000 BP=0000 SI=0200 DI=0204 DS=18A2 ES=1892 SS=18A2 CS=18A2 IP=011B NV UP EI PL NZ NA PE NC 18A2:011B B8004C MOV AX,4C00 -D 200 20F 18A2:0200 78 56 34 12 A9 87 43 65-21 DE 77 77 43 43 83 06 xV4...Ce!.wwCC.. 和为7777DE21H,正确。 ⑥再取一组数据,查看运行结果。为此,首先用E命令修改数据。 -E 200 CD,AB,78,56,90,EF,34,12 -D 200 20F 18A2:0200 CD AB 78 56 90 EF 34 12-21 DE 77 77 43 43 83 06 ..xV..4.!.wwCC.. -G=100,11B AX=68AC BX=0000 CX=020C DX=0000 SP=0000 BP=0000 SI=0200 DI=0204 DS=18A2 ES=1892 SS=18A2 CS=18A2 IP=011B NV UP EI PL NZ NA PE NC 18A2:011B B8004C MOV AX,4C00 -D 200 20F 18A2:0200 CD AB 78 56 90 EF 34 12-5D 9B AC 68 43 43 83 06 ..xV..4.]..hCC.. 和为68AC9B5DH,错误。说明程序有问题。 ⑦再将断点设在完成低位字加法后,查看运行结果。 -G=100,112 AX=9B5D BX=0000 CX=020C DX=0000 SP=0000 BP=0000 SI=0200 DI=0204 DS=18A2 ES=1892 SS=18A2 CS=18A2 IP=0112 NV UP EI NG NZ NA PO CY 18A2:0112 8B4402 MOV AX,[SI+02] DS:0202=5678 -D 200 20F 18A2:0200 CD AB 78 56 90 EF 34 12-5D 9B AC 68 43 43 83 06 ..xV..4.]..hCC.. 低位和为9B5D,正确。说明错误可能出在后面 ⑧使用T命令从刚才的断点处向后单步调试,查看运行结果。 -T=112 AX=5678 BX=0000 CX=020C DX=0000 SP=0000 BP=0000 SI=0200 DI=0204 DS=18A2 ES=1892 SS=18A2 CS=18A2 IP=0115 NV UP EI NG NZ NA PO CY 18A2:0115 034502 ADD AX,[DI+02] DS:0206=1234 -T AX=68AC BX=0000 CX=020C DX=0000 SP=0000 BP=0000 SI=0200 DI=0204 DS=18A2 ES=1892 SS=18A2 CS=18A2 IP=0118 NV UP EI PL NZ NA PE NC 18A2:0118 89440A MOV [SI+0A],AX DS:020A=68AC AX寄存器的结果为68AC,而应为68AD。可见是本条加法指令使用错误,这里应使用带进位加法指令。 ⑨使用A命令装入正确指令后再次运行,察看结果。 -A 115 18A2:0115 ADC AX,[DI+02] 18A2:0118 -G=100,11B AX=68AD BX=0000 CX=020C DX=0000 SP=0000 BP=0000 SI=0200 DI=0204 DS=18A2 ES=1892 SS=18A2 CS=18A2 IP=011B NV UP EI PL NZ NA PO NC 18A2:011B B8004C MOV AX,4C00 -D 200 20F 18A2:0200 CD AB 78 56 90 EF 34 12-5D 9B AD 68 43 43 83 06 ..xV..4.]..hCC.. 和为68AD9B5DH,正确。对于这样一个简单程序一般来说不会再有问题。退出后修改源程序即可。 ⑩退出 -Q D:\MASM> 四、实验要求 (1)熟练掌握Debug的命令; (2)熟练掌握使用Debug调试汇编程序; (3)记录实验结果,写实验报告。
汇编语言源程序上机过程
实验任务
分析题意,绘制程序流程图;
编写汇编源程序,并以自己的班级学号的 组合为文件名保存。
如: j051_001_2.asm 表示计 051 班 001 号 同学的实验2的源程序。
汇编、连接并调试所编源程序。 按照实验指导书要求,撰写实验报告。
用文本编辑工具即可 注意:所保存的文件必须以.ASM作为文件 后缀名 用汇编程序MASM.EXE对源程序 .ASM文件进行汇编,得到.OBJ文件
汇编程序
连接程序
用连接程序LINK.EXE连接所生成的 .OBJ文件,得到.EXE文件
文件名,源程序中的变量名、助记符等不区分大小写
例
已知x,y,z,v是16位带符号数,请编程 完成下式算术运算,并把结果存入w单元。 (v-(x*y+z-540))/x
cwd add cx,ax adc bx,dx sub cx,0540d sbb bx,0 mov ax,v cwd sub ax,cx sbb dx,bx idiv x mov w,ax mov ah,4ch int 21h code ends end start
几个文件
.ASM——汇编源程序 .OBJ——目标文件 .LST——列表文件 .CRF——产生交叉引用表文件的文件(了解) .MAP——连接映像文件(了解) .EXE——可执行文件 .COM——可执行文件(了解)
汇编语言程序的上机过程
汇编语言程序的编辑与调试环境
汇编语言程序的上机过程 利用DEBUG调试汇编语言程序的方法
汇编语言程序的编辑与调试运行环境
编辑程序,如记事本等文本编辑工具软件;
汇编程序,如MASM.EXE;
连接程序,如LINK.EXE;
调试程序,如DEBUG.EXE。
汇编语言程序上机
汇编语言程序上机过程1.编写源程序进入MS-DOS方式,进入MASM40子目录,提示符后键入edit 源文件名.asm,回车,利用DOS的全屏幕编辑软件编写汇编语言源程序,存盘,退出也可以先在WINDOWS环境中用记事本编写源程序,存为扩展名为.asm的文件(注意文件保存在MASM40子目录下),再进入MS-DOS方式,进入MASM40子目录2.汇编源程序提示符后键入masm 源文件名.asm,回车,提示输入OBJ文件名,按回车提示输入LST文件名, 键入源文件名,回车这两步只要试一次,打开它们了解其作用即可,以后就一路按回车提示输入CRF文件名, 键入源文件名,回车汇编完成,源程序中如有错误,显示错误信息3.如汇编后报错,改正源程序中的错误,直至汇编无错,则生成源文件名.obj4.连接提示符后键入link 源文件名,回车,对于提示信息,全部按回车若无连接错误,则生成源文件名.exe5.运行提示符后键入源文件名,回车6. 提示符后键入exit,回车,退出DOS环境调试软件Debug使用说明:DOS环境下,提示符后键入debug 源文件名.exe,回车,出现提示符’_’1._u[address] (反汇编命令)从指定的地址起反汇编32个字节,若不指定,则从头开始或从上一个u命令的最后一条指令的下一个单元开始反汇编2._g[=address1] [address2] (运行命令)从指定的地址address1起执行,如不指定则从当前的CS:IP开始执行(address1为000则从头开始执行),当执行到后面的断点地址address2时,停止执行并显示当前所有寄存器及标志位的内容,和下一条将要执行的指令3._t[=address] [n](跟踪命令)从指定的地址address起执行n条(不指定n,则执行一条指令)后停下来, 显示当前所有寄存器及标志位的内容,和下一条将要执行的指令, 如不指定address则从当前的CS:IP开始执行4._d[address]或_d[range]在DS段寄存器经MOV指令传送有具体值后,从指定的数据段偏移地址address起开始显示80个字节或指定范围的字节的内容,如_d000 020显示数据段中偏移地址为000h至0020h的字节的内容,如在address前指定段寄存器(CS、SS、ES),也能观察到其它段的内容5._r (显示所有寄存器和标志位内容)6._q (退出debug)Debug的使用练习:●在DOS提示符下键入debug aswjsj2.exe●_u 回车(或_u000 回车)反汇编32个字节,显示内容为:代码段段地址:偏移地址机器代码指令(地址表达式的值已算出)可看出该指令的机器代码的存放地址和长度(即为几字节指令)问:(1)指令mov dl,2对应的机器代码为多少?是几字节指令?(2)在指令部分,原先的mov di,offset d1已变为mov di 000a,故可知变量d1在数据段中的偏移地址为000a,由于在数据段中d1,d2,z是连续定义的,故变量d2的偏移地址和z 的偏移地址各是多少?(3)原先的call p1已变为call 0080, 问过程p1在代码段中的起始偏移地址为多少?●_r 回车显示所有寄存器和标志位内容观察CS、IP的值●_t 5 回车(或_t=000 5 回车)从开头执行5条指令 (使每个段寄存器有了具体值)后停下_d000 回车察看数据段从偏移量为000开始的10个单元的内容,为多少?●_u000 回车察看源程序中标志1处的下一条指令,其偏移地址是多少?将它作为断点地址_g 断点地址,回车_d000a, 回车察看变量d1的值变为了多少?●采用类似的方法将标志2处的下一条指令作为断点,运行至断点处, 察看变量d2的值变为多少?●将标志3处的下一条指令作为断点,运行至断点处, 察看AL的值为多少?●将标志4处的下一条指令作为断点,运行至断点处, 察看AL的值为多少?弄清das指令的作用●将标志5处的下一条指令作为断点,运行至断点处,察看变量z的值为多少?●_q 回车结束Debug,返回DOS提示符下。
11--汇编语言程序的上机过程
零ZF
辅助进位AF 奇偶PF 进位CF
ZR(零)
AC(有进位) PE(偶) CY(有进位)
NZ(非零)
NA(无进位) PO(奇) NC(无进位)
格式2:
R 寄存器名 功能: 显示和修改指定寄存器的内容。 格式3: RF 功能: 显示和修改标志位的状态。
(6)汇编命令 格式1: A [ 地址 ] 功能: 从指定地址开始允许输入汇编语句,DEBUG将把它们汇编成机器代码, 相继存放在指定地址开始的存储单元中。
(2)建立ASM文件 通过使用文本编辑程序(例如记事本、写字板等)建立一个后缀名 为.A用汇编程序MASM对ASM源程序文件进行汇编,产生OBJ二进制目标文 件。基本操作方法为: > MASM ↙ 然后根据提示进行操作。
汇编程序的输入文件是ASM文件,其输出文件可以有以下三个。 ① OBJ二进制目标文件 该文件是汇编操作的主要目的,是必需的。
INT 20H 指令高字节
┇ 00FFH SS PSP最后一个字节
堆栈区第一个字节 (用户程序第一个字节)
┇ 堆栈区最后一个字节 用户堆栈段区
SP
栈底 ┇ 数据段区第一个字节 ┇ 数据段区最后一个字节 用户数据段区 用户程序区
┇
CS 用户程序第一条指令 ┇ IP 用户程序 第一条被执行的指令 ┇ 用户程序最后一条指令 ┇ 用户代码段区
↙
总结 汇编程序具有以下作用 ① 将指令性语句翻译为相应的机器代码指令。 ② 确定标号、过程名和变量名在各自逻辑段内的偏移地址,这个偏移 地址还不是这些名字的最终偏移地址。
链接程序具有以下作用 ① 在起始地址为00000H的地址空间中,安排所有逻辑段的空间位置, 从而确定出所有物理段在这个地址空间中的段地址。 ② 确定所有过程名、变量名和标号的段内偏移地址。
实验三 汇编语言程序上机操作方法
一 T AX=0233 BX=0000 CX=0011 DX=0038 SP=0000 BP=0000 SI=0000 DI=0000 DS=0B65 ES=0B65 SS=0B75 CS=0B75 IP=000B NV UP EI PL NZ NA PO NC_ 0B75:000B CD21_ INT_____21_ ・ 在_DEBUG_状态下执行程序 一 G 8 Program terminated normally ・ 退出 DEBUG 一 Q_ 2. 比较字符串_bjchx_ 编写一程序,比较两个字符串_string1_和 _string2_所含的字符是否相同,若相同则显示‘Match’ ,否则,显 示‘No_Match’ 。 参考程序如下:(程序名:SY3-2.ASM) D_SEG SEGMENT STRING1 DB '12345' STRING2 DB '1a345' MATCHSTR DB 'MATCH$' NOMATCHSTR DB 'NO MATCH$'
实验注意事项 1.如果使用的是 MASM5.1 的汇编工具,应包括以下文件:MASM 宏汇 编程序文件 LINK 连接程序文件CREF 索引程序文件(也可不用) EDIT 全屏幕文本编辑程序(或其他文字处理系统) 2.能用宏汇编通过的汇编语言源程序与在 DEBUG状态下运行的汇编 语言程序不同,必须是一个完整的程序,有各逻辑段的定义,而在 DEBUG 状态下运行的汇编语言源程序只是其程序段。 3.连接程序 LINK 是把一个或多个独立的目标程序模块装配成一个 可重定位的可执行文件,扩展名为.EXE。 实验与思考 1. 机器语言(Machine Language)、汇编语言(Assembler Language) 和高级语言(High_Level_ Language)的区别? 2.DOS 2 号功能调用和 DOS 9号功能调用的区别? 3.利用 DEBUG 调试程序过程中,应注意什么?
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
问题1:询问被连接的各目标文件名,当不止一 个目标文件时,中间以“+”相连,然后回车。
对问题1: 因只有一个目标文件(“lt2.obj”),键 入目标文件名(“lt2”),再回车
2、调入连接程序LINK,进行连接 2)依次提出4个问题
问题2:询问连接产生的可执行文件名,若同意
方括号内的缺省文件名(“lt2.exe”),则直接回 车。
1、启动记事本 执行“开始”|“所有程序” |“附件” |“记事本”命令,启动记 事本。
2、在记事本中输入源程序
3、保存源程序,生成源程序文件(源文件) 执行“文件”|“保存”命令,在弹出的“另存为” 对话框中,依次执行下列操作
1)设置文件保存路径,设为“d:\masm5”, 以使源文件与汇编程序MASM在同一文件夹 中。
四、调试、运行可执行文件 0B77:0——程序数据
键入D命令后所显示的程序数据段的3个字节的数据情况: 0B77:0000 20 44 00
程序的数据段 0B77:0000 0B77:0001 0B77:0002 32 DATA:X
68
?
DATA: X+1
DATA: Y
四、调试、运行可执行文件
3、 “g”命令:运行程序。
汇编语言源程序的上机操作过程
一、用编辑程序建立和修改源程序文件(*.asm); 二、用汇编程序汇编源文件,产生对应的目标文
件(*.obj);
三、把目标文件经连接程序连接,形成可执行文 件(*.exe); 四、调试、运行可执行文件,通过调试程序进行。
一、用编辑程序建立和修改源程序 编辑程序: Word、记事本、EDIT等编辑软件 建议使用记事本
1、在Windows操作系统下进入虚拟DOS环境 2) 在“运行”对话框输入“cmd”后,弹出如下图所示界 面,这就是一个虚拟DOS环境
系统当前工作路径
2、启动汇编程序MASM 1) 转换当前系统工作路径到汇编程序MASM的 工作路径”d:\masm5”
① 在提示符后输入“d:”,然后回车
② 在提示符后输入“cd\masm5”,然后回车
问题2: 询问目标文件名,若同意方括号内的缺省文 件名(“lt2.obj”,缺省文件名与源文件名相 同,这里是“lt2” ),则直接回车;否则键 入文件名再回车。 建议采用缺省文件名,即直接回车.
3、调入汇编程序MASM,对源文件进行汇编 1)回答问题2后,提出问题3;
问题3: 询问是否要建立列表文件,若要,则键入列 表文件名再回车;否则直接回车。
指出错误在源文件的第11行 错误类型:符号X1未 定义
MASM对源文件汇编后,发现有0个警告性 错误和1个致命性错误。
4、用户需再次调用编辑程序(纪事本)修改源文件,并重 新汇编,直至汇编正确为止。
调用记事本修改源文件
源文件中的第11行:指令ADD AL,X1有误 错误类型:符号X1未定义 经分析: 指令ADD AL,X1 应改为 ADD AL,X+1,原指令 中漏了“+”。
4、用户需再次调用编辑程序修改源文件,并重新汇编,直 至汇编正确为止。
修改后的源文件
源文件中的第11行已改为 ADD AL,X+1
4、用户需再次调用编辑程序修改源文件,并重新汇编,直 至汇编正确为止。
按照前面所述步骤重新对修改后的 源文件进行汇编,汇编后若显示 0 Warning Errors 0 Severe Errors 表示汇编正确。
68
?
DATA: X+1
DATA: Y
地址为0B77:0000的字 2、 “d”命令:显示内存单元内容。 地址为0B77:0001 地址为0B77:0002的字 段的起始地址(段基节单元: 存储数据 的字节单元: 存储 节单元: 址:偏移地址)。 “20H(32)” 命令格式:d [要显示的内存单元地址或范围] 存储数据Y 数据“44H( 68)” (运行结果)
四、调试、运行可执行文件
1、 “u”命令: 将调入内存的目标程序反汇编为源程序。
在提示符“—” 后键入“u”命令: 将调入内存的“lt2.exe”(目标程序)反汇编为源程序。 若一次“u”命令未将目标程序反汇编完,可继续输入 “u”命令。
“lt2.exe”反汇编 为源程序
“lt2.exe”反汇编后的源程序与 ⑴、 “lt2.asm”中凡伪指令部分汇编后在“lt2.exe” “lt2.asm”源程序的比较 中均不存在目标代码。
2 ——程序数据段的 终止地址(只需指出 偏移地址)。 L3 ——程序数据 段的长度。
要显示程序数据段的3个字节(如下图)可采取下列方法: 1)在提示符“—” 后键入“D 0B77:0 2”命令(字母大小写均 可): 2 )在提示符“—” 后键入“D 0B77:0 L3”命令 程序的数据段 0B77:0000 0B77:0001 0B77:0002 32 DATA:X
键入g 命令
g命令执行后,程 序正常结束
四、调试、运行可执行文件
4、 再次键入“d”命令显示程序数据段情况,观察运行程序结果。 地址为0B77:0002的字 节单元(Y), 存储程 序运行结果: 数据32(20H)和 68 (44H)之和—— 64H(100)
再次键入“D 0B77:0 L3”命令显示程序数据段:
⑵、“lt2.asm”中凡符号地址(包括段基址和偏移
地址,蓝色下划线所示)在“lt2.exe”中都变为具体 的数值地址(黄色下划线所示) 。
各数据在“lt2.exe”中的数 值地址(段基址:偏移地 址)。
各数据在“lt2.asm”中的符号地 址(段基址:偏移地址)。
程序的数据段 0B77:0000 0B77:0001 0B77:0002
2)输入文件名“lt2.asm”,请特别注意 不要忘了后缀“asm”
3)选择“保存类型”为“所 有文件”
4)点击“保存”
在D:\MASM5文件夹中生成的“lt2.asm”源文件
二、用汇编程序把源文件转换成目标文件 汇编程序: Microsoft:MASM Borland:TASM
1、在Windows操作系统下进入虚 拟DOS环境 1)执行“开始”|“运行”命令, 弹出“运行”对话框,键入“cmd”
32
68 ?
DATA:X
DATA: X+1 DATA: Y
0B77:程序的数 据段的段基址。 0B77→DS
四、调试、运行可执行文件 0B77:0——程序数据
2、 “d”命令:显示内存单元内容。 0B77:0——程序数据 段的起始地址(段基 段的起始地址(段基 址:偏移地址)。 命令格式:d [要显示的内存单元地址或范围] 址:偏移地址)。
2、启动汇编程序MASM
当前系统工作路径已转换到汇编程序MASM 所在路径”d:\masm5”
汇编程序MASM所在路径”d:\masm5”, 是系统当前工作路径
2、启动汇编程序MASM 2)在提示符后键入“masm”, 以提问方式启动MASM
3、调入汇编程序MASM,对源文件进行汇编 1)调入MASM后,首先显示MASM的版本信息
2、调入连接程序LINK,进行连接 3)依次回答4个问题后,LINK立即开始工作。 LINK工作后, 若显示有警告性错误和致命性错误,用户需再次调用编辑程 序修改源文件,并重新汇编、连接,直至汇编、连接正确为 止。
LINK工作后,若显示只有警告性错误:no stack segment(源文件没有堆栈段)。在程 序未定义堆栈段时,这个错误不会影响程序的 运行,可不理会,认为连接正确。
三、经过连接形成可执行文件
汇编、连接成功后, 生成的可执行文件 lt2.exe (已是二进制 代码的程序文件) 。
四、调试、运行可执行文件 调试程序: Microsoft:DEBUG Borland:TD
四、调试、运行可执行文件
要调入调试程序debug,并调试程序lt2.exe, 需要在提示符“>”后键入“debug lt2.exe”。
已成功调入汇编程序MASM
汇编程序 MASM的版 本信息
3、调入汇编程序MASM,对源文件进行汇编 1)依次提出4个问题,首先提出问题1;
问题1:询问被汇编的源文件名,方 括号内表示源文件的后缀
对问题1: 键入源文件名(“lt2”),再回车
3、调入汇编程序MASM,对源文件进行汇编 1)回答问题1后,提出问题2;
2、调入连接程序LINK,进行连接 2)依次提出4个问题
பைடு நூலகம்
问题3: 询问连接产生的内存分配图文件名,若需要 内存分配图文件,则键入文件名再回车;若不 需要则直接回车。
要建立内存分配图文件,键入文件名 (“lt2”)再回车。
2、调入连接程序LINK,进行连接 2)依次提出4个问题
问题4: 询问欲连接的库文件名,若无库文件连接则直 接回车。
四、调试、运行可执行文件
请注意不要忘了键入被调试的 程序文件名“lt2.exe”
键入“debug lt2.exe”并回车后,出现如图所示的提示符“—” , 表示debug已调入内存, 同时debug也把被调试的程序 “lt2.exe”调入内存。所有用于调试程序的debug命令只有在出 现此提示符后才有效。
0B77:0 20 44 64
三、经过连接形成可执行文件 连接程序: Microsoft:LINK Borland:TLINK
1、启动连接程序LINK 在提示符后键入“link”, 以提问方式启动LINK
2、调入连接程序LINK,进行连接 1)显示MASM的版本信息
已调入连接程序LINK
连接程序 LINK的版本
信息
2、调入连接程序LINK,进行连接 2)依次提出4个问题
要建立列表文件,键入列表文件名(“lt2”) 再回车。
3、调入汇编程序MASM,对源文件进行汇编 1)回答问题3后,提出问题4。