Files
2026-06-25 00:09:09 +08:00

159 lines
4.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 附录一:汇编程序上机过程
## 一、实验目的
1. 掌握编辑汇编语言源程序的基本方法。
2. 掌握汇编语言源程序的汇编、链接过程。
3. 掌握DOS环境下可执行文件的装载与运行。
4. 学会使用调试工具DEBUG来观察程序执行情况。
## 二、实验内容
### 1. 编辑源程序
编辑工作可以用任何一种文本编辑器来完成例如行编辑器EDLIN全屏幕编辑器EDIT、记事本Notepad、写字板等。编辑完成后源文件以`.ASM`为扩展名存储。
下面是一个完整的汇编程序,程序运行时在屏幕上显示字符串"Hello World!"。
```assembly
;Hello.asm
DATAS SEGMENT
STRING DB 'Hello World!',0DH,0AH,'$'
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
MAIN PROC FAR
MOV AX,DATAS
MOV DS,AX
LEA DX,STRING
MOV AH,9
INT 21H
MOV AH,4CH
INT 21H
MAIN ENDP
CODES ENDS
END MAIN
```
**程序说明:**
- 伪指令SEGMENT和ENDS用于定义一个段段名可以是任意合法的标识符。
- 伪指令PROC和ENDP用于定义一个过程过程名必须是合法的标识符。
- 伪指令ASSUME告诉汇编程序段寄存器CS、DS、ES、SS分别对应哪个段。
- 程序以END伪指令结束END后面的标号表示程序执行的起始地址。
### 2. 汇编源程序
源程序编辑完成后需要用汇编程序MASM.EXE将源程序文件翻译成目标文件.OBJ。汇编命令格式为
```
C:\>MASM 源程序文件名
```
例如对于HELLO.ASM汇编操作如下
```
C:\>MASM HELLO.ASM
```
### 3. 链接程序
汇编后生成的目标文件(.OBJ需要通过链接程序LINK.EXE链接成可执行文件.EXE。链接命令格式为
```
C:\>LINK 目标文件名
```
例如:
```
C:\>LINK HELLO.OBJ
```
### 4. 程序的运行
链接成功后会生成可执行文件HELLO.EXE。在DOS提示符下键入文件名即可运行
```
C:\>HELLO
```
### 5. 调试程序
程序运行如果不能得到预期结果需要用DEBUG调试工具来跟踪、分析程序执行情况。
进入DEBUG状态
```
C:\>DEBUG HELLO.EXE
```
在DEBUG状态下可以使用各种DEBUG命令进行调试例如
- R命令显示和修改寄存器内容
- U命令反汇编
- T命令跟踪执行
- G命令运行程序
## 三、实验步骤
1. **启动编辑程序**在DOS环境下键入EDIT并回车进入全屏幕编辑环境。
2. **输入源程序**:在编辑环境下输入汇编源程序。
3. **保存源程序**按Alt+F激活File菜单选择Save项保存文件文件名为HELLO.ASM。
4. **退出编辑程序**按Alt+F激活File菜单选择Exit项退出编辑环境。
5. **汇编源程序**在DOS提示符下键入
```
C:\>MASM HELLO.ASM
```
屏幕上显示:
```
Microsoft (R) Macro Assembler Version 5.10
Copyright (C) Microsoft Corp 1981, 1987. All rights reserved.
```
然后显示:
```
Warning Severe
0 0
```
表示汇编成功如果没有错误则生成目标文件HELLO.OBJ。
6. **链接目标文件**在DOS提示符下键入
```
C:\>LINK HELLO.OBJ
```
屏幕上显示:
```
IBM Personal Computer Linker
Version 2.00
```
然后显示:
```
run file [HELLO.EXE]:
```
直接按回车,接受默认文件名。或者键入其他文件名后回车。链接成功后会生成可执行文件。
7. **运行程序**在DOS提示符下键入
```
C:\>HELLO
```
如果程序正确,则在屏幕上显示:
```
Hello World!
C:\>_
```
8. **进入DEBUG调试**如果程序运行不正确可以进入DEBUG进行调试
```
C:\>DEBUG HELLO.EXE
```
在DEBUG提示符"-"下可以输入各种调试命令。
## 四、思考与练习
1. 为什么汇编语言源程序需要经过汇编和链接才能运行?
2. 如果汇编时出现错误,应如何处理?
3. 使用DEBUG的T命令单步执行程序观察各寄存器和内存的变化情况。