Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly Windows下的ARM模拟器_Assembly_Arm_Simulator - Fatal编程技术网

Assembly Windows下的ARM模拟器

Assembly Windows下的ARM模拟器,assembly,arm,simulator,Assembly,Arm,Simulator,我正在从教科书上学习ARM处理器… 我想如果我能把我在ARM模拟器上学到的东西应用起来会更有用。。。编写代码然后观察结果和不同的执行阶段会更有趣 我已经搜索过了,但我只能找到linux上的免费软件或windows上的演示 有没有一个模拟器可以让我看到运行在windows上的ARM处理器(任何版本!)的执行步骤和不同的更改 谢谢 也许您指的是用于Windows的实验性二进制安装程序。有关Windows上的源代码安装,请参阅 支持Windows,是ARM的一流仿真器。当然,确切的管道状态是不可用的,

我正在从教科书上学习ARM处理器…

我想如果我能把我在ARM模拟器上学到的东西应用起来会更有用。。。编写代码然后观察结果和不同的执行阶段会更有趣

我已经搜索过了,但我只能找到linux上的免费软件或windows上的演示

有没有一个模拟器可以让我看到运行在windows上的ARM处理器(任何版本!)的执行步骤和不同的更改

谢谢


也许您指的是用于Windows的实验性二进制安装程序。有关Windows上的源代码安装,请参阅

支持Windows,是ARM的一流仿真器。当然,确切的管道状态是不可用的,但是程序员的仿真视图是可用的。

ARMs emulator armulator在许多地方都有源代码形式,例如在gdb源代码中。qemu工作得很好,但很难“看到您的代码”。最好是为arm内核提供hdl源(例如verilog),并创建vcd文件或其他波形格式。除非你在一家有嵌入式arm的芯片公司工作,尽管你可能找不到。我可能错了,但我认为所有的开放臂核心都会很快被手臂取下

mame有一两个手臂核心。视觉男孩前进有一个手臂核心。nds模拟器具有arm内核

或者你也可以像我用thumbulator做的那样写你自己的,我发现这比让其他人给我看我想看的东西要容易得多。当然,我很懒,只做了一个thumb指令集模拟器,而不是一个完整的arm模拟器。这一点都不难,只是很费时

编辑

好的,我站直了。用谷歌搜索armverilog这个词。tgz包含一个arm的行为模型,它使用icarus verilog(免费)编译并运行良好

注释掉所有$save_store();行(就像C使用a//)

在testarm.v中添加几行代码(例如,在arm10之后和初始开始之前)

首字母 开始 $dumpfile(“test.vcd”); $dumpvars(0,arm10); 结束

始终#50000美元完成

然后

iverilog-o hello testarm.v arm10.v

你好

它将运行50000个时间单位,完成sim卡并关闭vcd文件。要使sim卡变长或变短,请更改always#50000线路

获取一份gtkwave(免费)以查看vcd文件。使用gtkwave是另一个帖子,你需要做一些事情,比如点击test_arm旁边的+符号,然后点击那里的arm10,在信号下点击say addr_bus以突出显示该行,然后点击附加框,点击data_bus并点击附加按钮,可能添加一些寄存器,r1,r2,等。有一个工具栏,但你也可以使用菜单时间->缩放->缩放完整,这是ALT-F在我的安装。然后你就可以学习如何放大和缩小东西

从个人经验来看,你不会“看到你的代码”运行得比使用hdl模拟器更好。事实上,一旦你习惯了这一点,你可能很难在硅上运行,在硅上你几乎什么都看不见

我只运行了行为模型中包含的测试程序。不知道你能或不能用它做什么


verilog$readmemh非常简单,它只想将十六进制的行读入指定的内存中。因此,您可以很容易地制作一个工具,该工具接受编译后的arm代码,并创建verilog模拟所需的ascii文件

这个问题已经问了很久了。 仍然认为为那些熟悉C语言的人写一个答案会很好。 这是一个小型C应用程序,它模拟了一些/以下ARM汇编指令,您可以在其中添加调试或打印结果以检查执行阶段

  • 管道:尺寸4
  • 为用户保留存储位置;中断指令和用户指令
  • 统计每条指令的周期和总周期
  • 数据处理说明:设置溢出和进位标志
  • 分支指令:如果需要,使用堆栈存储链接数据
  • 数据传输指令
  • 中断指令:在获取新指令之前,执行输入指令集中的中断指令或接受硬件指令
  • 打印出寄存器、用户可访问内存、堆栈内存和状态标志。可以打开“debugEnabled”和“instructionLogEnabled”变量,以获取输出中的更多信息
  • 源代码可在此处获得:

    ARMSim#是在Windows环境中运行的桌面应用程序。它允许用户在基于ARM7TDMI处理器的系统上模拟ARM汇编语言程序的执行


    来自我:它是一个模拟器,是特定于处理器的,也就是说,正如其他人所建议的,在QEMU下运行ARM Linux是测试实际解决方案的更好选择。下一步是裸臂金属,这在2015年可以通过Raspberry PI便宜地实现。

    我刚刚发现,到目前为止,它非常棒。

    您可以在web浏览器中运行ARM组装代码,并查看执行步骤。

    是否还有一个具有更好UI的?请注意行为模型(HDL)它不是一个可合成的模型,这意味着你不能用它来制造芯片,ARM不必担心它会公开存在。