【x86汇编】第七章:上机操作

文章目录

  • DOS环境下运行汇编源程序
    • 必备软件
    • 运行宏汇编程序的流程
    • 编译执行的命令
      • 简单方式
      • 提问方式
  • 多模块程序的运行及子程序库的使用
    • 多模块程序的运行
      • 简单方式
      • 提问方式
    • 子程序库的使用
      • 提问方式
      • 应用举例
  • windows下运行汇编源程序的方法
    • 32位汇编必备软件
    • Windows环境汇编的特点

DOS环境下运行汇编源程序

必备软件

  • DOS系统
  • 宏汇编程序
  • 符 交叉处理程序(可选)
  • 16位段连接程序:LINK.EXE
  • 库管理程序:LIB.EXE
  • 16位段调试程序:TURBO DEBUG(TD.EXE)

运行宏汇编程序的流程

  • 建立汇编源文件,扩展名为.ASM
  • 汇编,产生目标文件(.OBJ),此过程是通过宏汇编程序MASM实现的
  • 连接目标文件,建立可执行文件(.EXE),此过程是通过16位段的连接程序LINK实现的
  • 运行可执行文件,直接键入文件名即可运行

编译执行的命令

简单方式

MASM TEST;
LINK TEST;
TEST

  • 分 表示使用简单方式,不用提问,全部默认
  • 调用宏汇编程序 MASM.EXE,汇编源文件为TEST.ASM,生成TEST.OBJ
  • 调用连接程序 LINK.EXE,生成可执行文件 TEST.EXE
  • 执行TEST.EXE文件

提问方式

  • 不加分 ,即可进入提问方式
  • 汇编提出的问题:源文件名、目标文件名、是否建立汇编列表文件LST、是否建立符 交叉引用文件CRF
  • 汇编列表文件LST可以打开看,符 交叉引用文件CRF则还需要经过交叉引用程序CREF.EXE进行处理,生成符 交叉列表文件EXAM.REF才能打开看
  • 连接提出的问题:要连接的目标文件、产生的可执行文件名、是否建立地址分配文件、是否要连接子程序库

多模块程序的运行及子程序库的使用

多模块程序的运行

如果一个程序,由多个模块组成,应该分别汇编,生成目标模块,再由连接文件,一起生成可执行文件

简单方式

LINK A+B+C;

默认的可执行文件以A命名

提问方式

目标名、生成的可执行文件名、MAP文件名、是否连接子程序库

子程序库的使用

处理复杂问题时,往往需要把反复使用的子程序集合在一起,组成子程序库(.LIB)

提问方式

LIB的提示信息及回答

提示信息 回答
Library name : 要进行操作的库名
Opration: 命令字符及模块名或目标文件名
List file 交叉引用列表文件名

库管理命令字符

命令字符 功能
+ 把目标代码文件作为最后一个模块加入库中
从库中删除一个模块
* 从库中取出模块,写入目标文件中
; 剩下的提示缺省值
& 提示信息在一行内回答不下时,键入此字符将另起一行
ctrl + c 终止库管理操作

应用举例

例子:建立一个子程序库(WAN.LIB),将子模块QUEUE、F10T2、F2T10放入该库

  • 建立子模块的源文件
  • 将子模块源文件分别汇编
  • 调用LIB将目标文件加入库中,按提示操作

windows下运行汇编源程序的方法

32位汇编必备软件

  • Windows操作系统
  • 常量和结构体预定义头文件:WINDOWS.INC
  • 常用的API函数声明头文件:KERNEL.INC,USER32.INC,GDI32.INC
  • 引入库:KERNEL.LIB,USER32.LIB,GDI32.LIB
  • 宏汇编程序6.11版本以上ML.EXE
  • 预定义头文件:RESOURCE.H
  • 资源编译器:RC.EXE和CVTRES.EXE
  • 32位段符 交叉引用处理程序:CREF.EXE,用来处理符 交叉引用文件(.SBR),生成符 交叉列表文件(.REF),如果调用了系统API,生成的REF将会十分复杂
  • 32位段连接程序LINK.EXE,连接COFF格式的目标文件
  • 库管理程序LIB.EXE
  • 32位段调试程序:TURBO DEBUG(TD32.EXE)

Windows环境汇编的特点

  • 从提问方式,变为提供多种开关供用户选择
  • 连接程序的交互也通过开关选择实现
  • 开关可以通过 ML / 询

常用的开关功能:

指令 功能
/c 表示只汇编不连接
/Fl 汇编的同时生成列表文件
/FR 汇编的同时生成符 交叉引用文件(.SBR)
/coff 表示用coff格式产生目标文件
/Bl 汇编连接同时进行
/Fm 在连接时同时生成地址分配文件
/link 表示要连接子程序库
/LIBPATH 当引入库与目标文件不在一个子目录中,用此开关指定路径
/Cp 告诉MASM不要更改用户标识符的大小写

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年3月15日
下一篇 2020年3月15日

相关推荐