MIPS: ошибка адреса вне диапазона - PullRequest
0 голосов
/ 02 февраля 2012

Я пытаюсь включить этот код C:

    if (op == '+') {
      acc += val;
    }

в MIPS, и я не могу понять, что является причиной ошибки адреса вне диапазона

#reads user input for the op
li $v0, 12      # system call number for operator
syscall         # reads the integer
sw $v0, op      # stores the user input in op


lw $t0, op      # stores op in $t0
lbu $t1, '+'        # stores '+' in $t1

# "if" statement
bne $t0, $t1, Else  # branches if op is not equal to +
lw $t2, acc     # stores acc in $t2
lw $t3, val     # stores val in $t3

add $t2, $t2, $t3   # adds $t2 and $t3 and stores the sum in $t2

Любая помощь будет оценена.

1 Ответ

3 голосов
/ 02 февраля 2012
lbu $t1, '+'

'+' не является действительным адресом.Вы, вероятно, имели в виду

li $t1, '+'

В любом случае помните, что любой приличный компилятор C преобразует C в MIPS для вас.

...