2016-02-20 5 views
0

Только начал изучать MIPS, кто-то может объяснить подробно в этом простом коде: Вот код:MIPS, регистры, начинающий

main: 

    li $v0, 5 
    syscall 
    move $t0, $v0 

    li $v0, 5 
    syscall 
    move $t1, $v0 

    add $t2, $t0, $t1 

    move $a0, $t2 
    li $v0, 1 
    syscall 
exit: 
    li $v0, 10 
    syscall 

Это то, что я понимаю: li $v0 5 syscall -средние немедленно загрузить целое число, (в $v0? Я думаю). Затем я получаю остальное перемещение, добавив ...

Когда я начинаю понимать, когда линия: li $v0, 1 syscall - подходит. Это должно означать печать целого числа (от $v0?). Как это известно для печати $a0 или $t2. Как это работает?

Как в этом примере:

la $a0, str1 
li $v0, 4 
syscall 

Это будет печатать строку из $a0. Почему другая строка не напечатана, а конкретно эта? Есть правило, что последняя строка упоминается напечатанный

+0

См https://www.doc.ic.ac.uk/ лаборатория/secondyear/SPIM/node8.html – Michael

ответ

0

Это только часть SYSCALL имеющихся услуг (в данном случае.): http://courses.missouristate.edu/KenVollmar/mars/Help/SyscallHelp.html

main: 

li $v0, 5 #read integer 
syscall 
move $t0, $v0 #t0 is the integer you intend to read 

li $v0, 5#same as above 
syscall 
move $t1, $v0 

add $t2, $t0, $t1 #add two integers and store it in t2 

move $a0, $t2 # move sum to integer to print 
li $v0, 1 #integer to print 
syscall 
exit: 
li $v0, 10 # terminate execution 
syscall 
Смежные вопросы