每当以 mips 按下 w 时,我如何将元素 80 在数组中向上移动

问题描述 投票:0回答:0

下面是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
assembly mips mars-simulator mips64
© www.soinside.com 2019 - 2024. All rights reserved.