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


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

--

Legend:

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

    v44 v45  
    104104 
    105105 Codage des instructions protégées:: \\
    106  Elles utilisent toutes le format R avec le champ `OPCOD` à la valeur `COPRO` (c.-à-d. `0b010000`). L'instruction est alors coder avec les bits 25 et 23 de l'instruction (ces deux bits sont dans le champs RS). Remarquez que ERET à deux codages.\\\\
     106 Elles utilisent toutes le format R avec le champ `OPCOD` à la valeur `COPRO` (c.-à-d. `0b010000`). L'instruction est alors codée avec les bits 25 et 23 de l'instruction (ces deux bits sont dans le champs `RS`). Remarquez que ERET à deux codages.\\\\
    107107{{{#!html
    108108<table border="1" cellspacing="0" cellpadding="0" align=left>
     
    130130</table>
    131131<br><br>
    132 <b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;INS 16
     132<b>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;INS 23
    133133<table border="1" cellspacing="0" cellpadding="0">
    134134<th>
    135 <b>INS 20
     135<b>INS 25
    136136<td align=center style="width:60px"; > <b>0</td>
    137137<td align=center style="width:60px"; > <b>1</td>
     
    150150}}}
    151151
    152  **Par exemple:**\\
    153  — `mtc0 $5, $14` l'instruction `MTC0` a un OPCOD à `010000"`, le bit INS 25 est à `0` et le bit `INS 16` est à `0`.\\
    154  — `mtc0 $5, $14` = `0b``010000`|`00100`|`00101`|`01101`|`00000`|`000000` \\
    155  — `mtc0 $5, $14` = `0b``0100 0000 1000 0101 0111 0000 0000 0000`\\
    156  — `mtc0 $5, $14` = `0x``40857000`
    157 
    158 
    159 Pour les inste
     152 Pour les instructions `mtc0` et `mfc0`, le premier argument est mis dans le champs `RT` et le second argument est mis dans le champs `RD`.
    160153
    161154 || **instruction**  || ||  **comportement** || || **commentaire** ||
    162155 ||**mtc0 RT, RD**   || ||`C0_RD` ← `RT`   || ||Recopie le contenu du registre GPR n°**RT**\\dans le registre du coprocesseur 0 n°**RD** ||
    163156 ||**mfc0 RT, RD**   || ||`RT` ← `C0_RD`   || ||Recopie le contenu du registre du coprocesseur 0 n°**RD**\\dans le registre GPR n°**RT**||
     157
     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`.\\
     160 — `mtc0 $5, $14` = `0b``010000`|`0.1..`|`00101`|`01110`|`.....`|`......` \\
     161 — `.` peut être remplacé par `0`ou `1`, utilisons `0`\\
     162 — `mtc0 $5, $14` = `0b``010000`|`00100`|`00101`|`01110`|`00000`|`000000` \\
     163 — `mtc0 $5, $14` = `0b``0100 0000 1000 0101 0111 0000 0000 0000`\\
     164 — `mtc0 $5, $14` = `0x``40857000`
     165
    164166
    165167== E) EXCEPTIONS / INTERRUPTIONS / APPELS SYSTÈME