Derniers messages sur Zeste de Savoirhttps://zestedesavoir.com/forums/2014-09-09T21:48:04+02:00Les derniers messages parus sur le forum de Zeste de Savoir.MIPS : bug avec l'option -notrap, message #211232014-09-09T21:48:04+02:00basox/@basoxhttps://zestedesavoir.com/forums/sujet/1240/mips-bug-avec-loption-notrap/?page=1#p21123<p>Édit : il fallait utiliser <code>.globl __start</code></p>
<p>Salut,</p>
<p>je commence à apprendre le MIPS, un langage assembleur et je suis confronté à un bug que je ne comprends pas. Voilà mon code de test : </p>
<table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2
3
4
5
6
7</pre></div></td><td class="code"><div class="codehilite"><pre><span class="nl">main:</span>
<span class="nf">li</span> <span class="kc">$</span><span class="nv">a1</span><span class="p">,</span> <span class="mi">1</span>
<span class="nf">li</span> <span class="kc">$</span><span class="nv">a2</span><span class="p">,</span> <span class="mi">1</span>
<span class="nf">slt</span> <span class="kc">$</span><span class="nv">a0</span><span class="p">,</span> <span class="kc">$</span><span class="nv">a1</span><span class="p">,</span> <span class="kc">$</span><span class="nv">a2</span>
<span class="nf">li</span> <span class="kc">$</span><span class="nv">v0</span><span class="p">,</span> <span class="mi">1</span>
<span class="nf">syscall</span>
<span class="nf">jr</span> <span class="kc">$</span><span class="nv">ra</span>
</pre></div>
</td></tr></table>
<p>quand je compile ça avec <code>spim -file test.spi</code>, il m'affiche bien <code>0</code>.</p>
<p>Par contre, si je veux utiliser l'option <code>notrap</code> de spim pour gérer moi-même le label <code>__start</code>, j'ai une erreur. Voilà le code :</p>
<table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre> 1
2
3
4
5
6
7
8
9
10
11
12</pre></div></td><td class="code"><div class="codehilite"><pre><span class="nl">main:</span>
<span class="nf">li</span> <span class="kc">$</span><span class="nv">a1</span><span class="p">,</span> <span class="mi">1</span>
<span class="nf">li</span> <span class="kc">$</span><span class="nv">a2</span><span class="p">,</span> <span class="mi">1</span>
<span class="nf">slt</span> <span class="kc">$</span><span class="nv">a0</span><span class="p">,</span> <span class="kc">$</span><span class="nv">a1</span><span class="p">,</span> <span class="kc">$</span><span class="nv">a2</span>
<span class="nf">li</span> <span class="kc">$</span><span class="nv">v0</span><span class="p">,</span> <span class="mi">1</span>
<span class="nf">syscall</span>
<span class="nf">jr</span> <span class="kc">$</span><span class="nv">ra</span>
<span class="nl">__start:</span>
<span class="nf">jal</span> <span class="nv">main</span>
<span class="nf">li</span> <span class="kc">$</span><span class="nv">v0</span><span class="p">,</span> <span class="mi">10</span>
<span class="nf">syscall</span>
</pre></div>
</td></tr></table>
<p>et voici ce que me répond <code>spim -notrap -file test.spi</code> : </p>
<table class="codehilitetable"><tr><td class="linenos"><div class="linenodiv"><pre>1
2
3</pre></div></td><td class="code"><div class="codehilite"><pre>Exception occurred at PC=0x00000000
Bad address in text read: 0x00000000
Attempt to execute non-instruction at 0x80000180
</pre></div>
</td></tr></table>
<p>J'ai loupé quelque chose ?</p>