问题标签 [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.
mips - MIPS:读取没有回声的字符
我正在使用火星。是否可以在没有回显的情况下从控制台读取字符?就像int 21h / 08h
在 DOS 中一样。或者有没有办法破解它?
random - 在 MIPS 中使用随机数生成器?
所以我在这个网站上阅读了一些主题,我找到了一个关于如何制作的主题。但我真的找不到一个链接来解释更多关于如何编码的链接。我的课程教科书没有提供任何内容根本没有关于RNG的信息,所以那里没有帮助。
代码是
这对于要求 1-3 之间的范围是否正确?我尝试输出它是什么随机数,但它不断给我相同的数字。
我看到了,sw $a0, 0($s0)
但我不确定那是什么——它需要输出吗?(我把它拿出来是因为在我按下一个键进入 RNG 后,它说程序崩溃了)我不断得到 268501267 的输出,我不确定这意味着什么编辑:现在它开始一直给我 268500992
任何人都可以帮助更深入地解释这一点吗?
从逻辑上讲-我了解 42 的来源以及为什么需要添加 +1(这样我就不会得到 0 的值)
从那里开始,我不知道为什么代码不会输出我给出的范围内的数字。
assembly - MIPS 没有运行(代码从底部掉下来,无限循环?)
我有一个我正在努力解决的项目,但我无法弄清楚我的代码中的错误(顺便说一句,我对 MIPS 相当陌生)。给定一个函数 F = (A B) xor (C D),我必须将完整的真值表计算为 a 并计算 F 的标准真值表中一个值(最小项)的数量。输出应显示在显示控制台。这是我的代码:
我不断收到的错误是:
00002685009922685009922685009920000268500992268500992268500992000026850099226850099226850099200002685009922685009922685009920000268500992268500992268500992000026850099226850099226850099200002685009922685009922685009920000268500992268500992268500992111126850099226850099226850099211112685009922685009922685009921111268500992268500992268500992111126850099226850099226850099211112685009922685009922685009921111268500992268500992268500992111126850099226850099226850099211112685009922685009922685009922685009946 -- program is finished running (dropped off bottom) --
任何见解都会非常感谢!谢谢!!
mips - 'jalr $a0, $a0' 的正确行为是什么?
我遇到了指令jalr $t1, $t2
指令,它应该将 $t1 设置为返回地址并跳转到 $t2。然而,关于哪个操作首先发生似乎有些模糊。例如,以下在 MARS 和 SPIM 中的工作方式不同:
在 MARS 中,$t0
首先设置为pc + 4
(返回地址),然后跳转到$t0
,这样下面的代码func
就永远不会运行。然而,SPIM 似乎做了相反的事情:先跳转,然后将 value 设置$t0
为 (the previous) pc + 4
;因此func
被调用并照常运行。
因此,我的问题是,在这种情况下哪个模拟器实现了正确的行为?
assembly - 在 MIPS、汇编 MARS 中将二进制转换为十进制
我正在尝试使用 MARS 模拟器将 MIPS 语言中的二进制转换为十进制。程序接受一个二进制数,然后通过乘法进行转换(左移数字的位置 $t9)。另一种说法是将每个 1 位数字乘以 2 乘以该位的幂,然后将结果相加。
我对值如何在 ascii、十进制之间存储和通信并没有很好的理解,问题是“总和”是 40,000,而不是十进制二进制数的值。我在这里做错了什么?
assembly - Mips 双除法返回 Infinity
我将我的问题浓缩为以下代码:
输出是:
这是为什么?我希望0.25/16
是 ~0.015625
而不是Infinity
.
$f12 的第一个值:0x3fd0000000000000 $f12 的第二个值:0x7ff0000000000000
我对 MIPS 比较陌生,所以它可能很容易。感谢您的任何回答!
performance - MIPS 系统时间
如何使用 MIPS 指令集获取当前系统时间?我想对一些程序进行基准测试,并希望找到它们完成所需的毫秒或纳秒时间。
我知道我可以在 C 中运行汇编代码并使用 C 时间库对其进行计时,但是,我想单独使用 MIPS 汇编。
assembly - 如何在 MIPS 的同一行中打印一个字符串和另一个字符串变量?
目前我得到的输出为
dsajnd
不是回文
我希望它输出使得(例如dsajnd)和“不是回文”在同一行。
dsajnd 不是回文
我打印的代码是
assembly - 如何在 MIPS 汇编编程中打印数字的前几位?
我是 MIPS Assembly 编程的初学者,我想知道在读入数字后如何打印数字的第一个数字。
例如,如果我输入 590,我只想打印“5”。另外我将如何分别打印接下来的两个数字?
使用上面的代码,它只打印我输入的整数:590 我试过 lb,而不是 lw,但它打印 '78',我猜这个数字是十六进制或其他基数。
提前致谢
assembly - MIPS 鼓音序器在 MARS 环境中立即结束
我正在尝试在存储在内存中的 MIPS 中创建一个鼓音序器,使用指令“.word”、0 和 1 值。1 表示需要播放 4/4 小节循环的 1/16。因此,寄存器 $t8 将寻址内存中的 16 个字,程序将控制声音是否必须播放 (1) 或睡眠 (0)。$t7 是一个计数器,用于验证循环何时结束并且必须重新启动序列。问题是,当我组装程序(并且 MARS 做得很好)并运行它时,在执行一个步骤后,我收到以下消息:“--程序已完成运行(从底部掉下)--”好的......但是为什么 ?!
这是源代码: