OMF(对象模块格式)长度字段显示不正确

OMF(Object Module Format) length field appears incorrect

OMF 对象格式的 PUBDEF 记录让我有点困惑。 我的汇编程序生成的结果表明记录是 4000 字节,但显然不是,为什么要这样做?

Image of Hex view of OMF

0xa0和0x0f是小端格式的记录长度,

请查看规格:http://pierrelib.pagesperso-orange.fr/exec_formats/OMF_v1.1.pdf

它似乎还指出字符串的长度为零字节,并且在某一点上什至只有零字符串长度,没有提供任何字符串。也许我读错了文件?我现在已经花了几个小时,而且还在挣扎。

如果有人能帮助我解决我的问题,因为我正在编写链接器并且不理解这一点就无法继续。

谢谢

文件中没有PUBDEF记录。您似乎误算了之前的记录大小:

0000:80 THEADR
000e:88 CoMENT
0032:96 LNAMES
0041:98 SEGDEF
004B:98 SEGDEF
0055:88 COMENT
005C:a0 LEDATA
006E:a0 LEDATA
007b:8a MODEND

学习使用更复杂的工具进行 OMF 检查,例如 Tdump.exe 或 ODU.exe。