我正在编写8086的汇编程序。我的问题是,如何将十六进制操作符转换为可执行文件,例如.EXE,.ELF,.COM,a.out等。查找链接/资源以及汇编器是否执行链接过程或由OS自动?8086汇编程序 - 从操作码生成目标代码
3
A
回答
7
这是相当复杂的,通常包括两个步骤:
- 汇编汇编代码读取,计算出相应的机器代码,并将其与根据变化的一些其他信息一起写入到目标文件您正在使用
- 链接器的目标文件格式采用一组目标文件,并合并在一起它们变成可实际运行
可执行因此汇编一般不会输出可执行文件;你需要选择一个目标文件格式并阅读如何生成它。理论上,只要你输出一个给定格式的有效目标文件,任何链接器都应该能够完成实际的链接过程,但通常汇编器和链接器是作为一个集合来进行的,所以我不确定它实际上会有多好在实践中工作(例如,GNU汇编器(气体)输出GNU特定的重定位和GNU链接器(ld)知道如何处理的部分,因此您不能在任何其他链接器中使用气体生成的目标文件)
ELF记录在SV ABI的第4部分,尽管您还需要阅读处理器的附录。虽然我无法在任何地方找到它在Internet上找到它,但是COFF被记录为PE规范的一部分;如果你需要它,我可以将它发布到某个地方
0
这是一篇讨论一些可执行格式的文章。它应该让你开始,假设你在Windows上。
http://en.wikibooks.org/wiki/X86_Disassembly/Windows_Executable_Files
1
这取决于(目标)平台上的位,但在Windows PE格式的文件(EXE)你的工作将产生obj files,并让链接器做休息。
相关问题
- 1. 8086汇编程序如何将标签转换为操作码?
- 2. 从C#代码生成汇编代码?
- 3. 汇编8086程序
- 4. 汇编代码生成如何工作?
- 5. 反汇编C代替操作代码
- 6. 是否有反汇编程序生成可编译的汇编源代码?
- 7. 汇编语言符号操作代码
- 8. Ada泛型和汇编代码生成
- 9. x86 intel操作码汇编
- 10. CachedAnonymousMethodDelegate1从代码反汇编代码
- 11. 分析生成的汇编代码以操作命令行参数
- 12. 汇编代码
- 13. 如何在Visual Studio 2010中从C++源代码生成汇编代码
- 14. 从c反汇编代码#
- 15. C程序的汇编代码
- 16. 8086汇编,INT 16,2
- 17. 从linux中的C文件生成汇编代码
- 18. 8086汇编:把代码段开头的变量区域
- 19. Microchip的8086汇编器的MPLAB IDE等效代码
- 20. 想要回答这个8086汇编代码和值吗?
- 21. 是否有程序将x86代码更改为汇编代码?
- 22. GMP-汇编代码?编译代码
- 23. 使用汇编代码程序发生分段错误错误
- 24. C++汇编代码
- 25. 编译后生成的奇怪汇编代码
- 26. 写入汇编代码系统编程
- 27. 什么是8086 ESC指令操作码
- 28. 8086汇编语言
- 29. 使用在DOS INT 21H写8086汇编程序
- 30. 粘贴恒成汇编代码块
@Aillyn:我想他是在问具体的文件格式。 – sje397 2010-08-08 15:16:06
请参阅http://stackoverflow.com/questions/2478142/how-do-you-make-an-assembler – 2010-08-08 15:19:07