实验二汇编语言上机过程实验(机制本)
山东大学汇编语言上机实验——实验二

程序的基本结构练习一:循环程序设计一、实验目的(1) 加深对循环结构的理解;(2) 掌握循环程序的设计方法;(3) 熟练掌握DEBUG的常用命令,学会用DEBUG调试程序。
二、实验内容1.已知以BUF为首地址的字存储区中存放着8个有符号二进制数,是编写程序将其中大于等于0的数依次送BUF1为首地址的字存储区中,小于0的数依次送以BUF2为首地址的字存储区中。
同时将大于等于0的数的个数送A字变量,将小于0数的个数送B字变量。
2.设STR字符串是以0结尾。
试编写一个把字符串中的所有大写字母改为小写字母的程序并将转换后的字符串显示输出。
3.试编程从自然数1开始累加,直到累加和大于5050为止,统计被累加的自然数的个数,并把统计的个数送入COUNT单元,累加和送入TOTAL单元。
三、算法描述流程图实验内容1、2、3的流程图分别为图1、图2、图3。
四、实验步骤1.已知以BUF为首地址的字存储区中存放着8个有符号二进制数,是编写程序将其中大于等于0的数依次送BUF1为首地址的字存储区中,小于0的数依次送以BUF2为首地址的字存储区中。
同时将大于等于0的数的个数送A字变量,将小于0数的个数送B字变量。
1)输入源程序:DA TA SEGMENTBUF DW 23,123,-12,-210,45,0,90,-453BUF1 DW 8 DUP(0)BUF2 DW 8 DUP(0)A DWB DW DA TA ENDSCODE SEGMENTASSUME CS: CODE, DS: DA TASTART: MOV AX, DATAMOV DS, AXLEA BX, BUFLEA SI, BUF1LEA DI, BUF2MOV A,0MOV B,0MOV CX,8L0: MOV AX,[BX]CMP AX,0JGE L1MOV [DI],AXADD DI,2INC BJMP NEXTL1: MOV [SI],AXADD SI,2INC ANEXT: ADD BX,2LOOP L0MOV AH, 4CHINT 21HCODE ENDSEND START2)运行程序。
汇编语言上机实验内容

实验一上机操作一、实验目的掌握汇编语言程序编辑、汇编、连接、运行以及利用DEBUG调试程序的方法。
二、实验设备PC机及相应的软件。
三、实验内容及步骤1、编辑一个指定的汇编语言源程序,并对其进行汇编、连接和运行。
2、利用DEBUG进行程序调试,掌握常用命令的使用方法,观察运行结果。
3、汇编语言上机操作,见图1-1 汇编语言上机操作流程。
上机操作过程:开始输入cmd 确认后显示:C:\Documents and setting\Administrator>-输入 cd c:\masm 后显示:c:\masm>-c:\masm>EDIT ABC.asmc:\masm>MASM ABC;若有语法错,回EDIT下改该程序c:\masm>LINK ABC;若有错,回EDIT下改程序c:\masm>ABC若运行结果错,回EDIT下改程序或在DEBUG下调试,找原因。
c:\masm>DEBUG ABC.exe手写源程序图 1-1 汇编语言上机操作流程汇编语言程序举例例1:将BL寄存器的内容按二进制形式显示出来。
设:(BL)=01010011B分析:采用2号功能调用,分别输出30 31 30 31 30 30 31 31显示:01010011参考程序:CODE SEGMENTASSUME CS: CODESTART:MOV CX ,8 ;显示字符个数为8MOV BL ,53HNEXT:SHL BL ,1 ;将显示位移至CF中JC ONE ;CF=1?MOV DL ,30H ;CF=0,将0的ASCII放在DL中JMP EXITONE:MOV DL ,31H ;CF=1,将1的ASCII放在DL中EXIT:MOV AH ,2INT 21H ;调用DOS功能显示DEC CX ;循环次数减1JNZ NEXT ;判断是否结束MOV AH,4CH ;返回DOSINT 21HCODE ENDSEND START上机操作:c:\masm>EDIT ShowBL.asm ;编辑源程序c:\masm>MASM ShowBL ;汇编成ShowBL.objMicrosoft (R) Macro Assembler Version 5.10Copyright (C) Microsoft Corp 1981,1988. All rights reserved.48912 + 447243 Bytes symbol space free0 Warning Errors0 Severe Errorsc:\masm>LINK ShowBL ;连接成ShowBL.exeMicrosoft (R) Overlay Linker Version 3.61Copyright (C) Microsoft Corp 1983-1987. All rights reserved.LINK : warning L4021: no stack segmentc:\masm>ShowBL ;装载并执行ShowBL.exe 01010011 ;屏幕显示c:\masm>-在DEBUG下查看ShowBL.exe的装入情况:c:\masm>DEBUG ShowBL.exe- R ;查看当前寄存器内容AX=0000 BX=0000 CX=001B DX=0000 SP=0000 BP=0000 SI=0000 DI=0000 DS=0B51 ES=0B51 SS=0B61 CS=0B61 IP=0000 NV UP EI PL NZ NA PO NC B353 MOV BL,53- U CS:0 ;查看程序0B61:0000 B353 MOV BL,530B61:0002 B90800 MOV CX,00080B61:0005 D0E3 SHL BL,10B61:0007 7205 JB 000E…….0B61:0017 B44C MOV AH,4C0B61:0019 CD21 INT 21…….-G ;执行程序01010011Program terminated normally-例2:将某段中的字符串“Hello!”传送到另一段中。
实验二_汇编语言程序上机过程

