初学者的汇编器IDE /模拟器
我想学习如何在汇编器中编程。之前(在我的A-Level计算课程中)我做了一些汇编,但这绝对是一个简化的"伪汇编器"。我借用了我父亲的旧Z80汇编程序参考手册,这看起来很有趣,因此,如果可能的话,我想尝试一下Z80汇编程序。
但是,我没有Z80处理器,并且想在我的PC上进行操作(我有Windows或者Linux,所以两者都不错)。我在互联网上找到了各种各样的汇编器,但是我对将其汇编成十六进制文件并不特别感兴趣,我只想将其汇编为PC上某种模拟器可以运行的文件。优选地,该模拟器将向我显示所有寄存器,存储器位置等的内容,并让我逐步执行指令。我发现一些软件暗示他们可能会这样做,但是他们或者拒绝编译,或者似乎无法正常工作。有没有人有任何建议?如果有适用于另一种类型的汇编器的良好的模拟器/ IDE工具,那么我可以尝试使用它(假设有可用的联机参考手册)。
解决方案
回答
我们可能对Z80模拟器对此感兴趣,并且我在WinAsm方面有很好的经验。
回答
看看Thomas Scherrer Z80模拟器,列出我们可以使用的潜在模拟器。
回答
我们可能还会考虑学习x86汇编语言,尽管它是比Z80更大的指令集,但我们可以在Visual Studio中使用内联汇编程序来完成该工作,我们将具有能够使用比Z80更好的工具的优势。 。
我还记得Keil 8051和Arm工具在IDE中有一个模拟器,这些工具有尺寸限制的版本可从www.keil.com免费下载。
回答
我为ZX Spectrum编写z80 asm(仍然,我知道:)),并使用SJasmPlus链接到频谱模拟器文件。许多更好的Spectrum模拟器(例如Fuse和ZXSpin)都内置了编辑器,可以进行实时调试和修补。
回答
如果我们碰巧已经知道.NET,则可能有用:
http://www.viksoe.dk/code/asmil.htm
它有一点限制,并且只能与.NET 1.1一起使用,但是我们至少可以使用"现代" IDE,并且周围有很多文档。
<%@ page language="Asm80386" %> <% Str: DB "Testing...", 0 mov eax, -2 cmp eax, 2 jle Label1 xor eax, eax Label1: lea esi, Str push esi call "Response.Write(string)" pop esi %> <br>EAX: <%= eax %>
如果我们想成为"硬核",另一种选择是得到FreeDOS和VMWare之类的东西,并使用它们。我敢肯定,车库销售(汽车销售?院子销售?)或者二手书店将有彼得·诺顿(Peter Norton)的旧DOS中断圣经的副本。 :)
就个人而言,我通过使用Turbo Pascal(我认为现在是Borland公司免费提供的)来学习x86 asm,它能够将汇编指令嵌入到函数中。简化了应用程序的设置,我可以专注于自己想做的事情。后来我在奥克兰大学使用了MacVAX,这还可以,但是VAX已经死了,我们不妨学习x86 :)
回答
SimpSim绝对值得一看。仅Windows,但功能集相当不错:
- 主存储器和寄存器显示
- 内置编辑器,语法高亮
- 运行,步进和中断功能
回答
I've found a few bits of software that suggest they might do this - but they either refuse to compile, or don't seem to work properly. Has anyone got any suggestions?
写一个。最好选择一个不错的简单指令集(Z80应该是完美的)。我记得这样做是作为大学一年级的练习,我想我们用C ++编写了模拟器并模拟了6800汇编,但是实际上任何语言/指令集都可以。
如今,"学习汇编语言"的想法是要获得计算机如何在最低级别工作的想法,只有少数几个人(编译器作者等)有任何真正的理由来实际编写汇编代码。现代处理器充斥着旨在供编译器使用的功能,这些功能可帮助优化代码的速度/并发执行/功耗等,而尝试为现代处理器手动编写汇编将是一场噩梦。
不要担心让应用程序投产,除非我们很可能希望到目前为止找到的软件都是由像我们这样的人编写的,他们想弄清楚汇编的工作原理并编写自己的模拟器,然后意识到"投入生产"将涉及多少工作,因此公众可以使用它。
回答
WinApe是Amstrad CPC的很好的模拟器。 Amstrad CPC是80年代生产的家用计算机。它使用Z80作为其CPU。使用仿真器,我们可以在编程时显示许多内部信息。它包括用于Z80代码的调试器和反汇编器。
回答
我们可能想看看开源的8085仿真器" GnuSim8085",它专门用于教育目的,它实际上是由学生在准备考试时编写的。它可以在Linux和Windows上运行。
回答
更高的目标!尝试获得一个功能更强大的汇编语言的模拟器。记住,Z80和808x是具有低端和笨拙指令集的低端处理器。
DEC的VAX之类的东西被认为是劳斯莱斯的指令集。然后是疯狂的Risc指令集,它们执行一些非常奇怪的事情。也许我们可以找到这些定义,以便我们可以轻松实现它们。
回答
当我上大学时,我们使用了PIC微处理器。它们由一家名为Microchip的公司生产。他们还有一个很棒的IDE,带有芯片仿真器/模拟器,可以让我们无需实际使用芯片即可完成工作。