2011-11-02 4 views
1

Cela fait partie d'un programme sur lequel j'ai travaillé et qui rencontre des difficultés pour écrire cette partie de la fonction de recherche. Voici le code en C mais j'ai du mal à le convertir en MIPS. Toute aide serait appréciée.Conversion du code C en MIPS

Pseudo codes: 
    $a0 = 0  # index into symTab array 
compare: 
    if ($a0 >= symAV($0)) 
    goto not_found 
    if (TOKEN[0] <> symTab[$a0]) 
    goto nextSym 
if (TOKEN[1] <> symTab+4[$a0]) 
    goto nextSym 
    return  # found the symbol 
nextSym: 
$t0++  # should be incremented by 16 in MIPS 
goto compare 

not_found: 
$a0 = -1 
return 
+0

Dans quelle partie rencontrez-vous des problèmes? Qu'avez-vous fait jusqu'à présent? –

+2

vous cherchez un compilateur C pour MIPS? –

+0

Je suis novice en programmation MIPS et je ne sais toujours pas ce que signifient tous les registres. Je ne sais pas comment passer à travers ligne et l'écrire dans MIPS. – ellio20

Répondre

3

Procurez-vous un compilateur capable de générer une sortie MIPS, tels que gcc puis compiler votre code avec l'option « produire une sortie de montage ». gcc -S peut le faire pour vous. Ensuite, prenez ce code et examinez/utilisez-le. Si vous voulez comprendre il, vous pouvez vous assurer que l'optimisation est à un niveau bas (comme avec -O0). Sinon, il y a de fortes chances que vous ne puissiez pas comprendre ce que le compilateur génère.