8086汇编 程序编译

8086汇编 程序编译

源程序到执行可执行文件的过程 ↓

源程序文件.asm -> 目标文件.obj -> 连接 -> 可执行文件.exe -> 运行程序

编译

MASM.exe 工具编译


  •   ; 开始编译文件,也可以不写入文件名
  •   ; 简化过程结尾加“;”号:masm 文件.asm;
  •   1)> masm 文件.asm

  •   ; 目标文件(*.OBJ)是我们对一个源程序进行编译要得到的最终结果。
  •   2)> Object filename [文件名]:回车

  •   ; 列表文件(*.LST)是编译器将源程序编译为目标文件的过程中产生的中间结果。
  •   3)> Source listing [NUL.LST]:回车

  •   ; 交叉引用文件(*.CRF)同列表文件一样,是编译器将源程序编译为目标文件过程中产生的中间结果。
  •   4)> Cross-reference [NUL.CRF]:回车

  •   结束:对源程序的编译结束,编译器输出的最后两行告诉我们这个源程序没有警告错误和必须要改正的错误。

连接

LINK.exe 工具连接 


  •   ; 连接文件使用命令
  •   ; 简化过程、加“;”号:link 文件名.obj;
  •   1)> link 文件名.obj

  •   ; 可执行文件(.EXE)是我们对一个程序进行连接要得到的最终结果。
  •   2)> Run File [文件名.EXE]:回车

  •   ; 映像文件(.MAP)是连接程序将目标文件连接为可执行文件过程中产生的中间结果。
  •   3)> List File [NUL.MAP]:回车

  •   ; 库文件(.LIB)里包含了一些可以调用的子程序,如果我们的程序中调用了某一个库文件中的子程序,就需要在连接的时候,将这个库文件和我们的目标文件连接到一起,生成可执行文件。
  •   4)> Libraries [.LIB]:回车

  •   ; no stack segment,一个“没有栈段”的警告错误 ,可以不理会这个错误。
  •   5)> LINK:warning L4021:nostack segment

原文地址:https://www.cnblogs.com/liujunjun/p/12494127.html