MIPS: сохранить целочисленные данные в массив из файла - PullRequest
2 голосов
/ 11 марта 2012

Я пишу этот код для проблемы, где я должен прочитать целые числа из файла и сохранить их в массив для выполнения других операций. До сих пор я мог читать из файла и сохранять их в буфере.

#### Read Data from File
li $v0, 14              # system call for read from file
move $a0, $s6     
la $a1, buffer          # address of buffer from which to read
li $a2, 1000            # hardcoded buffer length
syscall                 # read from file

Когда я делаю это: он успешно отображает содержимое файла в виде целых чисел в отдельных строках.

li $v0, 4           # syscall for printing a string
la $a0, buffer          # load read data in $a0
syscall

Я застрял в этой точке, где я должен хранить эти целые числа в буфере в массиве. Как это сделать?

1 Ответ

4 голосов
/ 13 марта 2012

Вы не дали нам много информации для продолжения, поэтому я буду предполагать, что ваш файл выглядит примерно так:

1234 523 54326 7131

(Он может быть разделен строкой, концепция та же самая)

Как только вы прочитаете число в строку, вы должны разобрать его в целое число.А затем сохраните его в целочисленном массиве.Ваш массив должен выглядеть примерно так:

        .align 2    # word-aligned
array:  .space 40    # a word array of 10 elements

Чтобы разобрать строку в целое число, вы можете вычеркнуть концепт из C, который имеет atoi (), который выглядит примерно так:1011 * (Так же, как функция C atoi (), в ней нет механизма проверки ошибок, вы можете добавить это).

Парсировать каждый отдельный номер из файла (передавая его в atoi ())и сохранить его в массиве как целое число.

...