English 中文(简体)
在什么地方,我找到了8080-x86轮机转换工具? [闭门]
原标题:Where can I find a 8080 to x86 assembler conversion tool? [closed]

我们不准许对书籍、工具、软件图书馆以及更多的图书馆征求建议的问题。 你可以ed问这个问题,以便用事实和引言回答。

Closed 7 years ago.

EDIT, GOOD NewS!

10年后,我最后决定,我必须坐下来,这样做。 我写了必要的转换-80-to-z80-or-x86和转换-z80-to-x86的工具,将Sargon代码改为x86代码,在我下面讨论时提高了搜索深度,基本上达到了我的所有目标,见

关于再计算项目,我需要将1970年代的一个机构,即8080个组装语言翻译成x86。 现在是时候了,这一工具只是英特尔公司推销80x86个家庭的关键部分。 但是,我的博爱技能似乎并不取决于找到这一原始工具或类似工具的工作。 是否有任何人知道这种工具在任何地方都可以使用?

我已决定增加一些背景资料,使之更清楚地了解我努力做些什么。 这样做是为了普遍利益,而且可能还会提出更多的反馈意见。

在先前的一个项目中,我看一看1970年代的微藏匿点方案,作者Peter Jennings的祝福将用现代机器操作。 Peter在网站上讲述了微藏胶的故事,提供了6502种装配语言。 现在,我的贡献已经增加,可以找到。

rel=“nofollow noreferer”>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);

我制定了符合所有6,02项所需指示的C加工前宏观产品,例如,LDYi()装载的注册号Y,具有(一)中值。

一段时间后,我发现德国的gu安德烈·阿德里安带走了我的代码,并增加了一个接口,使该守则能够从一个现代信ches中推导出来。 我完全冷静地想到这一点。 可在他的网站上查阅;

rel=“nofollow noreferer”> http://www.andreadrian.de/schach/index.html

在同一页(我使用权宜之计)上,他与Sargon的原始版本(另一个典型的ches方案,可能的话是<>>>>>/em>,并表示希望有人能以我与微镜做的同样方式恢复生命(我认为,从小角度讲什么是说的)。 祝福。 此时此刻,我 neglect不 neglect地增加了全球倡议的接口,或者也许我将与安德烈合作。

Sargon的组装语言在这里;

安德烈已消除了一切外在之处,只剩下了议会语言法。

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

现在,这块土地厚度。 安德烈试图用推土机为自己工作。 (Edit 3jan2012 - 安德烈已经向前推进,现在你可以在现代PC上操作旧的Sargon代码,见他的答复,以及他与上述网站链接。) 但有一个复杂的问题,我认为他不理解。 Sargon的代码实际上在Z80被瞄准。 但是,组装语言不是正常的Z80组,而是8080组,而为Z80的“英特尔”作风只有侵扰。 一些背景; Zilog Z80是英特尔 8080的第三方。 它采用8080套教学单的双相容超级集。 Zilog决定为Z80提供更清洁、更多或完全不同的(源级)组装语言。 第三(第四?)方明确决定,这是不正确的决定,并作出了另一种英特尔风格Z80 集合体,以英特尔方式表示Z80 延伸。 或者说,他们只是利用现有的8080名装配商的宏观设施,增加了Z80的延伸。 问题确实如此;复杂的是,Sargon法典使用这一相当温和的混合组装。

有几个原因,我需要8080至x86名翻译,而不是 em塞80或重复我的微镜项目采用的C Macro办法;

(1) 此时此刻,法典更为广泛。 如果可能的话,我就希望通过细致的编辑来避免工作,即使它能够进行最低限度的变革。

(2) 我与《刑法》一样,今天以完全的速度运作。 我看着我,如果我能够提高搜索深度,那么我可以说的是微粒。 骑士们的手法吃着CPU的周期,它需要尽可能多的时间,然后需要更多的时间。

3) 即使我有一个方便的接纳办法,我还是需要把这个 st子带上去,因为我们已继承了的集会公约,这是一个问题。 但是,如果我能够把所有8080万米尼魔法翻译成x86,那么我就可以在x86土地上安慰地工作,简单地翻译“带”;将Z80延伸到相当于x86代码。

担任这一金字塔职务。 希望至少有一人会感到有兴趣。 另一项要求;我热爱获得Dan和Kathe Spracklen的祝福,后者是律师Sargon方案家。 但它们似乎根本没有网络存在。 Dan Spracklen is on Linked 但这似乎是一个死亡、反应不灵的账户。 如果有人知道这些人,或知道他们如何接近他们,请让我知道。

问题回答

