Changes between Version 45 and Version 46 of Doc-MIPS-Archi-Asm-kernel
- Timestamp:
- Nov 13, 2020, 3:43:16 PM (4 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Doc-MIPS-Archi-Asm-kernel
v45 v46 88 88 89 89 La 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`.90 Nous utilisons 3 instructions protégées (utilisables seulement en mode ''kernel'') : `mtc0`, `mfc0` et `eret`. 91 91 92 92 `mtc0` et `mfc0`:: \\ … … 98 98 99 99 `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''. 101 101 102 102 || **instruction assembleur** || **comportement dans le processeur** || **Remarques** || … … 157 157 158 158 **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`|`.....`|`......` \\ 160 161 — `mtc0 $5, $14` = `0b``010000`|`0.1..`|`00101`|`01110`|`.....`|`......` \\ 161 162 — `.` peut être remplacé par `0`ou `1`, utilisons `0`\\