工程学院汇编语言程序设计实验教程

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

汇编语言实验教程

一、常用DOS命令

1. 进入虚拟DOS

选中开始菜单中的“运行”命令,输入cmd 后按确定,可以进入虚拟DOS环境。如图所示:

打开窗口后,可以在属性中修改字体大小、颜色和窗口大小。并且可以用组合键ALT+ENTER进行窗口最大化。

2. 常用DOS命令

(1)查看目录命令DIR

C:\>dir

C:\>dir/w

(2)显示文件内容命令TYPE

C:\>type test.asm

(3)文件拷贝命令COPY

C:\>copy sa.asm sd.asm 将文件sa.asm拷贝为sd.asm

(4)改变盘符命令

C:\>e:

结果为:E:\>

(5)进入下一级目录

C:\>cd 子目录名

例如:C:\>cd masm5

得:C:\masm5>

(6)改变目录

例如:C:\>cd windows\temp

得:C:\>windows\temp>

(7)退到上级目录

例如:C:\>masm5>abc>cd..

得:C:\>masm5

(8)退到根目录

例如:C:\>masm5>cd\

得:C:\>

(9)清屏

例如:C:\>cls

3. DOS下常用快捷健

(1)清除当前命令行:ESC

(2)输入上次输入的命令:F5

(3)显示曾经输入的所有命令供选择并执行:F7

(4)搜索命令的历史记录,循环显示所有曾经输入的命令,直到按下回车键为止:F8 【技巧1】虚拟DOS下复制粘贴方法

在窗口上点击鼠标右键,选择“标记”后可以用鼠标选择需要复制的字符,点一下右键,然后在光标处点右键选“粘贴”即可。

【技巧2】虚拟DOS窗口增加滚动条

在虚拟DOS窗口中选属性->布局-> 屏幕缓冲区大小->将“高度”改为80以上。

二、程序的编辑、编译和链接

下面我们完整的完成一个实验,实验要求为在计算机屏幕上显示一个字符串“HELLO!”,具体步骤如下。

1. 调用文本编辑软件建立源程序.ASM文件。

利用Windows2000操作系统附件中的“记事本”编辑以下源程序。命名为:Test1.ASM,该程序的功能是在计算机屏幕上显示一个字符串“HELLO!”。

DATA SEGMENT

S1 DB ‘HELLO!’,‘$’

DATA ENDS

STACK SEGMENT PARA STACK

DB 64 DUP(?)

STACK ENDS

CODE SEGMENT

MAIN PROC FAR

ASSUME CS:CODE,DS:DATA,SS:STACK

START: PUSH DS

MOV AX,0

PUSH AX

MOV AX,DATA

MOV DS,AX

MOV AX,STACK

MOV SS,AX

MOV AH,09H

MOV DX,OFFSET S1

INT 21H

RET

MAIN ENDP

CODE ENDS

END S TART

2. 调用汇编程序MASM对源程序汇编产生.OBJ文件。

在C:〉提示符下键入MASM Test1.ASM(回车)

执行上述操作命令之后将在屏幕上显示如下信息:

Microsoft(R) Macro Assembler Version 5.00

Copyright(C) Mirosoft Corp 1981-1985,1987.All rights reserved

Object filename[Test1.OBJ]:(回车)

Source listing[NUL.LST]:(回车)

Cross reference[NUL.CRF]:(回车)

50678 + 410090 Bytes symbol space free

0 warning Errors

0 Severe Errors

在汇编过程中,汇编程序一般采用两遍扫描的方法,第一遍扫描源程序产生符号表、处理伪指令等,第二遍扫描产生机器指令代码、确定数据等。

在汇编过程中还会产生列表文件和交叉引用文件。列表文件的后缀为.LST,主要用于给出源程序和机器代码程序的清单,以供检查程序使用。交叉引用文件的后缀为.CRF,它是一个为源程序所引用的各种符号进行前后对照的文件,主要用于给出不同程序段中互相引用的全部符号列表。这两个文件是可有可无的,如果不需要生成这两个文件,可以在汇编过程中直接按回车跳过。

列表文件有两部分内容。在第一部分源程序中,最左列是数据或指令在该段从0开始的相对偏移地址,向右依次是指令的机器代码字节个数、机器代码和汇编语言语句。机器代码后有字母"R"表示该指令的立即数/位移量现在不能确定或是只是相对地址,它将在程序连接或进入主存时才能定位。带有“*”的处理器指令是由前面一条伪指令产生的,采用/Sg选项时的列表文件才罗列。如果陈序中有错误(ERROR)或警告(W ARMING),也会会在相应位置提示。列表文件的第二部分是标示符使用情况。对段名和组名给出他们的名字(NAME)、尺寸(Size)、长度(Length)、定位(Align)、组合(Combine)和类别(Class)属性;对符号给出他们的名字、类型(Type)、数值(Value)和属性(Attr)。采用简化段定义格式,有许多汇编系统的预定义标示符,例如@DATA等。

【小技巧】输入“MASM test1; ”(后面加个分号)可以省去中间文件生成的3次提示而直接生成.obj文件

3. 调用链接程序LINK对目标文件进行链接产生可执行文件。

在C:〉提示符下键入LINK Test1(回车)

执行上述命令后将在屏幕上显示如下信息:

Microsoft(R) Overlay Linker Version 3.6

Copyright(C) Mirosoft Corp 1983-1987.All rights reserved

Run File[Test1.EXE]

List File[NUL.MAP]:

Libraries[.LIB]:

在汇编过程中形成了目标文件(.OBJ),但是在该文件中,只是将源程序的操作码部分变成了机器码,而地址操作数还是可浮动的相对地址,不是实际地址,浮动地址需要再定位。只有经过链接过程才能形成最后的可执行文件。链接程序的功能就是把一个或多个目标文件合并成一个可执行文件,其后缀为.EXE。

其实在链接过程中一共形成两个文件:第一个是可执行文件(.EXE)。默认的可执行文件名字与源程序文件相同,也可以根据用户要求进行修改可执行文件的名字。链接过程中形成的第二个文件是内存映像文件(.MAP),它给出了每个段的地址分配情况和长度。如果不需要该文件则可以在链接命令执行时直接键入回车键。在链接过程中还与一个库文件(.LIB文件)相关。一般的汇编程序不需要库文件。但是当汇编语言与高级语言(如C语言)接口时需要用到库文件。此时输入相应的库文件名字即可。映像文件也是一种文本文件,含有每段在存储器中的分配情况。映像文件中首先给出了该程序各个逻辑段的起点(Start)、终点(sTOP)、长度(Length)、段名(Name)和类别(Class);然后是段组(GROUP)位置和组名;最后提示程序开始执行的逻辑地址。注意,这里的起点、终点和段地址是以该程

相关文档
最新文档