如何用TASM+TLINK生成指定非零ORG的32位无头部二进制文件
用TASM+TLINK实现等效NASM的32位非零ORG纯二进制文件
可以通过TASM+TLINK配合配套的EXE2BIN工具实现需求,以下是具体实现细节:
对应的TASM汇编文件(id.asm)
; TASM 32位平坦模型汇编代码 .386 MODEL FLAT ORG 432100h CODESEG start: mov eax, foo push eax foo: END start
编译链接命令行
需分三步执行:
- 用TASM汇编生成目标文件:
(tasm /ml id.asm id.obj/ml选项适配32位平坦模型,确保生成正确的地址引用) - 用TLINK链接生成DOS 32位平坦模型EXE:
(tlink /Tdc id.obj, id.exe, , ,/Tdc选项指定生成无冗余头部的32位平坦模型可执行文件) - 用
EXE2BIN转换为纯二进制文件:exe2bin id.exe id.bin
验证结果
生成的id.bin大小为6字节,使用ndisasm -b 32 id.bin反汇编结果如下:
00000000 B806214300 mov eax,0x432106 00000005 50 push eax
完全匹配NASM生成的结果,满足所有要求:
- 输出为6字节纯二进制,无任何额外头部
- 直接使用
ORG 432100h定义起始地址,未采用偏移修正方案 - 全程基于TASM+TLINK工具链实现
内容的提问来源于stack exchange,提问作者pts
相关产品推荐
相关产品推荐

