Changes between Version 45 and Version 46 of Doc-MIPS-Archi-Asm-kernel


Ignore:
Timestamp:
Nov 13, 2020, 3:43:16 PM (4 years ago)
Author:
franck
Comment:

--

Legend:

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

    v45 v46  
    8888
    8989La version du MIPS32 que nous utilisons possède une cinquantaine d'instructions, il y a les instructions standards utilisables quel que soit le mode d'exécution du processeur et il y a les instructions protégées qui ne sont utilisables qu'en mode ''kernel''. Les instructions standards sont présentées dans le document sur [htdocs:cours/doc_MIPS32.pdf l'architecture et l'assembleur en mode user]. Ce sont les instructions arithmétiques/logiques entre registres, les instructions de branchement, les instructions de lecture et écriture mémoire et l'instruction `syscall`.
    90 La présente section décrit les instructions protégées (utilisables seulement en mode ''kernel''). Nous en utilisons 3 : `mtc0`, `mfc0` et `eret`. 
     90Nous utilisons 3 instructions protégées (utilisables seulement en mode ''kernel'') : `mtc0`, `mfc0` et `eret`. 
    9191
    9292 `mtc0` et `mfc0`:: \\
     
    9898 
    9999 `eret`:: \\
    100  signifie ''Exception-RETurn'', c'est-à-dire ''retour d'une exception''. Nous allons voir en détail dans la section **5.** ce que cela signifie. Pour le moment, comprenez que c'est l'unique instruction permettant de sortir du mode ''kernel'' pour entrer dans le mode ''user''.
     100 signifie ''Exception-RETurn'', c'est-à-dire ''retour d'une exception''. Nous allons voir en détail ce que cela signifie dans la section **5**. Pour le moment, comprenez que c'est l'unique instruction permettant de sortir du mode ''kernel'' pour entrer dans le mode ''user''.
    101101
    102102 || **instruction assembleur**  || **comportement dans le processeur**      || **Remarques** ||
     
    157157
    158158 **Par exemple:**\\
    159  `mtc0 $5, $14` l'instruction `mtc0` a un OPCOD à `010000"`, le bit `INS 25` est à `0` et le bit `INS 23` est à `1`.\\
     159 `mtc0 $5, $14` : `OPCOD` = `010000"`, le bit `INS 25` est à `0` et le bit `INS 23` est à `1`.\\
     160 — `mtc0 $5, $14` = `0b``010000`|`0.1..`| `$5` | `$14`|`.....`|`......` \\
    160161 — `mtc0 $5, $14` = `0b``010000`|`0.1..`|`00101`|`01110`|`.....`|`......` \\
    161162 — `.` peut être remplacé par `0`ou `1`, utilisons `0`\\