Changes between Version 8 and Version 9 of Doc-MIPS-Archi-Asm-kernel
- Timestamp:
- Sep 17, 2020, 10:46:22 PM (4 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Doc-MIPS-Archi-Asm-kernel
v8 v9 619 619 620 620 621 === 3) Appels système: instructions SYSCALL et BREAK621 === 3) Appels système: instructions `syscall` et `break` 622 622 623 623 … … 667 667 <table border="1" cellspacing="0" cellpadding="0"> 668 668 <tr> 669 <td style="width:2 38px"; align=center> IM[7:0]</td>669 <td style="width:254px"; align=center> IM[7:0]</td> 670 670 <td style="width:30px"; align=center> 0</td> 671 671 <td style="width:30px"; align=center> 0</td> … … 680 680 <table border="0" cellspacing="0" cellpadding="0"> 681 681 <tr> 682 <td style="width:12 0px"; align=left> 15</td>683 <td style="width:12 0px"; align=right> 8 </td>682 <td style="width:128px"; align=left> 15</td> 683 <td style="width:128px"; align=right> 8 </td> 684 684 <td style="width:32px"; align=center> 7</td> 685 685 <td style="width:32px"; align=center> 6</td> … … 724 724 725 725 726 Le registre `c0_cause` contient trois champs. Les 4 bits du champ `XCODE[3:0]` définissent la cause de l'appel au GIET. Les 6 bits du champ IRQ(5:0) représentent l'état des lignes d'interruption externes au moment de l'appel au GIET. Les 2 bits SWI(1:0)représentent les requêtes d'interruption logicielle.726 Le registre `c0_cause` contient trois champs. Les 4 bits du champ `XCODE[3:0]` définissent la cause de l'appel du noyau. Les 6 bits du champ `IRQ[5:0]` représentent l'état des lignes d'interruption externes au moment de l'appel su noyau. Les 2 bits `SWI[1:0]` représentent les requêtes d'interruption logicielle. 727 727 728 728 - La figure suivante montre le format du registre de cause CR : … … 731 731 <table border="1" cellspacing="0" cellpadding="0"> 732 732 <tr> 733 <td style="width:238px"; align=center> IM[7:0]</td> 733 <td style="width:190px"; align=center> IRQ[5:0]</td> 734 <td style="width:62px"; align=center> SWI[1:0]</td> 734 735 <td style="width:30px"; align=center> 0</td> 735 736 <td style="width:30px"; align=center> 0</td> 737 <td style="width:126px"; align=center> XCODE[3:0]</td> 736 738 <td style="width:30px"; align=center> 0</td> 737 <td style="width:30px"; align=center> UM</td>738 739 <td style="width:30px"; align=center> 0</td> 739 <td style="width:30px"; align=center> ERL</td>740 <td style="width:30px"; align=center> EXL</td>741 <td style="width:30px"; align=center> IE</td>742 740 </tr> 743 741 </table> 744 742 <table border="0" cellspacing="0" cellpadding="0"> 745 743 <tr> 746 <td style="width:120px"; align=left> 15</td> 747 <td style="width:120px"; align=right> 8 </td> 744 <td style="width:128px"; align=left> 15</td> 745 <td style="width:64px"; align=right> 10 </td> 746 <td style="width:32px"; align=center> 9</td> 747 <td style="width:32px"; align=center> 8</td> 748 748 <td style="width:32px"; align=center> 7</td> 749 749 <td style="width:32px"; align=center> 6</td> … … 758 758 }}} 759 759 760 - Les valeurs possibles du champ XCODEsont les suivantes :760 - Les valeurs possibles du champ `XCODE` sont les suivantes : 761 761 762 762 ||0000||** INT **||Interruption … … 768 768 ||0110||** IBE **||Bus erreur sur accès instruction 769 769 ||0111||** DBE **||Bus erreur sur accès donnée 770 ||1000||** SYS **||Appel système ( SYSCALL)771 ||1001||** BP **||Point d'arrêt ( BREAK)772 ||1010||** RI **|| 773 ||1011||** CPU **|| 774 ||1100||** OVF **|| 775 ||1101||** **|| 776 ||1110||** **|| 777 ||1111||** **|| 778 770 ||1000||** SYS **||Appel système (`syscall`) 771 ||1001||** BP **||Point d'arrêt (`break`) 772 ||1010||** RI **||OPCOD illégal 773 ||1011||** CPU **||Coprocesseur inaccessible 774 ||1100||** OVF **||Overflow arithmétique 775 ||1101||** **||Inutilisé 776 ||1110||** **||Inutilisé 777 ||1111||** **||Inutilisé 778