2013-11-24 2 views
0

Я пытаюсь создать программу, которая вычисляет следующее математическое уравнение: A = B + C. B должен храниться в памяти, а C - в регистре.Первая программа MIPS

До сих пор я сделал следующее, но он не работает:

.set noreorder 
.data 
    b: .word 20 
    c: .word 10 
.text 
.globl main 
.ent main 

main: 
    la $t0, b 
    lw $a0, 0($t0) 
    la $t1, c 
    lw $a1, 0($t1) 
    add $t9, $a0, $a1 
.end main 

Любая помощь очень ценится. Благодарю.

+0

Как «не работает»? Какое сообщение об ошибке или неожиданные результаты вы получаете? – HBP

+0

Я получаю «ОШИБКА: Незаконные операнды« ла ». Не знаю, что я делаю неправильно. – Chris

+0

Звучит как «la» мнемоника не распознается. Какой ассемблер? – HBP

ответ

0

Try:

.set noreorder 
.data 
    B: .word 20 
    C: .word 10 
.text 
.globl main 
.ent main 

main: 
    la $t0, B 
    lw $a0, 0($t0) 
    la $t1, C 
    lw $a1, 0($t1) 
    add $t9, $a0, $a1 
.end main 

Я изменил свой код, чтобы использовать прописные этикетки. Это связано с тем, что когда я запускал ваш код в симуляторе spim, я получил эту ошибку: spim: (parser) Cannot use opcodes as labels on line 7 of file test.s.

b - это фактически название инструкции, поэтому изменение названий ярлыков фиксировало код для меня.

Смежные вопросы