汇编程序的编辑、编译、连接与执行(附带DOSBox安装)

若没有下载的小伙伴可以参考这篇文章下载,里面有很多设置也非常不错
Windows 64 位系统下安装配置 DOSBox 及 debug.exe

首先介绍俩种方法来编译源程序

方法一:

step1:编辑源程序

1、打开DosBox
在这里插入图片描述2、运行edit
在命令行输入

edit

在这里插入图片描述
3、在Edit中编译程序,如下图所示(随便举了一个例子)
在这里插入图片描述3.1 File->save as
在这里插入图片描述3.2 输入你要保存的文件名,以asm后缀结尾,之后点击OK
在这里插入图片描述3.3 点击File->exit来退出edit

4、再进行完上述对源程序的编辑之后,会得到一个源程序文件D:\software\DOSBox\MASM\hui.asm
在这里插入图片描述接下来进行编译源程序

step2:编译

1、进入DOS,运行masm.exe,会出现一些版本信息
在这里插入图片描述上面我命名为hui,择需要输入hui即可,如果不是以.asm为扩展名的话,择需要输入全名,比如“hui.txt"

2、输入要编译的源程序文件名后,按enter键

注:若我们当前已经再源文件目录下,直接输入文件名就行,要是是再其他路径中,则要输入完整路径
在这里插入图片描述
执行完后生成hui.obj文件
在这里插入图片描述
在这里插入图片描述

这个列表文件不生成,直接Enter
在这里插入图片描述

同样先不用生成教程引用文件
在这里插入图片描述

step3:连接

对源程序进行编译得到目标文件后,我们需要对目标文件进行连接,从而可以得到可执行文件,接下来我们要将.obj文件连接为.exe文件

1、运行link后,直接输入文件名
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2、默认可执行文件名(当然在这里也可以指定文件名或者路径),按enter
在这里插入图片描述
3、提示生成映像文件,这里不生成,按enter
在这里插入图片描述
4、这里提示输入库文件名,若调用子程序则要输入库文件名,这里没有调用,直接enter

在这里插入图片描述
注:这里有一个警告:没有栈段,先不用管

偷懒方法!以简化方式进行编译和连接

masm后面要加上被编译的源程序文件的路径,文件名,再加上分号,此时生成hui.obj文件
在这里插入图片描述
link后面要加上被连接的源程序文件的路径,文件名,再加上分号,此时生成hui.exe文件
在这里插入图片描述

方法二
新建一个.txt文件,在里面进行编码,相当于上面的edit步骤
在这里插入图片描述编码完成后进行保存,并修改后缀名为.asm,注意文件应该在MASM路径下,其余步骤和方法一 一样。

EXE文件的执行

  • 在DOS中直接执行hui.exe时,是正在运行的command,将hui.exe中的程序加载入内存
  • commond设置CPU的CS:IP指向程序的第一条指令,从而使程序得以运行
  • 运行结束后,返回到commond中,CPU将继续运行commond

程序执行过程的跟踪,以hui.exe为例
1、使用debug将程序载入内存
在这里插入图片描述
2、使用R命令来查看各个寄存器的设置情况(关于debug命令,参考这篇博客
在这里插入图片描述
3、使用U命令查看其他指令
在这里插入图片描述4、现在开始跟踪,使用T命令进行单步执行每一条指令
在这里插入图片描述5、到了int 21 用P 命令执行
在这里插入图片描述
6、使用q命令退出debug,回到commond中

如何查看你最终结果呢?

还是以上面例子为例,使用t命令单步执行,知道mov AX,4cH为止,程序结束,AX中的值就为其结果
在这里插入图片描述

  • 12
    点赞
  • 100
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

浩波的笔记

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

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

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

打赏作者

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

抵扣说明:

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

余额充值