实验二:汇编语言程序上机过程实验目的:1、掌握常用工具EDIT,MASM和LINK的使用。
2、伪指令:SEGMENT, ENDS, ASSUME, END, OFFSET, DUP。
3、掌握汇编源程序的基本架构4、了解.EXE文件及用INT 21H 4C号功能返回系统的方法。
源程序1:;This is an simple example;--------------------------------------------data segment ;define data segmentmsg db 'hello,everybody!',0dh,0ah,'$'data ends;-------------------------------------------code segment ;define code segmentassume ds:data,cs:codestart:mov dx,data ;set ds segmentmov ds,dxlea dx,msg ;display stringmov ah,9int 21hmov ax,4c00h ; returnint 21hcode ends;--------------------------------------------end start源程序2:;program title goes here----ex_movs;*********************************************data segment ;define data segmentsource_buffer db 40 dup('a')data ends;****************************************************** extra segment ;define extra segmentdest_buffer db 40 dup(?)extra ends;****************************************************** code segment ;define code segment;------------------------------------------------------main proc far ;main part of programassume cs:code, ds:data, es:extrastart:;set up stack for returnpush ds ;save old data segmentsub ax, ax ;put zero in AXpush ax ;save it on stack;set DS register to current data segmentmov ax, data ;data segment addrmov ds, ax ;into DS register;set ES register to current extra segmentmov ax, extra ;extra segmentmov es, ax ;into ES register;main part of program goes herelea si, source_buffer ;put offset addr of source buffer in SI lea di,dest_buffer ;put offset addr of dest buffer in DIcld ;set DF flag to forwardmov cx,40 ;put count in CXrep movsb ;mov entire stringret ;return to dosmain endp ;end of main part of program;------------------------------------------------------------code e nds ;end of code segment;************************************************************end start ;end assembly实验步骤:1、用文字编辑工具EDIT将源程序输入,其扩展名为.ASM。
实验2-汇编语言上机环境及基本操作

