汇编语言9---编译链接以及可执行文件
2021/10/29 22:41:04
本文主要是介绍汇编语言9---编译链接以及可执行文件,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
为什么需要分两步走,编译再链接(masm.exe / link.exe)
编译 masm asm --> obj
链接 link obj --> exe
假设有100w行代码,编译需要花费一段时间(比方说5min)。如果代码有错误,修改过后要重新进行这个5min的过程,如果错误不能一次性解决,就会花费很多个这样的5min。
可行的方法是:
把100w行代码拆分开来,再分别编译为.obj:
t1.asm — t1.obj
t2.asm — t2.obj
…
t1000.asm —t1000.obj
如果其中有个文件tx.asm出错了,我们只需要单独去修改tx的错误并重新编译tx,再对其进行链接就可以了。
可执行文件exe
系统可以运行exe文件,且需要为exe分配一段内存,系统是怎么知道要分配多大的内存给这个程序的?
因为exe文件中除了我们整个程序的代码,还包括了一些信息(描述信息):文件大小,程序入口。系统会根据这些描述信息对寄存器进行相关配置。
start伪指令:
告诉编译器如何编译,在exe文件的描述信息中扮演者:
将我们设置的程序的入口地址 记录在exe文件的描述信息中
然后系统通过这个描述文件中的内容去设置cs:ip,当然还有其他内容,栈段和数据。
观测link后生成的.map文件,会发现里面已经描述了DATA,STACK,CODE三段的起始地址,终止地址以及长度。还指明了程序的入口地址:
这篇关于汇编语言9---编译链接以及可执行文件的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南