一个汇编语言从写出到最终执行的简要过程
大体分为以下三步:
第二步执行的操作是使用汇编语言编译程序对源程序文件中的源程序进行编译,产生目标文件;再用链接程序对目标文件进行连接,生成可在操作系统中直接运行的可执行文件。
第三步中,操作系统依照可执行文件中的描述信息,将可执行文件中的机器码和数据加载到内存,设置CS:IP指向第一条要执行的指令,然后由CPU执行程序。
下图是从汇编程序从写出到执行的详细步骤。
编译链接
编译
为了使得我们编写的汇编语言程序得以执行,我们必须有相应的编译器和链接器,这里我们需要下载对应的三个文件,分别是MASM.exe、LINK.exe,ML.exe三个文件,对应的百度云链接如下:
链接:https://pan.baidu.com/s/15k0PZSgvO9JrAmilZ5U4Kg .
提取码:aswr
将下载的文件统一的放到一个文件夹下,如下图所示:
将三个文件拷贝至文件夹下就可以编译链表了,编译链接操作这里采用win10命令行窗口的方法进行编译和链接。编译链接前的文件下只有三个刚拷贝进来的文件,一个.asm文件和debug.exe(下面解释),首先先在命令行用masm编译.asm文件,首先先进到相应的文件夹下。运用masm 生成.obj文件,生成后的信息如下。
链接
生成了.obj文件后,运用link命令将其链接,最终生成.exe可执行文件,具体操作如下:
执行
生成了可执行文件后,需要运行可执行文件,由于win10是64位操作系统,不能运行16位的汇编语言程序,因此,我采用的方法是在dosbox里运行,要使得程序能够在dosbox运行,需要将debug.exe的程序放到当前的文件夹下,也就是前面所提到的debug程序,除此之外,还需要更改debug的相关路径。双击DOSBox 0.74 Options.bat,运行该批处理文件后用文本文档打开配置文件dosbox-0.74.conf文件,在文件的末尾进行更改。
在打开的文件的末尾输入如下语句,
至此,就可以运用dosbox来运行可执行文件了,用cd命令进入到对应的文件夹,输入debug compare.exe即可运行程序。
最后,通过t指令即可单步运行程序中的指令,如下图所示。
来源:CSDN
作者:wenziw5
链接:https://blog.csdn.net/weixin_42616791/article/details/103448316