Assembly 设置输入变量
问题问: 编写一段MIPS代码,给定$s0和$s1中的值,将其放入 $t*注册了以下内容:Assembly 设置输入变量,assembly,mips,mars-simulator,Assembly,Mips,Mars Simulator,问题问: 编写一段MIPS代码,给定$s0和$s1中的值,将其放入 $t*注册了以下内容: $t0 = $s0 $t1 = $s1 $t2 = $t0 + $t1 $t3 = $t1 + $t2 ... $t7 = $t5 + $t6 换句话说,对于从$t2到$t7的每个寄存器,它存储前两个$t*寄存器值的总和。$s0和$s1寄存器包含初始值。不要在代码中设置$s0和$s1的值。相反,学习如何使用MARS手动设置。将代码保存到sum.s中 好吧,这并不难: move $t0 $s0 move
$t0 = $s0
$t1 = $s1
$t2 = $t0 + $t1
$t3 = $t1 + $t2
...
$t7 = $t5 + $t6
换句话说,对于从$t2到$t7的每个寄存器,它存储前两个$t*寄存器值的总和。$s0和$s1寄存器包含初始值。不要在代码中设置$s0和$s1的值。相反,学习如何使用MARS手动设置。将代码保存到sum.s中
好吧,这并不难:
move $t0 $s0
move $t1, $s1
add $t2, $t0, $t1
add $t3, $t1, $t2
。。。等等
但最后一部分是什么意思?“不要在代码中设置$s0和$s1的值。相反,请学习如何使用MARS手动设置。将代码保存到sum.s中。”?这意味着您不应包括以下输入设置操作:
move $s0, 0xBAAD
move $s1, 0xBEEF
(如果语法错误,请原谅)
相反,您应该配置您的MARS IDE,以便它能够在运行汇编脚本进行调试或测试之前,动态地自动设置所有输入参数。当然,您必须指定这些自动设置参数的值,但重点是向您展示,您可以轻松地(?)(重新)配置测试输入,而不是硬编码它们
我曾短暂浏览过该网站,但找不到任何注释。它应该在IDE的文档或帮助系统中的某个地方进行描述(如果有的话)
编辑:
好吧,也许我找到了
引述自:
任何数据段存储字和几乎任何MIPS寄存器的内容都可以通过编辑其显示的表格单元格进行修改。双击单元格进行编辑,输入完新值后按Enter键。如果输入的32位整数无效,则单元格中会出现“无效”一词,并且内存/寄存器内容不受影响。可以以十进制或十六进制(前导“0x”)输入值。负十六进制值可以以两位补码或带符号的格式输入。请注意,三个整数寄存器(零、程序计数器、返回地址)无法编辑
因此,例如,您可以在代码的第一条指令处设置断点,运行程序,当它到达断点时,编辑寄存器并将输入值输入$s0/$s1,而不是硬编码值。我希望它比那好一点,但我找不到其他东西了
在这个IDE中也有,所以你也许可以创建一些小脚本,将两个数字放入这两个寄存器,或者甚至可能已经有这样的宏-我不知道-请自己挖掘,我甚至没有这个软件在我的董事会:)