当前位置:  开发笔记 > 编程语言 > 正文

我在哪里可以找到8080到x86的汇编程序转换工具?

如何解决《我在哪里可以找到8080到x86的汇编程序转换工具?》经验,为你挑选了0个好方法。

对于复古计算项目,我需要将20世纪70年代8080汇编语言的主体翻译成x86形式.曾经有一段时间,这样做的工具是英特尔推出80x86系列市场营销的关键部分.但我的谷歌搜索技巧似乎不能找到原始工具或类似的东西.有谁知道这样的工具是否可以在任何地方使用?

编辑

我已经决定添加一些背景信息,以便更清楚我想要做的事情.这是为了普遍的兴趣,也可能是为了更多的反馈.

在之前的一个项目中,我看了20世纪70年代的国际象棋程序Microchess,在作者的祝福下,Peter Jennings在现代机器上运行.彼得在他的网站上讲述了Microchess的故事,并提供了6502汇编语言源.我的贡献现在已添加到故事中,可以在以下位置找到;

http://benlo.com/microchess/microchess9.html

我处理该项目的方法是手动对代码进行最低限度的转换,以便与C语言语义相匹配,例如我对此进行了转换;

        LDY #$0F            ; CALCULATE
        LDA SQUARE          ; POINTS
ELOOP   CMP BK,Y            ; CAPTURED
        BEQ FOUN            ; BY THIS
        DEY                 ; MOVE
        BPL ELOOP
FOUN    LDA POINTS,Y        ;

对此;

        LDYi    (0x0F);     // CALCULATE
        LDA     (SQUARE);   // POINTS
ELOOP:  CMPx    (BK,Y);     // CAPTURED
        BEQ     (FOUN);     // BY THIS
        DEY;                // MOVE
        BPL     (ELOOP);
FOUN:   LDAf    (POINTS,Y);

我创建了匹配所有6502指令的C预处理器宏,例如LDYi()使用(i)mmediate值加载模拟寄存器Y.

一段时间后,我发现一个德国人安德烈·阿德里安已经接受了我的代码,并添加了一个界面,使代码可以从现代国际象棋GUI中驱动.非常酷,我希望我能想到这一点.这可以在他的网站上看到;

http://www.andreadrian.de/schach/index.html

在同一页面上(我使用谷歌翻译),他链接到Sargon的原始版本,另一个经典的国际象棋程序,可能复古的国际象棋经典,并表示希望有人将这个代码恢复生活,就像我做的那样Microchess(我认为无论如何谷歌翻译都是这样说的).好吧,好的,我来这里服务!这次我也不会忽视添加GUI界面,或者我可能会与Andre合作.

Sargon汇编语言在这里;

http://web.archive.org/web/20040217034933/madscientistroom.org/chm/Sargon.html

安德烈删除了一切无关的东西,只留下汇编语言代码;

http://www.andreadrian.de/schach/sargon.asm

现在,情节变浓了.安德烈试图使用模拟器让这些东西自己工作.(编辑3jan2012 - 安德烈已经向前推进了很多,现在您可以在现代PC上运行旧的Sargon代码 - 请参阅下面的答案和上面链接的网站).但是我认为他并不理解这种并发症.Sargon代码实际上是针对Z80的.但是汇编语言不是普通的Z80组装,而是8080汇编,只有英特尔风格的助记符只能用于Z80的说明.一些背景; Zilog Z80是Intel 8080的第三方后代.它使用8080指令集的二进制兼容超集.Zilog决定为Z80提供更清晰,更正交但完全不同(源级)的汇编语言.第三个(第四个?)派对明确认定这是一个糟糕的决定,并制作了另一个英特尔风格的Z80汇编程序,其中Z80扩展以英特尔的方式表达.或者他们可能只是使用现有8080汇编程序的宏功能添加了Z80扩展.没关系; 复杂的是Sargon代码使用了这个相当奇怪的混合汇编程序.

我想要一个8080到x86的翻译器有几个原因,而不是从我的Microchess项目中模拟Z80或重复C宏方法;

1)这次有更多的代码.如果可能的话,我想避免逐行编辑,即使它是一个最小的转换.

2)我希望这次代码全速运行.它看起来好像我可以增加搜索深度,这是我无法用Microchess做的事情.国际象棋代码占用CPU周期,它需要尽可能多的时间,然后需要更多.

3)即使我有一个方便的仿真解决方案,我需要得到这些东西来组装,这是一个奇怪的汇编程序约定的问题.但是,如果我可以将所有8080助记符翻译成x86,那么我可以在x86中轻松地工作,只需将<10%左右的Z80扩展行转换为等效的x86代码.

对不起这个漫无边际的帖子.希望至少有一个人会发现它很有趣.另一个要求; 我很想得到传奇的Sargon程序员Dan和Kathe Spracklen的祝福.但他们似乎根本没有网络存在.Dan Spracklen在LinkedIn上,但似乎是一个死的,没有反应的帐户.如果有人知道这些人或如何联系他们,请告诉我.

推荐阅读
echo7111436
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有