问题标签 [mars-simulator]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
arrays - 如何跳回分支语句?
我在试图弄清楚如何在 Mips/Mars 架构中实现这一点时遇到了很多麻烦。
我正在制作一个战舰游戏并将棋盘存储为一个可以容纳 100 个整数的数组。
我需要遍历玩家的数组并将存储在每个“单元格”中的信息转换为图形数据,以便向用户显示棋盘。
我的麻烦源于这样一个事实,即向用户显示的字符是基于数组的每个单元格中的值。
如果值为 0(空) - 打印 '[ ]',如果 1(猜测和空)打印 - '[O]',如果 2(猜测和命中)打印 - '[X]'。
因此,当我遍历数组中的每个单元格时,我需要检查值并分支到适当的打印函数。
我的问题是,如果我分支到 print 语句,我如何跳回到分支语句所在的位置?
伪代码:
打印后如何跳回分支语句以保留您在数组中的位置?
非常感谢!
random - 使用系统调用生成随机数
我正在尝试从 0-99(含)生成一个随机整数,但是在使用 42 系统调用时我很难找到将值存储到的位置。
到目前为止,我有:
我不确定生成的值存储在哪里,所以我可以使用它。
assembly - 我在使用这个 MIPS 程序时遇到了问题
我的目标是将下面的 C 代码转换为 MIPS 程序集。我觉得我错过了我的代码中的一个关键部分。有人可以解释我做错了什么以及我需要做些什么来解决这个问题吗?
这是C代码:
到目前为止,这是我的代码:
assembly - 指定 MARS 输入文件
我正在 MARS 中测试一个 MIPS 汇编程序,并且想指定一个文件在执行期间作为输入(有点像我可以通过使用以下 UNIX 命令重定向标准输入来完成):
spim -file [文件名].s < [input_file]
有没有办法在 MARS 中完成这样的事情?这是一个家庭作业,我仅限于标准 MIPS 系统调用,所以我不能使用 MARS 的扩展文件操作集。
我也愿意接受其他方法(在任何 MIPS 模拟器中)。我只需要一种方法来逐步执行程序并在它运行时进行调试。上面的 MIPS 解决方案一直运行到它完成或抛出异常,此时我无法后退或检查内存内容。
任何建议将不胜感激!
assembly - If 语句、逻辑与、比较
我是 MIPS 汇编语言的新手。刚开始学。我遇到了这个问题,我必须为用户输入的测试分数显示一个字母等级。到目前为止,我已经做到了,但我无法让它发挥作用。我总是变得无效,或者有时程序结束或给出 D。
假设:
请帮我弄清楚我做错了什么并更正我的代码!
问题的第二部分是我必须在用户输入 -1 后显示 A、B 等的数量。我该怎么办?我知道我必须将每个等级的计数存储在一个单独的寄存器中并不断增加,但不确定这是如何完成的。
编辑:我在 Windows 7 上使用 MARS 4.1 工具。
assembly - 在数据段中输入后直接保存输出
这是我的代码:
我有一个循环,里面有一个子例程。每次“jr $ra”命令将流返回到我的主函数时,子返回(在 $v0 reg 中)我想要保存的输出。我需要在数据段中的输入之后直接保存这些输出。我该怎么做呢?如果它只是一个输出,我可以说:
之后会直接保存。但是有多个输出,那么我如何以一般方式执行此操作?
arrays - 向地址添加直接值
我在火星上写了一个 MIPS 程序。我正在遍历一组地址。
我写这个:
其中 $t4 包含我的地址数组的基地址,每次循环运行时它都会移动 8 位。然后,在循环完成后,我在该位置存储一个地址。
我的问题:我添加 8 是否正确?或者我应该添加 1(1 字节=8 位,不确定添加到地址时使用什么数字...)
java - Ubuntu 11.04:运行 MARS 模拟器
我正在尝试运行 MARS 模拟器,以便在 Ubutnu 11.04 中做一些组装作业。MARS(jar 文件)需要安装 Java,所以我确实安装了 Java。
之后我输入
结果我得到了:
无法从 .jar 加载主类清单属性
我必须做什么才能正确运行此文件?
alignment - 运行时异常,存储地址未在字边界上对齐
我得到:第 50 行:0x004000c8 处的运行时异常:存储地址未在字边界 0x10010533 上对齐
有人能告诉我为什么会这样吗?“.align 2”不是应该防止这种情况吗?
mips - 错误:“存储地址未在字边界上对齐”
我正在使用 MARS MIPS 模拟器并使用 Digital Lab Sim。
我的代码的目的是在 Digital Lab Sim 上以十六进制显示数字 0 到 15。
我收到此错误
这是我正在使用的代码:
该指令la $t0,0xFFFF0011
是由错误负责的指令。0xFFFF0011 控制左侧 LED,0xFFFF0010 控制右侧 LED。
这是有趣的部分。如果我使用 0xFFFF0010 代码按预期工作,但如果我使用 0xFFFF0011 它不起作用。
我究竟做错了什么?