我正在学习 MIPS 作为一种爱好并使用 QtSPIM 模拟器。这是我的第一个程序
我在书中的问题:
- 编写一个程序,将 100 个字从内存中的位置复制
'SRC'
到内存中指定的另一个位置'DEST'
。
顺便说一句,我知道运行循环 100 次可能是错误的。我还没有计算那部分。
我只想知道我的程序是否从其中复制这些位src
并将它们放入 dest。
它至少能做到这一点吗?
请不要透露完整的解决方案,只是给我一些提示等。
这是我的尝试(我的第一次编程!):
.data
src: .space 400
dest: .space 400
.text
main:
la $t6, src # t6 = pointer for src
la $t7, dest # t7 = pointer for dest
li $t0, 100 # t0 = initialise countdown
loop:
lw $t1, ($t6) # load 32 bits from src
sw $t2, ($t7) # store bits from src to dest
addi $t6, $t6, 4 # add 4 to pointer to get next 32 bits of src
addi $t7, $t7, 4 # add 4 to pointer to get next 32 bits of dest
addi $t0, $t0, -1 # countdown minus 1
bgt $t0, $zero, loop # loop if countdown > 0
jr $ra # end