你沒有給我們提供了很多的信息去,所以我會假設你的文件看起來是這樣的:
1234 523 54326 7131
(可以線分隔,這個概念是一樣的)
將數字讀入字符串後,必須將其解析爲整數。然後將其存儲在整數數組中。你的陣列應該是這個樣子:
.align 2 # word-aligned
array: .space 40 # a word array of 10 elements
爲了解析字符串爲整數,你可以手推車從C,它具有的atoi(),它看起來是這樣的概念:
#
# int atoi (const char *str);
#
# Parse the cstring str into an integral value
#
atoi:
or $v0, $zero, $zero # num = 0
or $t1, $zero, $zero # isNegative = false
lb $t0, 0($a0)
bne $t0, '+', .isp # consume a positive symbol
addi $a0, $a0, 1
.isp:
lb $t0, 0($a0)
bne $t0, '-', .num
addi $t1, $zero, 1 # isNegative = true
addi $a0, $a0, 1
.num:
lb $t0, 0($a0)
slti $t2, $t0, 58 # *str <= '9'
slti $t3, $t0, '0' # *str < '0'
beq $t2, $zero, .done
bne $t3, $zero, .done
sll $t2, $v0, 1
sll $v0, $v0, 3
add $v0, $v0, $t2 # num *= 10, using: num = (num << 3) + (num << 1)
addi $t0, $t0, -48
add $v0, $v0, $t0 # num += (*str - '0')
addi $a0, $a0, 1 # ++num
j .num
.done:
beq $t1, $zero, .out # if (isNegative) num = -num
sub $v0, $zero, $v0
.out:
jr $ra # return
(只就像C atoi()函數一樣,它沒有錯誤檢查機制,你可能想補充一下)。
從文件解析每個單獨的數字(通過傳遞給atoi())並將其作爲整數存儲在數組中。
非常感謝幫助! :) – Amjad 2012-04-13 10:51:02