1

我正在学习 MIPS 作为一种爱好并使用 QtSPIM 模拟器。这是我的第一个程序

我在书中的问题:

  1. 编写一个程序,将 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
4

1 回答 1

0

您的程序只需从 to 加载一个值,然后从SRCto存储一些随机值,因此需要进行一些更改。您之前尝试过任何调试吗?$t1$t2DEST

lw $t1, ($t6)      # load 32 bits from src
sw $t2, ($t7)      # store bits from src to dest

并且无需循环 100 次。你可以做一些循环展开

于 2013-09-19T05:00:41.257 回答