下面是mips中的数组
网格:.byte
26 25,22,22,22,22,22,22,22,22,10
25,22,22,22,42,22,22,22,22,25,10
25,22,22,22,22,22,22,22,22,25,10
25,22,22,22,22,22,22,22,22,25,10
25,22,24,24,80,42,24,24,24,24,24
24,32,32,32,32,32,32,43,34,34,34
23,32,21,23,13,32,34,23,42,32,32
25,23,23,23,23,23,23,23,23,23,23
在mips键盘和mmio模拟器中显示数组。当按下 w 时,我需要元素 80 在显示屏中向上移动。为此,我创建了一个键盘轮询功能来检查是否按下了键盘输入,如果按下 w,它会跳转到一个名为 move_up 的函数 我在其中添加了一个代码来清除当前显示,以便它可以显示新的更新数组,但之后我无法弄清楚如何移动它。我尝试找到字节偏移量(48)并从中减去 11 并将其旧位置替换为空格以使其在数组中向上移动但它不起作用。
上移:
addi $s1,$s1,-11 # sub 11 from element 80 byte offset
add $s2,$s2,$s1 # adding to temp register
sb $s2,($t1) # storing it in array
li $s3,32
sb $s3,48($t1) # storing emtpy space in preivous location
li $s4,12 # loads ascii for changing display
sb $s4($t0) # changes the display