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
Arrays 如何跳回分支语句?_Arrays_Assembly_Return_Mips_Mars Simulator - Fatal编程技术网

Arrays 如何跳回分支语句?

Arrays 如何跳回分支语句?,arrays,assembly,return,mips,mars-simulator,Arrays,Assembly,Return,Mips,Mars Simulator,我在试图找出如何在Mips/Mars体系结构中实现这一点时遇到了很多困难 我正在制作一个战舰游戏,并将棋盘存储为一个可以容纳100整数的阵列 我需要在播放器的数组中循环,并将存储在每个“单元”中的信息转换为图形数据,以便向用户显示棋盘 我的问题源于这样一个事实,即显示给用户的字符是基于数组中每个单元格中的值 如果值为0(空)-打印“[]”,如果1(猜测并为空)打印-“[O]”,如果2(猜测并命中)打印-“[X]” 因此,当我循环遍历数组中的每个单元格时,我需要检查值并分支到适当的打印函数 我的问

我在试图找出如何在Mips/Mars体系结构中实现这一点时遇到了很多困难

我正在制作一个战舰游戏,并将棋盘存储为一个可以容纳100整数的阵列

我需要在播放器的数组中循环,并将存储在每个“单元”中的信息转换为图形数据,以便向用户显示棋盘

我的问题源于这样一个事实,即显示给用户的字符是基于数组中每个单元格中的值

如果值为0(空)-打印“[]”,如果1(猜测并为空)打印-“[O]”,如果2(猜测并命中)打印-“[X]”

因此,当我循环遍历数组中的每个单元格时,我需要检查值并分支到适当的打印函数

我的问题是,如果我分支到print语句,如何跳回分支语句所在的位置

伪代码:

Looping through array, 'ArrayCell' = value at current array location
branch if equal ArrayCell, 0, print empty
branch if equal ArrayCell, 1, print miss
branch if equal ArrayCell, 2, print hit
increment array

print empty:
print then jump back to loop
print miss:
print then jump back to loop
print hit:
print then jump back to loop
如何在打印后跳回分支语句以保留在数组中的位置


非常感谢

增量数组
操作符上方放置一个标签,并在
打印空
打印未命中
、和
打印命中
j
的末尾将其粘贴到标签上

例如:

   Looping through array, 'ArrayCell' = value at current array location
    branch if equal ArrayCell, 0, print empty
    branch if equal ArrayCell, 1, print miss
    branch if equal ArrayCell, 2, print hit

   LBL_Increment:
    increment array

   loop


    print empty:
    print
    j LBL_Increment
    print miss:
    print
    j LBL_Increment
    print hit:
    print
    j LBL_Increment

增量数组
操作符上方放置一个标签,并在
打印空
打印未命中
打印命中
j
的末尾将标签粘贴到标签上

例如:

   Looping through array, 'ArrayCell' = value at current array location
    branch if equal ArrayCell, 0, print empty
    branch if equal ArrayCell, 1, print miss
    branch if equal ArrayCell, 2, print hit

   LBL_Increment:
    increment array

   loop


    print empty:
    print
    j LBL_Increment
    print miss:
    print
    j LBL_Increment
    print hit:
    print
    j LBL_Increment

你真的应该用这个

   Looping through array, 'ArrayCell' = value at current array location
    if equal ArrayCell, 0, JAL empty
    if equal ArrayCell, 1, JAL miss
    if equal ArrayCell, 2, JAL hit

   LBL_Increment:
    increment array

   loop


   empty:
    print " "
    JR $RA    // return to the instruction after the "JAL empty" instruction.
   miss:
    print "miss"
    JR $RA
   hit:
    print "hit"
    JR $RA

你真的应该用这个

   Looping through array, 'ArrayCell' = value at current array location
    if equal ArrayCell, 0, JAL empty
    if equal ArrayCell, 1, JAL miss
    if equal ArrayCell, 2, JAL hit

   LBL_Increment:
    increment array

   loop


   empty:
    print " "
    JR $RA    // return to the instruction after the "JAL empty" instruction.
   miss:
    print "miss"
    JR $RA
   hit:
    print "hit"
    JR $RA

请格式化你的代码。请格式化你的代码。这很有意义。对不起,我对这个很陌生,想把头发扯下来。谢谢!我试试看,这很有道理。对不起,我对这个很陌生,想把头发扯下来。谢谢!我试试看。这是正确的答案。另一个可能会引导你找到所谓的意大利面密码。这是正确的答案。另一个可能会引导你找到所谓的意大利面代码。