当前位置:文档之家› 练习汇编语言源程序的编辑、汇编和连接

练习汇编语言源程序的编辑、汇编和连接

实验二练习汇编语言源程序的编辑、汇编和连接
一、实验目的
1、熟练使用EDIT编辑软件编辑汇编语言源程序。

2、熟练使用MASM宏汇编软件汇编源程序。

3、熟练使用LINK连接程序生成.EXE文件。

二、实验任务
利用EDIT、MASM、LINK找出下面的源程序中的错误,并得出运行结果。

DATA SEGMENT
A DW5F73H
B DW CD89H
C dw?
Data ends
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MOV AL,A
MOV BX,B
ADD AX,BX
MOV C,AX
MOV AH,4CH
INT21H
CODE ENDS
END START
三、实验设备
PC机一台
四、实验步骤
1、输入源程序。

2、汇编、连接程序,生成.EXE文件,执行文件,检查结果。

3、
4、
5、
6、
实验一的相关知识
以下程序都是在DOS操作系统完成的。

一般情况下MASM、LINK都在一个MASM子目录下。

一、编辑程序(EDIT)
用户在任一目录下都可以输入EDIT,进入编辑环境,输入源程序,并以.ASM的扩展名保存。

输入以下源程序,并以TEST.asm保存。

DATA SEGMENT
A DW5F73H
B DW CD89H
C dw?
Data ends
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:MOV AX,DATA
MOV DS,AX
MOV AL,A
MOV BX,B
ADD AX,BX
MOV C,AX
MOV AH,4CH
INT21H
CODE ENDS
END START
Test.asm是一个带有两处语法错误的汇编语言源文件。

二、汇编程序(MASM.EXE)
1、汇编程序的主要功能

(5)产生源程序的目标代码文件,供连接程序用;
(6)产生列表文件,给出源程序指令相对应的地址计数器的值和符号表;
2、使用
(1)命令格式(假设MASM子目录在D盘)
D:\>CD MASM1)检查汇编语言源程序,若程序中有不符汇编程序要求的语句,给出错误信息;
(2)利用地址计数器确定被汇编的每条指令的偏移地址;(3)确定各符号的偏移地址,建立符号表;
(4)利用符号表,机器指令表和伪操作表把助记符指令翻译成机器语言指令;
D:\MASM>MASM
出现:
Source(.asm):指定汇编源程序的文件名,缺省的扩展名为.asm。

Object(.obj):指定目标文件名,缺省的目标文件名与源文件名
相同,缺省的扩展名为.obj。

Listing(.lst):指定列表文件名,缺省的扩展名为.lst,缺省情况是不生成列表文件。

Crossref(.crf):指定交叉参考文件名,缺省的扩展名为.crf。

缺省情况是不生成交叉参考文件。

(2)汇编方法
D:\MASM>MASM
Source filename[.asm]:test(输入源文件名,缺省扩展名为.asm)Object filename[test.obj]:(直接回车,[]中为缺省的目标文件名)Source listing[nul.lst]:(直接回车,不生成列表文件)
Cross-reference[nul.crf]:(直接回车,不生成交叉参考文件)test.asm(3):error A2009:Symbol not defined:CD98H test.asm(10):warning A4031:Operand types must match
50928+415568Bytes symbol space free
1Warning Errors
1Severe Errors50928+415568Bytes symbol space free 发现警告或错误后,在EDIT编辑器下将TEST.ASM的错误改正后,重新汇编。

一般情况下程序中是不允许出现警告的,但是如果你确定这个警告对程序没有影响,可以不予修改,但这样有时候是很危险的。

二、连接程序(LINK.EXE)
1、主要功能
(1)找到要连接的所有目标模块,并确定各目标模块的相对段值;
(2)确定各目标模块的浮动地址及外部符号地址;
(3)产生可执行文件(.exe)
2、使用
(1)命令格式
D:\MASM>LINK
Object(.obj):指定目标文件名,缺省的扩展名为.obj。

Runfile(.exe):指定可执行文件名,缺省的文件名与第一个目标文件名相同,缺省的扩展名为.exe。

Mapfile(.map):指定映像文件名,缺省情况是不产生映像文件Library(.lib):指定库文件名,缺省情况是不使用库文件。

(2)举例
D:\MASM>LINK
Object modules[.obj]:test(实际上是对.OBJ文件进行连接)Run file[test.exe]:
List file[nul.map]:
Libraries[.lib]
LINK:warning L4021:no stack segment
(3)运行
生成可执行文件test.exe后,可直接运行。

D:\MASM\TEST
屏幕上什么也没有!只会继续显示DOS提示符。

相关主题