问题如下所述。我想我有点工作的解决方案。但是,我并没有真正利用标签(数组)来存储我的整数。我的程序当前存储0的第一个整数为1000000(内存地址),但我不确定它是否正确。有什么方法可以将我的整数存储在"数组"?请注意,我不能使用诸如la之类的伪指令。
问题:
编写一个程序,在.data部分的前四个字节中存储数字0,然后将数字1存储在接下来的四个字节中,然后将数字2存储在之后的四个字节中,依此类推。对数字0到24执行此操作。
当然你会在计数循环中这样做。数据部分中的地址包含在基址寄存器中。每次存储号码时递增基址寄存器。
程序的数据部分应该是
.data array: .space 100
我的解决方案:
.text
.globl main
main:
ori $8, $0, 0 # counter
ori $9, $0, 25 # counter bound
lui $10, 0x1000 # initialize memory address
loop:
beq $8, $9, exit # exit if counter = 25
sll $0, $0, 0
sw $8, 0($10) # store integer
sll $0, $0, 0
addiu $8, $8, 1 # increment counter
addiu $10, $10, 4 # increment memory address
j loop # while loop
sll $0, $0, 0
exit:
sll $0, $0, 0
.data
array: .space 100 # reserve 100 bytes. each integer is 4 bytes. to reserve 25 integers