les fonctions (méthodes) en MIPS
Je suis nouveau dans MIPS langue, et je ne comprends pas comment les fonctions (méthodes) dans le MIPS de l'assemblée de la langue de travail. Voici, mais je vais préciser mon problème :
-
Ce n':
jal
jr
$ra
dire en mips langue et la chose la plus importante
- Comment pouvons-nous les utiliser lorsque l'on veut créer une fonction ou une procédure)?
Est-ce un problème? L'article de wikipedia (en.wikipedia.org/wiki/MIPS_architecture#MIPS_assembly_language )explique la "jal" et "jr" instructions, peut-être que cela répond à votre question.
OriginalL'auteur Sneimeh | 2010-11-17
Vous devez vous connecter pour publier un commentaire.
Tout d'abord, vous pourriez vouloir vérifier cette rapide MIPS de référence. Il m'a vraiment aidé.
D'autre part, à expliquer
jal
,jr
et$ra
. Cejal <label>
n'est le saut à lalabel
de l'étiquette et de stocker les compteur de programme (pensez à l'adresse de l'instruction en cours) dans le$ra
registre. Maintenant, quand vous voulez le retour delabel
à l'endroit où vous avez initialement été, il vous suffit d'utiliserjr $ra
.Voici un exemple:
Vous remarquerez lors de l'exécution de cette dans un SPIM émulateur que la valeur de gauche dans
$t0
est 3, celui chargé dans le soi-disant procédure.Espère que cette aide.
OriginalL'auteur Mihai Scurtu
1.les deux premiers sont des instructions,le troisième c'est une sorte de registre spécial
nous utilisons souvent l'instruction comme ça ...
cela signifie que le retour(aller) à l'adresse enregistrée dans $ra .
2.
Voici un exemple de fonction (procédure) dans C
fonction en MIPS
OriginalL'auteur pohchen
Vous aurez envie de lire la Système V-Application Binary Interface, MIPS Processeur RISC Supplément. Il décrit les conventions utilisées pour les appels de fonctions, en particulier la façon dont la pile est géré et les paramètres sont échangées (il n'y a pas de matériel de pile en MIPS, tout est une question de logiciel de conventions, et l'ABI définit ces conventions).
Le document ci-dessus suppose une certaine connaissance de base de ce MIPS instructions, de sorte que vous aurez besoin également de la Couches isa du mips32 Architecture pour les Programmeurs, en particulier le volume II (jeu d'instructions), qui décrit le détail de l'effet de chaque instruction. Mais, ne vous une faveur, de télécharger et de lire le volume I (introduction).
La
jal
instruction est la "sauter et lien" opcode. Il sauts à l'adresse cible (qui est l'adresse de la première opcode de l'appel de la procédure) lors de l'enregistrement du pointeur d'instruction en cours dans le lien s'inscrire, qui est de s'inscrire 31 (pour être précis, il enregistre dans le registre 31 la valeur x+8, où x est l'adresse de lajal
opcode lui-même).OriginalL'auteur Thomas Pornin