汇编程序IDE / Simulator适合初学者

时间:2008-08-26 08:40:40

标签: simulator assembly

我想学习如何在Assembler中编程。我之前(在我的A-Level计算课程期间)我做了一些装配,但这绝对是一个简化的'伪装配'。我借用了我爸爸的旧Z80汇编程序参考手册,这看起来很有趣,所以如果可能的话,我想和Z80汇编程序一起使用。

但是,我没有手持Z80处理器,并希望在我的电脑上完成(我有Windows或Linux,所以要么是好的)。我在互联网上找到了各种各样的汇编程序,但我对组装到hex文件并不是特别感兴趣,我希望能够将它组装到PC上的某种模拟器可以运行的东西上。优选地,该模拟器将向我显示所有寄存器,存储器位置等的内容,并让我逐步执行指令。我发现了一些软件,暗示他们可能会这样做 - 但他们要么拒绝编译,要么似乎没有正常工作。有没有人有任何建议?如果有一个好的模拟器/ IDE可用于其他类型的汇编程序,那么我可以尝试相反(假设有一个很好的在线参考手册)。

16 个答案:

答案 0 :(得分:11)

  

我发现了一些软件,暗示他们可能会这样做 - 但他们也是   拒绝编译,或似乎没有正常工作。有没有人有任何建议?

写一个。你最好选择一个漂亮,简单的指令集(Z80应该是完美的)。我记得这是第一年的本科生练习 - 我想我们用C ++编写模拟器并模拟6800程序集,但实际上任何语言/指令集都可以。

这些天“学习汇编语言”的想法是了解计算机如何在最低级别工作,只有少数几个(编译器编写者等)有任何真正的理由来实际编写汇编代码这些天。现代处理器充满了各种功能,旨在供编译器使用,以帮助优化代码以实现速度/并发执行/功耗等,并且尝试手动编写现代处理器组件将是一场噩梦。

除非您愿意,否则不要担心让您的应用程序生产就绪 - 很可能您到目前为止找到的软件很可能是由那些想要了解装配如何工作并编写了他们的人编写的。自己的模拟器,然后意识到要让它“生产就绪”将涉及多少工作,以便普通公众可以使用它。

答案 1 :(得分:9)

您可能想要查看开源8085模拟器“GnuSim8085”,它特别用于教育目的,实际上它是由学生在准备考试时编写的。它可以在Linux和Windows上运行。

答案 2 :(得分:5)

MipSim是免费的

http://www.mipsim.com

MIPSim 2的主要特点

  • 内置代码编辑器,具有语法高亮和折叠等功能
  • 以不同的表示形式显示寄存器和存储器值(有符号整数,无符号整数,十六进制和ASCII)
  • 设置存储单元的块大小(全字,半字,字节),以便于检查存储器值
  • 即使在模拟和调试过程中,也只需单击即可更改寄存器和存储单元的值
  • 实时用户界面更新允许您查看寄存器和存储器单元的值在执行期间如何变化
  • 内置调试器,具有逐步指令执行,指令跳过和断点功能
  • 用于将ASCII,UNICODE字符串和整数值插入内存以测试代码的工具
  • 用于检查重复或缺失标签和指令参数的工具
  • 保存计算机状态(所有寄存器和存储单元的值),以便下次运行模拟器时可以从您离开的地方继续!
  • 设置模拟速度 - 低速可以很好地跟踪代码并查看其行为方式
  • 编码指令 - 以二进制或十六进制表示形式生成机器代码
  • 捕获装配时间和运行时错误
  • 使用描述性错误消息轻松调试
  • 多线程设计 - 即使执行的汇编代码错误或包含无限循环,MIPSim也不会卡住(希望如此)
  • MIPSim API - 制作您自己的程序,可以读取和写入MIPSim的寄存器和内存,为强大的测试提供了极大的灵活性!

答案 3 :(得分:5)

如果您在Windows上8085 Simulator是最佳选择。 8085 Simulator by J-tech Softwares

用户界面优于任何其他模拟器。此模拟器还提供了内存映射的实时视图(也在执行过程中)。

但是这个不支持Windows 98或更低版本需要检查其他模拟器,例如" GnuSim8085"。

答案 4 :(得分:4)

瞄准更高!尝试获得更强大的汇编语言的模拟器。请记住,Z80和808x是具有低端和笨拙指令集的低端处理器。

来自DEC的VAX之类的东西被视为指令集的罗尔斯·罗伊斯。然后有疯狂的Risc指令集做一些非常奇怪的事情。也许你可以找到那些的定义,这样你就可以实现它们。

答案 5 :(得分:3)

您可能对this感兴趣的Z80模拟器,我对WinAsm有很好的体验。

答案 6 :(得分:3)

您也可以考虑学习x86汇编语言,您可以在Visual Studio中使用内联汇编程序 - 虽然它是比Z80更大的指令集,但您可以使用比使用更好的工具更好的工具。适用于Z80。

我还记得Keil 8051和Arm工具在IDE中有一个模拟器 - 这些尺寸限制版本可以从www.keil.com免费下载

答案 7 :(得分:3)

如果你碰巧知道.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:)

答案 8 :(得分:3)

SimpSim绝对值得一看。它只是Windows,但功能设置相当不错:

  • 主存储器和寄存器显示
  • 带语法高亮显示的内置编辑器
  • 运行,步骤和中断功能

答案 9 :(得分:3)

WinApeAmstrad CPC的优秀模拟器。 Amstrad CPC是80年代生产的家用电脑。它使用Z80作为CPU。使用模拟器,您可以在编程时显示许多内部结构。它包括一个调试器和一个用于Z80代码的反汇编程序。

答案 10 :(得分:3)

这对你现在没有任何意义,只是对于那些停留的人。这是我遇到过的最好的汇编代码模拟器。真的值得!

http://www.emu8086.com/

答案 11 :(得分:1)

请查看Thomas Scherrer Z80 Emulators,了解您可以使用的潜在模拟器列表。

答案 12 :(得分:1)

我为ZX Spectrum编写z80 asm(仍然,我知道:))并使用SJasmPlus链接到频谱仿真器文件。许多像Fuse和ZXSpin这样的更好的Spectrum仿真器都内置了编辑器,可以进行即时调试和修补。

答案 13 :(得分:1)

当我上大学时,我们使用了PIC微处理器。它们由名为Microchip的公司制造。它们还有一个很棒的IDE,带有芯片仿真器/模拟器,可以让你在没有芯片的情况下做事。

答案 14 :(得分:1)

为什么要使用模拟器?

下载MASMNASM并编写好旧的80386架构。大量的在线样本和学习工具。

使用汇编程序的大量现实理由!

答案 15 :(得分:1)

有一个模拟器是Visual6502,用于教授微处理器架构的基础。它有一个编辑器,汇编器,I / O操作和如何工作微处理器的动画。我可以通过以下链接获取。

http://www.pcsistem.net/visual/index.htm