问题标签 [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.

0 投票
2 回答
2522 浏览

loops - 使用循环递增 (MARS)

因此,我目前在 MIPS 中有一项任务。我的任务也是:

1) 编写一个从数组的第一个元素开始的循环 2) 然后依次将每个元素加 1 并将结果存储回数组 3) 如果遇到零,则退出程序

这是我已经拥有的:

我运行它时遇到的问题是它一直在运行。而且我知道第 10 个单词 (.word0) 包含值 0。

我的代码哪里出错了?

非常感谢


@Robert B,这就是我现在所拥有的:

0 投票
1 回答
4176 浏览

assembly - MIPS 检测空终止字符的问题

一点背景故事:这是一个应用程序,旨在获取一个字符串,并为每个字符添加一个键 (1-26) 到 ascii 值并将其放回字符串中。唯一的问题是我的结束字符也总是被操纵,即使我的程序设计为以空字符(beqz)终止。

示例->

输入留言:超开心

输入密钥:5

加密消息:xzujw mfuud]

谁能发现这段代码会操纵最后一个字符并将其更改为结束括号的原因?谢谢。

0 投票
2 回答
3528 浏览

string - MIPS 问题:返回 ($v0)、参数、jal 和 jr $ra(包含代码)

所以我一直在从一个站点跳到另一个站点(像这样的站点真的帮助了我:http ://www.cs.uiuc.edu/class/fa05/cs232/html/L4.pdf )但我似乎不能以最简单的方式找到我的答案。(奇怪的是,我对在 MARS 中使用 MIPS 进行编码并不太习惯,我只是不太了解这个概念。我实际上对语言本身非常了解,或者我想这样想。在意识到我被困在这样的事情上之后,我想说我没有那么自信。哈哈。)

我想了解返回 MIPS。我知道有两个返回寄存器($v0,$v1),但大多数情况下,当您最终执行系统调用或其他操作时,它们最终会被“破坏”/覆盖。为什么这有帮助?

另一个问题,参数存储在 $a0-$a3 寄存器中。然而,它们也经常在打印和此类系统调用中被覆盖。为什么会这样?如何将原始参数保存在一个寄存器中(例如 $a0),但当我想打印它时,我必须覆盖它?

所以,我的困难在于:我正在为我的 CptS 260 课程做一些家庭作业,而且我正在做一个非常简单的项目。我正在创建一个计算字符串长度的函数。 这里是:

我已经看过这个:(mips 程序集的字符串长度)并从中获得了一些想法。然而,我的决定在我标记为无限循环的段上无限循环。为什么会这样?我需要为此使用堆栈吗?

此外,我的老师绕过我的主要模块并创建自己的项目来对这些项目进行评分。这大致是他通过插入不同的参数来做一堆不同的测试用例。他还希望我们返回 $v0 作为长度的答案。我会做一个简单的:在我的一个块的末尾移动 $v0, $t0 (我将字符串的长度移动到返回寄存器的位置)?它必须在“main:”之外的代码中,因为他绕过了我的。

编辑:这只是我整个项目中的多项任务。稍后,我将不得不包含这个项目并将其合并到我正在编写的另一个项目中。(特别是回文检查器。)那么现在开始使用 $sp 和堆栈会更好吗?

任何帮助,将不胜感激!甚至只是一个知识简报。如果我不够具体,请随时提出问题!

非常感谢您的宝贵时间!

-CozmoNaught

0 投票
1 回答
3680 浏览

mips - SPIM vs MARS for RISC

I know that MARS is missing some macros, relative to QtSpim, and does not allow overloaded macros. I would like to know from the point of view of a RISC code whether there are any worthy variations between the two, and what these are if they are useful or make it more user friendly. Thank you

0 投票
1 回答
963 浏览

assembly - 连接位图显示的MIPS Julia集

我已经创建了 Julia 迭代,但我无法将其与 MARS 中的位图显示集成。它应该只接受 a 和 b 的输入,并使用嵌套循环来迭代函数 256 次。这是我到目前为止所拥有的:

0 投票
1 回答
917 浏览

sorting - 在 MARS 中为 MIPS 程序打印到屏幕

嗨,我必须在 MIPS 中编写一个程序来进行冒泡排序,然后打印排序后的数组并播放音符。我无法让它在火星上执行,我想知道我需要在我的程序中添加什么:

0 投票
1 回答
909 浏览

c++ - 在 Visual Studio 2013 中使用 /fa 制作列表文件?

我的第一篇文章时间到了!我目前正在尝试使用 MARS 模拟器将 C++ 代码转换为程序集以进行分配,并且我想使用/fa filenameVisual Studio 必须创建一个 .asm 文件的功能来预览我的内容需要做的(令人难以置信的新组装,教授并没有太擅长教授任何关于它的东西,所以我遇到了困难)。我的问题是,我究竟如何/fa filename在 Visual Studio 中使用?我正在转置的 C++ 代码如下:

我只是没有任何使用 Visual Studio 的经验,所以我不太明白将列表文件的命令放在哪里。我在调试过程中尝试过使用反汇编程序,但它不像任何可识别的东西。谢谢你的帮助!

0 投票
1 回答
536 浏览

mips - 有人可以向我解释这段代码的某个部分会发生什么吗?(MIPS/组装)

对不起,我一直在问我感觉很糟糕的问题。

这不是我的代码,我只是想了解某个地方发生了什么

几个问题.. ALIGN 和 .SPACE 是做什么的?你怎么知道你需要分配多少空间?

我理解大部分代码(至少我认为我理解)但我对 loop1 和 loop2 标签感到困惑。

主要问题:我的问题是程序什么时候回到loop1?如果循环 1 的计数器从 1(来自 addi)开始,它需要达到 6 才能中断。什么时候调用它来增加+1,因为在loop2中

除非 $t0 增加,否则这永远不会是真的?$t1 值是数组的值,它是 6。我没有看到程序返回到 loop1 ......所以有人可以向我解释它是怎么做的吗?计数器必须以某种方式达到 6,因为程序运行良好。(从最小到最大打印出各种数组)

0 投票
2 回答
1628 浏览

assembly - 访问.word Mips 汇编语言的索引

我无法访问 .word 中的索引。我可以这样做,list: .word 1, 2, 3, 4但是当我list: .word 0x12345678收到错误“获取地址未在字边界上对齐”时。这是我的代码:

我不确定为什么我无法访问列表的特定索引。我的最终目标是像上面一样采用十六进制并输出它的二进制表示。如果您能帮我弄清楚如何访问 lis 的特定索引,那将不胜感激。谢谢你。

编辑:

0 投票
1 回答
161 浏览

arrays - MIPS 汇编程序不执行行

我目前正在使用 MIPS 程序集。我最近学会了如何处理宏和数组(某种),所以我立即编写了一个相当简单的程序来测试它们。但是,在获取数据和再次显示之间,我希望输出一条新消息。出于某种原因,我的程序似乎没有这样做,即使在逐步运行它时它确实,事实上,通过这些行 - 它只是没有任何输出。MIPS 汇编中是否有任何特殊原因导致它不起作用,或者它是 MARS 汇编器中的一个小故障?