【8086汇编】从汇编源程序到可执行文件(masm + link工具链的使用)

0.准备工作

  • masm.exelink.exe拷贝到虚拟机的DOS系统中;
  • 熟悉DOS系统自带编辑器edit.exe的使用;

再来回顾一下整个过程:

1. 使用edit编辑源程序

在命令行中输入edit打开编辑器,然后编辑程序,以如下源代码为示例:

assume cs:coding

codesg segment
	mov ax,0123H
	mov bx,0456H
	add ax,bx
	add ax,ax

	mov ax,4c00H
	int 21H
codesg ends

end


然后将源代码保存为.asm格式的文件:

2.使用masm对源文件编译

本文中使用masm 5.0汇编编译器。

  1. 进入masm.exe所在目录,运行masm:
  2. 输入源文件的文件名:
  • 文件名称:如果是.asm,则直接输入filename即可,否则输入完整的文件名;
  • 文件路径:如果是当前目录,则直接输入filename即可,否则输入完整的路径名;
  1. 输入目标文件的文件名,默认.obj格式:
  2. 输入列表文件的名称,这个文件是编译器将源程序编译为目标文件所产生的中间文件,不需要产生,直接按回车即可:
  3. 输入交叉引用文件的名称,这个文件同列表文件一样,是编译器将源程序编译为目标文件产生的中间结果,不需要保存,直接按回车即可:
  4. 编译过程错误提醒和警告提醒

3.使用link对目标文件链接

本文中使用link 3.60链接器。

  1. 进入link.exe所在目录,运行link:
  2. 输入目标文件的文件名,规则同上:
  3. 链接器已经默认可执行程序文件名为1.exe,直接按回车即可:
  4. 输入映像文件的名称,这个文件是链接器将目标文件链接为可执行文件的过程中产生的中间结果,不需要产生,直接按回车即可:
  5. 输入库的名称,如果程序里用到了库里的子程序,则需要输入,这里没有用到,直接回车即可:
  6. 链接完成,生成可执行程序,输入链接信息:

4. 编译和链接过程的简化

从2、3节可以看出,整个编译和链接的过程经历了很多不必要的步骤,这里可以将整个过程简化:

  • 编译使用:masm <filepath\filename>;(注意最后有个分号)
  • 链接使用:link <filepath\filename>;(注意最后有个分号)

5.执行可执行文件

首先进入到可执行程序所在目录,然后输入文件名运行即可:

6.使用debug调试可执行程序

debug程序的作用:

  • 将程序载入内存;
  • 设置CS:IP指向程序的入口;
  • 继续保持对CPU的控制,便于执行程序;
  1. 使用命令debug <可执行程序路径\名称>开始调试(名称需要带上.exe后缀):
  2. 使用debug程序的指令开始调试,如:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mculover666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值