Assembly 从DOS MZ可执行文件读取调试信息

Assembly 从DOS MZ可执行文件读取调试信息,assembly,x86,x86-16,debug-symbols,tasm,Assembly,X86,X86 16,Debug Symbols,Tasm,我正在尝试编写一个8086模拟器+调试器。关于写第一篇文章的信息很多,但第二篇没有。我需要通过命令TASM.exe/zi main.asm和tlink.exe/v main.obj(显示程序列表)读取TASM包含在MZ可执行文件中的调试信息。该信息直接附加在.exe文件中的操作码之后。Turbo debugger成功读取并显示此数据。但它是如何做到这一点的呢?如何实现这种功能?关于Borland的TLINK/Turbo调试器调试信息的最佳信息来源可能是Borland开放式体系结构手册(可在许多地

我正在尝试编写一个8086模拟器+调试器。关于写第一篇文章的信息很多,但第二篇没有。我需要通过命令
TASM.exe/zi main.asm
tlink.exe/v main.obj
(显示程序列表)读取TASM包含在MZ可执行文件中的调试信息。该信息直接附加在
.exe
文件中的操作码之后。Turbo debugger成功读取并显示此数据。但它是如何做到这一点的呢?如何实现这种功能?

关于Borland的TLINK/Turbo调试器调试信息的最佳信息来源可能是Borland开放式体系结构手册(可在许多地方获得,例如)。它描述了更新后的32位支持调试信息(请参阅“符号表格式”一节),但其中很多信息仍然适用于16位


Ralph Brown对标题也有一个简短的描述:

这很可能是特定于编译器的。因此,调试信息格式将取决于编译器。也许格式在某个地方有记录,但我对此表示怀疑。我建议首先在模拟器中运行TD;-)如果格式为
COFF
,您可以在特定的中找到一些信息。