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

4.0 KiB
Raw Permalink Blame History

附录一:汇编程序上机过程

一、实验目的

  1. 掌握编辑汇编语言源程序的基本方法。
  2. 掌握汇编语言源程序的汇编、链接过程。
  3. 掌握DOS环境下可执行文件的装载与运行。
  4. 学会使用调试工具DEBUG来观察程序执行情况。

二、实验内容

1. 编辑源程序

编辑工作可以用任何一种文本编辑器来完成例如行编辑器EDLIN全屏幕编辑器EDIT、记事本Notepad、写字板等。编辑完成后源文件以.ASM为扩展名存储。

下面是一个完整的汇编程序,程序运行时在屏幕上显示字符串"Hello World!"。

;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命令单步执行程序观察各寄存器和内存的变化情况。