Édit : il fallait utiliser .globl __start
Salut,
je commence à apprendre le MIPS, un langage assembleur et je suis confronté à un bug que je ne comprends pas. Voilà mon code de test :
1 2 3 4 5 6 7 | main: li $a1, 1 li $a2, 1 slt $a0, $a1, $a2 li $v0, 1 syscall jr $ra |
quand je compile ça avec spim -file test.spi
, il m'affiche bien 0
.
Par contre, si je veux utiliser l'option notrap
de spim pour gérer moi-même le label __start
, j'ai une erreur. Voilà le code :
1 2 3 4 5 6 7 8 9 10 11 12 | main: li $a1, 1 li $a2, 1 slt $a0, $a1, $a2 li $v0, 1 syscall jr $ra __start: jal main li $v0, 10 syscall |
et voici ce que me répond spim -notrap -file test.spi
:
1 2 3 | Exception occurred at PC=0x00000000 Bad address in text read: 0x00000000 Attempt to execute non-instruction at 0x80000180 |
J'ai loupé quelque chose ?
+0
-0