Changes between Version 21 and Version 22 of Doc-MIPS-Archi-Asm-kernel


Ignore:
Timestamp:
Sep 21, 2020, 6:27:05 AM (5 years ago)
Author:
franck
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Doc-MIPS-Archi-Asm-kernel

    v21 v22  
    7676
    7777
    78 L'architecture du MIPS32 définit 32 registres protégés (numérotés de $0 à $31). Ces registres protégés ne sont accessibles, en lecture comme en écriture, que par les instructions privilégiées `mtc0` et `mfc0` ne pouvant être exécutées qu'en mode ''kernel''. `mtc0` et `mfc0` signifient respectivement ''Move-To-Coprocessor-0'' et ''Move-From-Coprocessor-0''. En effet, ces registres appartiennent au "coprocesseur système" n°0 (appélé aussi `c0` pour ''Coprocessor 0''). En pratique, cette version du processeur MIPS32 en définit 6. Ils sont utilisés par le système d’exploitation pour la gestion des interruptions, des exceptions et des appels système  (voir chapitre E).
     78L'architecture du MIPS32 définit 32 registres protégés (numérotés de `$0` à `$31`). Ces registres protégés ne sont accessibles, en lecture comme en écriture, que par les instructions privilégiées `mtc0` et `mfc0` ne pouvant être exécutées qu'en mode ''kernel''. `mtc0` et `mfc0` signifient respectivement ''Move-To-Coprocessor-0'' et ''Move-From-Coprocessor-0''. En effet, ces registres appartiennent au "coprocesseur système" n°0 (appélé aussi `c0` pour ''Coprocessor 0''). En pratique, cette version du processeur MIPS32 en définit 6. Ils sont utilisés par le système d’exploitation pour la gestion des interruptions, des exceptions et des appels système  (voir chapitre E).
    7979
    8080 Le registre `c0_sr`::
     
    553553L’opérande immédiat 16 bits est signé pour les opérations arithmétiques et non signé pour les opérations logiques.
    554554
    555 Le déplacement est de 16 bits pour les instructions de branchement conditionnelles (Bxxx) et de 26 bits pour les instructions de saut inconditionnelles (Jxxx). De plus les instructions JAL, JALR, BGEZAL, et BLTZAL sauvegardent une adresse de retour dans le registre $31. Ces instructions sont utilisées pour les appels de sous-programme.
     555Le déplacement est de 16 bits pour les instructions de branchement conditionnelles (Bxxx) et de 26 bits pour les instructions de saut inconditionnelles (Jxxx). De plus les instructions JAL, JALR, BGEZAL, et BLTZAL sauvegardent une adresse de retour dans le registre `$31`. Ces instructions sont utilisées pour les appels de sous-programme.
    556556
    557557Toutes les instructions de branchement conditionnel sont relatives au PC (compteur ordinal) pour que le code soit translatable (déplaçable ailleur en mémoire), c'est-à-dire que l'adresse de branchement est le résultat de l'addition entre la valeur du compteur ordinal et un déplacement signé.