http://www.arrakis.es/~ninsesabe/pasmo/ "Starting with version 0.5.0, can also generate 8086 code from Z80 sources, in binary format for Ms-dos COM files or in CP/M 86 CMD format." Pasmo 0.6: "Now can assemble 8080 code instead, or mixed with, Z80."

你们也许想考虑几种选择。 一种是静态的双向译文,如果你将8080部法典编成双向,则可能更容易。 你们看不出你们的法典,就会有问题,因为这不是一件事。 8080年代的资源或董事会的运行与8086位计划按照你的法典运行。 如果你向C翻译,那么你现在或现在就能够把任何目标作为目标,在模拟环境下,不能将目标局限于x86,以涵盖先前的问题。 这并不像......Quite fun实际上似乎一样是痛苦的。

缩略语 我一直想到的是,这样做不是把C译为1.50m的附则。

EDIT:

The problem with assembler to assembler, beyond having to do it again some day, is not the functionality of the instructions (register A = register A + 1), but the flags and the conditional branches (register A = register A + 1, if A == 0 Z = 1 else Z = 0, ...). Based on your understanding of 8080 vs Z80 you know that you are going to have to find or create a tool that can parse that assembler. My theory is that you are more likely to find an assembler to binary than a conversion tool. From binary then you can emulate (at far greater than full speed) or do a static binary translation, ideally to C. With the C you can be sloppy you can have every instruction have code to update the flags and then the optimizer in the C compiler can remove the dead code. Something an assembler is not going to do, leaving you with tons of unused instructions by going straight to x86. I didnt read the manual or too much of the code so it may be easy to handle, but in addition to the individual instructions there is the matter of stack and memory and registers and user interface. If this were to use a graphics/video interface you would have to replace that code wholesale, if the stacks vary between the 8080 and x86 then you are going to have to handle that, and there is likely to be hardcoded memory addresses that you are going to have to deal with. The hardcoded ones are easy the computed ones are much harder, jump tables and the like. How the stack is used for parameter passing and calls may vary between processors and the author may do stack clean up in a way that doesnt translate instruction for instruction. These are all things I hit when I did an assembler to assembler translation, granted it wasnt from a grandparent processor to its grandchild, like the 8080 to x86. I went kicking and screaming but eventually saw that, at least in my opinion, the translation to C covering so many of these problems. I am willing to bet, based on what you said about the 8080 variations from the z80, you may have to write your own assembly parser anyway. Here again the task seems impossibly huge, assembler or static translator when you start to think about how many instructions there are, how many variations. But once you get into it the grinding through instructions is not that bad.

我的理解是,我的答案与问题没有直接联系,问题在于我能够找到这一工具。 我的回答是:如果你愿意找到这一工具的话。 如果你发现这一工具是好的,就会做到。 如果你找到一个使你关闭的工具,那么你可以从那里进行手法调整或进行方案调整。 由于我此前曾几次这样做,我知道,完全翻译可以是一个不错的项目,特别是如果追溯方案是你所关心的,足以向现在迁移。

Trivia: 8086项指示专为便于从808080项翻译而设计。 例如,SHF/LAHF指令的发出就是这种情况。

您能否将Z80来源聚集到二元? 如果是的话,那么,在双电背上,则由“正常”Z80的组装机组成。





相关问题
How can I do a CPU cache flush in x86 Windows?

I am interested in forcing a CPU cache flush in Windows (for benchmarking reasons, I want to emulate starting with no data in CPU cache), preferably a basic C implementation or Win32 call. Is there a ...

What are the names of the new X86_64 processors registers?

Where can I find the names of the new registers for assembly on this architecture? I am referring to registers in X86 like EAX, ESP, EBX, etc. But I d like them in 64bit. I don t think they are the ...

How do I disassemble raw 16-bit x86 machine code?

I d like to disassemble the MBR (first 512 bytes) of a bootable x86 disk that I have. I have copied the MBR to a file using dd if=/dev/my-device of=mbr bs=512 count=1 Any suggestions for a Linux ...

32bit application access to 64bit registry

I have an OS Shell written in 32bit that is replacing the Explorer.exe of a Vista machine. I run a utility which is also written in 32bit, which allows to switch between the Explorer shell and My ...

Left Shift Overflow on 68k/x86?

I heard that the Motorola 68000 and Intel x86 architectures handle overflow from left shifting differently. Specifically the 68k LSL vs. the Intel SAL/SHL assembly instructions. Does anyone know the ...

Translate a FOR to assembler

I need to translate what is commented within the method, to assembler. I have a roughly idea, but can t. Anyone can help me please? Is for an Intel x32 architecture: int secuencia ( int n, ...