实验二汇编语言上机环境及基本操作一、实验目的及要求1 •掌握汇编语言源程序的书写格式和要求2 •掌握在计算机上建立、汇编、连接、调试及运行程序的方法。
3. 学会使用记事本、MASMLINK、DEBU等软件工具。
4 •掌握将数据和代码都放在代码段的程序设计方法。
5. 掌握将数据和代码放不同段的程序设计方法。
6. 掌握用LOOP旨令构建循环程序二、实验内容1.练习:计算机上建立、汇编、连接、调试及运行程序的方法编写程序,计算2A121)在D盘建立一文件夹,命名(例如101),将和复制到此文件夹;在此文件夹中新建文本文件,文件名改为汇编源程序名,例如:用记事本打开,输入源程序并保存。
源程序:assume cs:codecode segme ntmov ax,2mov cx,11s: add ax,axloop smov ax,4c00hint 21hcode endsend2) 汇编源程序点开始菜单,点运行,输入CMD按回车,进入命令提示符窗口;输入D:并回车,打开D盘,再输入CD 101并回车,进入101文件夹;输入MASM 2e12并回车,一路按回车,进行汇编汇编过程的错误分警告错误(Warning Errors )和严重错误(Severe Errors) 两种。
其中警告错误是指汇编程序认为的一般性错误;严重错误是指汇编程序认为无法进行正确汇编的错误,并给出错误的个数、错误的性质。
这时,就要对错误进行分析,找出原因和问题,然后再调用屏幕编辑程序加以修改,修改以后再重新汇编,一直到汇编无错误为止。
汇编通过后,会生成目标文件3) 连接目标程序、输入LINK 2e12并回车,一路按回车连接成功后,会生成可执行文件4) 跟踪并调试可执行程序输入DEBUGS按回车,进入DEBU调试程序单步运行程序,跟踪程序,每执行一条指令,检查相关寄存器或存储器的数据,看看程序是否按我们的意愿运行,若有出入,修改源程序,重新汇编、连接、运行调试,直到成功编写程序计算100X 300,用循环结构实现完成否2 •将数据和代码都放在代码段的程序设计方法程序功能:将8个字数据累加求和,存入AX便于大家检查验证,将8个字设为1, 2,3, 4, 5, 6,7, 8assume cs:codesgcodesg segme ntdw 1,2,3,4,5,6,7,8start : mov bx,0mov ax,0v1.0可编辑可修改mov cx,8s: add ax,cs:[bx]add bx,2loop smov ax,4c00hint 21hcodesg endsend start调试程序,结果是否正确若将程序中的标号start去掉,结果如何DS吗add ax,cs:[bx]语句中段前缀为什么用CS能去掉吗能改为3•将数据和代码都放在不同的段,实现题2的功能assume cs:codesg,ds:datasgdatasg segme ntarray dw 1,2,3,4,5,6,7,8datasg endscodesg segme ntstart :mov ax,datasgmov ds,axmov bx,offset arraymov ax,0mov cx,8s: add ax,ds:[bx]add bx,2loop s mov ax,4c00h int 21hcodesg endsend start调试程序,结果如何比较3和2的源程序,多段程序设计与单一段程序设计4. 对题3的程序稍做修改,求出8个数中的最小数和最大数分别存入MIN和MAX 单元(若能力有限,只求其中之一)提示:用比较指令(P62)结合条件转移指令(P89),产生不同的程序分支要求简要描述解题思路,源程序要加上必要的注释。
第八讲(2) 汇编语言简单上机过程

本章到此结束
谢谢!
结 束放映
返回本章首页
第一章
微机基础知识概述
一、指出下列指令的寻址方式 MOV AX, 06H MOV BX, [BX+SI]
MOV AX, [2000H]
MOV CX, ALPHA[BP+DI]
JMP
CWD
BX
MOV AL, [DI]
第一章
微机基础知识概述
二、汇编后
DATA SEGMENT
Source filename [.ASM]:文件名
第一章
微机基础知识概述
Object filename[文件名.OBJ]
Source listing[NUL.LST]:文件名
Cross reference[NUL.CRF]:文件名
0 Warning Error 0 Severe Errors
返回本节
实验六、8259应用编程1、2。
第一章
微机基础知识概述
实验五:微机原理及接口实验指导书
1、实验七:8253定时/计数应用实验; 2、实验八:8255并行接口应用实验。
第一章
微机基础知识概述
实验六:综合实验 1、分析所使用的微机实验设备的系统组成, 画出结构图; 2、使用现有微机原理实验设备、设计综合 实验; 3、要求实验中应包含8259、8255、8253接 口芯片。
第一章
微机基础知识概述
四、动态调试程序
提供多种程序的运行方法和检测手段,可观察各
个寄存器、内存单元及标志变化情况。
C:\MASM>DEBUG 文件名.exe
_A 地址 送入程序。 _G [起地址] [末地址] 不写地址执行刚刚汇编过的程序。
实验二-汇编语言程序的上机步骤

