Projet C - FAQ Simulateur MIPS

De Ensiwiki
Révision de 25 mai 2016 à 18:23 par Duma1 (discussion | contributions) (Documents)

Aller à : navigation, rechercher

Cette page tente de rassembler les questions les plus fréquentes pour le sujet « Simulateur MIPS ». Vous pouvez ajouter vos questions en bas de la page, et éventuellement répondre aux questions de vos collègues, tant que vous le faites en respectant les règles du jeu : ne donnez pas de solutions explicites au sujet, n'échangez pas de code, et en cas de doutes, demandez à vos enseignants !

Encadrants

Voici la liste des encadrants pour le sujet MIPS, auxquels vous pourrez poser vos questions pendant les séances encadrées (permanence E101) :

  • Florent Bouchez-Tichadou
  • Matthieu Chabanas
  • Thomas Dias Alves
  • Julie Dumas
  • Nicolas Kox
  • Duco Van-Amstel

Les séances encadrées auront lieu le vendredi 27 mai matin et du lundi 30 mai matin au mercredi 8 juin matin .

Soutenances

Les soutenances auront lieu le jeudi 9 et le vendredi 10 juin.

Ressources

Fichiers Fournis

Documents

Liens sur quelques documents de référence (cités dans la bibliographie du projet).

FAQ

Utilisation des programmes mips-elf*

Nous utilisons les mêmes binutils pour mips que le cours de CEP. Penser à vérifier que vous avez bien ajouté export PATH=$PATH:/opt/mips-tools-cep/bin dans votre ~/.bashrc.

Cas de l'instruction DIV

mips-elf-as définit en fait une macro qui vérifie que le dénominateur est non nul avant de diviser et génère du coup cette instruction en une dizaine d'instructions!

Exemple:

avant_div:
DIV $4, $4
apres_div:

est assemblé comme:

Disassembly of section .text:

00000000 <avant_div>:
   0:   14800002        bnez    a0,c <avant_div+0xc>
   4:   0084001a        div     zero,a0,a0
   8:   0007000d        break   0x7
   c:   2401ffff        li      at,-1
  10:   14810004        bne     a0,at,24 <avant_div+0x24>
  14:   3c018000        lui     at,0x8000
  18:   14810002        bne     a0,at,24 <avant_div+0x24>
  1c:   00000000        nop
  20:   0006000d        break   0x6
  24:   00002012        mflo    a0
  • Pour éviter que mips-elf-as ne génère cette macro, vous pouvez utiliser une syntaxe alternative: DIV $0, $4, $4. L'instruction DIV est alors simplement codée, conformément à la doc.