AT&T到Intel汇编语言的转换器

5

我正在寻找一种将AT&T风格的x86汇编转换为Intel风格汇编的转换器。

Att2Intl是一个DOS可执行文件,无法在64位Windows上运行。

Gas2masm非常不完整 - 它无法处理注释、.ascii以及许多合法的命令,如leavemovs,会破坏一些标识符......

还有其他选择吗?目标汇编器必须是Microsoft的,没有切换语法的方法。

编辑:大约有400,000行。不是一次性的任务,需要一个不太频繁但可重复的过程。但我不必调试它。:)


4
这款软件“不支持在64位Windows上运行”。您可以尝试使用DosBox - Michael
@Michael +1 - 如果这是一次性的工作,为什么不呢? - David Jashi
2
Att2Intl带有C源代码。您可以重新编译并运行它吗? - lurker
4
应该有人(暗示一下)写一个网页,你可以把一种样式粘贴进去,然后得到另一种样式。 - 500 - Internal Server Error
使用Perl或Vim正则表达式将AT&T转换为Intel应该很容易。我已经使用Vim正则表达式将32位x86代码转换为x86-64代码,这是完全可行的。我认为AT&T转换为Intel不会更困难。 - nrz
显示剩余2条评论
1个回答

2

这儿有一个不是完全的Perl脚本,它可能会对你有所帮助,如果你想对缺失的部分进行一些修改或扩展:http://boinc.berkeley.edu/android-boinc/libssl/crypto/perlasm/x86_64-xlate.pl

如果不行的话,只需要在DOSBox或WinXP VM中运行Att2Intl。如果没有XP访问权限,也可以尝试在VM中安装ReactOS。我相信他们使用了DOSBox源来实现DOS层,因此这可能提供长期解决方案,而不必每次都依赖于实际运行DOSBox。


2
我下载了Att2Intl的源代码。只需最小的努力,您就可以使其在Linux上编译。它做得还不错,但是(1)它不理解q后缀,(2)它会丢失缩进。前者可能是一个错误。链接的perl脚本可以在这里找到,并且做得还不错。您可以使用cat att.s | ./x64_64-xlate.pl nasm来调用它。 - Bailey Parker
这些工具有进展吗? - Royi
答案中的链接已失效,但我怀疑这是指向相同文件的链接 https://github.com/openssl/openssl/blob/master/crypto/perlasm/x86_64-xlate.pl - hojusaram

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接