实验二汇编语言程序的上机步骤一、实验目的熟练掌握汇编语言程序的上机步骤和程序调试方法。
二、实验内容及步骤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三、实验要求认真完成实验每一步骤,详细记录实验过程、现象和结果,及时整理实验报告。
实验2— 汇编语言上机过程

实验2 汇编语言上机过程一、实验目的掌握汇编语言上机过程,熟练使用EDIT,MASM,LINK,DEBUG命令。
二、实验内容在显示器上显示一段字符串。
三、实验步骤1、进入DOS ,输入D:回车2、输入D:\>CD MASM5输入D:\MASM5>EDIT 123.ASM此时进入EDIT全屏编辑窗口。
输入源程序,并且存盘。
ALT键可以激活菜单,打开FILE下拉菜单中的SA VE或SA VE AS保存编辑好的文件,然后退出。
此时,源程序建立完毕。
3、用MASM产生OBJ文件输入MASM 123.ASM 回车第一个是OBJ文件,回车确定,即建立目标文件。
第二个是LIST列表文件,它同时列出源程序和机器码程序清单,并给出符号表,如需要可输入123.LST,不需要直接回车。
第三个CRF文件用来产生交叉引用表,一般程序不需要建立此文件,直接回车。
注:警告错误和严重错误必须都为0,编译才算通过,如不为0,则记住错误行号,返回EDIT 修改程序,然后再编译。
4、用LINK程序产生EXE文件输入LINK 123.OBJ 回车LINK有两个输入文件OBJ(目标文件)和LIB(库文件),无特殊需要,对LIB直接回车。
LINK的输出文件,一个是EXE文件,另一个是MAP文件,它是连接文件的列表文件,称为连接映象,它给出每个段存储器的分配情况。
如没有严重错误,将产生EXE文件,如有错误重新执行步骤2、3、45、程序执行输入123.EXE 回车查看屏幕显示,是否和预期结果一致。
四、程序清单DA TA SEGMENTBUFF DB 'How are you!','$'DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TASTART: MOV AX,DATAMOV DS,AXMOV AH,9HMOV DX,OFFSET BUFFINT 21HMOV AX,4C00HINT 21HCODE ENDSEND START。
2010汇编语言上机实验二

;多字节BCD码乘2子程序 MULTI PROC LEA DI,BCDBUF+5 ;从低位开始 MOV CL,5 CLC MUL1: MOV AL,[DI] ;取BCD码 ADC AL,AL ;乘2 AAA ;十进制数运算校正 MOV [DI],AL ;存BCD码 DEC DI DEC CL JNE MUL1 RET MULTI ENDP COSEG ENDS END HEXBCD
汇编语言上机实验(二) 4学时
国家级计算机实验示范中心
实验二 数制、码制和子程序的编程与调试
一.实验目的: 实验目的: 1. 熟练掌握编写汇编语言原程序的基本方法和基本框架。 2. 熟练使用DEBUG调试程序。 3. 掌握十六进制数与ASCII码之间,ASCII码与BCD码之间的转换。 4. 掌握用DOS功能调用,实现字符的输入和显示。 5. 掌握子程序的编程与调试方法。 二.实验内容: 实验内容: 1、从键盘输入两个2位十进制正数转换成二进制数后,对这两个数进行相加相乘 运算,结果以十六进制数形式显示在屏幕上。 2、从键盘输入两个2位十进制正数转换成组合BCD码后,对这两个数进行相加 相乘运算,结果以十进制形式显示在屏幕上。 3、从键盘输入一个4位十进制正数并回显后,将其对应的十六进制数显示在屏幕 上。
实验要求一参考程序:
TITLE CONVERT HEXADECIMAL TO BCD DATA SEGMENT PROMPT DB "INPUT HEXADECIMAL(4DIGITS):$' HEXBUF DB 5,0,5 DUP(0) DISP DB 0AH,0DH BCDBUF DB 6 DUP(0),'$' DATA ENDS STACK1 SEGMENT PARA STACK DW 20H DUP(0) STACK1 ENDS COSEG SEGMENT ASSUME CS:COSEG,DS:DATA,SS:STACK1 HEXBCD: MOV AX,DATA MOV DS,AX
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二汇编语言上机过程实验一、实验目的1、了解和掌握由键盘接收数据,并显示其运行结果的方法。
2、掌握INT 21H 的09H和0AH,01H和02H的功能。
3、熟悉在PC机上建立,汇编,链接,调试和运行8086/8088汇编语言程序的过程。
二、实验内容1、汇编语言源程序的上机过程:①将masm5.zip文件下载放在D:\masm文件夹下, 在该文件夹下将压缩文件解压缩。
②利用编辑器建立一个ASM 源文件。
Edit ,记事本等编辑器文件以文件名.asm文件名保存。
最好保存在D:\masm文件夹下。
(即:D:\masm\文件名.asm)文件名自取。
③点击开始菜单,运行↙>cmd↙>d: ↙>cd masm↙>masm 文件名 3下回车>link 文件名 3下回车>debug 文件名.exe>g ↙其中利用MASM.EXE对源程序进行编译。
生成中间代码文件:文件名.obj。
利用link.exe对obj文件进行连接。
生成最终目标代码文件:文件名.exe。
运行可执行文件:文件名.exe,并利用debug调试工具查看结果。
2、编写一个完整程序,在屏幕上显示字符串How are you!data segmentstring db 'how are you!$'data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov dx,offset stringmov ah,9int 21hmov ah,4chint 21hcode endsend start三、实验器材IBM PC 微机一台四、实验报告要求1、实验报告应包括实验目的,实验内容,实验步骤,实验思考题2、完成实验思考题,如有编程题,写出调试正确的程序,并给程序加注释,写出实验中所记录下的内存数据存放格式。
五、实验思考题下面的汇编语言源程序有错误的,试给程序加注释。
通过调试手段找出程序中的错误并改之。
写出程序的功能,画出程序流程图。
STACKSG: SEGMENT PARA STACK ‘STACK’DB 256 DUP(?)STACKSG ENDSDA TASG: SEGMENT PARA ‘DA TA’BLOCK DW 0,-5,8,256,-128,96,100,3,45,6,512DW 23,56,420,75,0,-1024,-67,39,-2000COUNT EQU 20MAX DW ?DA TASG ENDSCODESG: SEGMENTASSUME SS:STACKSG,CS:CODESGASSUME DS:DA TASGORG 100HBEGIN MOV DS,DA TASGLEA SI,BLOCKMOV CX,COUNTDEC CXMOV AX,[SI]CHKMAX ADD SI,2CMP [SI],AXJLE NEXTMOV AX,[SI]DEC CXNEXT: LOOP CHKMAXMOV MAX,AXMOV AH,4CHINT 21HCODESG ENDSEND BEGIN实验步骤:1、建立汇编语言源程序,对所建立的汇编语言源程序进行汇编,链接。
2、运行DEBUG 调试程序,装入被调试程序,用U命令查看调入的程序,记录代码段基值和数据段基值,用R命令查看并记录下当前寄存器内容3、用D命令查看并记录下内存中数据存放格式4、用T命令单步运行程序,观察各条指令执行结果,以及对寄存器、标志位、内存单元的影响,若查找出程序中的错误,用Q命令退出DEBUG环境,修改汇编语言源程序,重复上述步骤,直至整个程序无误。
5、若要求找出数据区中最小数,程序将如何修改,试上机调试。
五、实验思考题1、在装入被调试程序后,如何知道分配给该用户程序的数据段在内存中的位置?2、数据区中以什么形式存放带符号数的?3、程序执行完毕,结果存放在何处?4、观察伪指令PARA和ORG的作用附1.1汇编语言程序的编程环境在通用PC机系统上建立汇编语言程序,需要软件开发环境:1)文本编辑程序EDIT(或WINDOWS下的记事本、WORD 等)。
2)汇编程序MASM(或TASM.EXE)。
3)连接程序LINK(或TLINK.EXE)。
4)调试程序DEBUG(或TD.EXE)。
1.2汇编语言程序的建立过程一、编辑源程序(建立ASM源程序文件)汇编源程序可调用计算机系统中任一文本文件编辑器来编辑和修改。
常用的编辑器有DOS下的EDIT和WINDOWS下的记事本、写字板、WORD等,但源文件扩展名必须为.ASM二、汇编程序(用MASM命令产生OBJ目标文件)当源程序编写好后,可用MASM命令来汇编该源程序,可得目标文件(.OBJ)、列表文件(.LST)和交叉索引文件(.CRF)等。
如源程序有错误,汇编程序将显示出错位置和原因,也可用列表文件来查看出错位置和原因。
再调用编辑程序,对源程序修改再重复汇编,直至没语法错误,才进入下步链接。
MASM命令行格式为:MASM 源文件名,目标文件名,列表文件名,交叉索引文件名;命令行中,扩展名都可不给出,汇编程序会按默认情况使用或产生。
若只想对部分提示是否需要给出或产生相关文件给出回答,则在相应位置用逗号隔开。
行末的分号表示不再对剩余部分作答。
如1)C:\>MASM\MASM HELLO此操作将生成HELLO.OBJ 文件2) C:\>MASM\MASM HELLO,HELLO1,HELLO2,HELLO3此操作将生成HELLO1.OBJ,HELLO2.LST, HELLO3.CRF等文件3)C:\>MASM\MASM HELLO,,,HELLO此操作将生成HELLO.OBJ,HELLO.LST, HELLO.CRF等文件。
在DOS状态下可以用TYPE命令或在WINDOWS下用记事本查看LST和CRF文件。
HELLO文件内容如下:9/19/12 16:27:53Page 1-11 0000 data segment2 0000 68 6F 77 20 61 72 65 string db 'how are you!$'3 20 79 6F 75 21 244 000D data ends5 0000 code segment6 assume cs:code,ds:data7 0000 B8 ---- R start:mov ax,data8 0003 8E D8 mov ds,ax9 0005 BA 0000 R mov dx,offset string10 0008 B4 09 mov ah,911 000A CD 21 int 21h12 000C B4 4C mov ah,4ch13 000E CD 21 int 21h14 0010 code ends15 end start9/19/12 16:27:53Symbols-1Segments and Groups:N a m e Length Align Combine ClassCODE . . . . . . . . . . . . . . 0010 PARA NONEDA TA . . . . . . . . . . . . . . 000D PARA NONESymbols:N a m e Type V alue AttrSTART . . . . . . . . . . . . . L NEAR 0000 CODE STRING . . . . . . . . . . . . . L BYTE 0000 DA TA@FILENAME . . . . . . . . . . . TEXT hello14 Source Lines14 Total Lines6 Symbols49782 + 451626 Bytes symbol space free0 Warning Errors0 Severe Errors三、连接程序(用LINK命令产生EXE可执行文件)经汇编以后产生的OBJ目标程序文件并不是可执行程序文件,必须经过用LINK将一个或几个.OBJ文件(以及可能需要的.LIB库文件)进行连接,生成一个.EXE可执行文件,同时可生成内存映像文件(.MAP)。
LINK命令行格式为:LINK 目标文件名,执行文件名,内存映像文件名,库文件名;命令行中,扩展名都可不给出,汇编程序会按默认情况使用或产生。
若只想对部分提示给出回答,则在相应位置用逗号隔开。
行末的分号表示不再对剩余部分作答。
例如C:\>MASM\LINK HELLO ;仅生成HELLO.EXE C:\>MASM\ LINK HELLO,,;生成HELLO.EXE,HELLO.MAPC:\>MASM\ LINK HELLO,,HELLO;生成HELLO.EXE,HELLO.MAP同样,KELLO.MAP文件内容可以用记事本来查看,该文件记录了源程序中三个逻辑段的起始地址、终止地址和逻辑段长度等信息: LINK : warning L4021: no stack segmentStart Stop Length Name Class00000H 0000CH 0000DH DA TA00010H 0001FH 00010H CODEProgram entry point at 0001:0000四、执行程序可执行文件HELLO.EXE建立后,就可以在DOS下运行。
具体操作可为:C:\masm\hello若程序有结果显示,则在屏幕上可以直接看到。
若不显示结果,则只能通过DEBUG等调试工具来查看运行结果。
实际上,大部分程序需要用调试程序来发现和纠正错误,再经过编辑、汇编、链接,才能得到正确的结果。