Changes between Version 21 and Version 22 of Archi-1-TD10


Ignore:
Timestamp:
Nov 24, 2022, 11:45:10 AM (2 years ago)
Author:
franck
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Archi-1-TD10

    v21 v22  
    238238 26     andi    $26,    $26,    0x3C         
    239239 27     li      $27,    0x20                   
    240  28     bne     $26,    $27,    not_syscall     
     240 28     bne     $26,    $27,    kpanic      
    241241}}}
    242242 Ligne 16, la directive `.org DEP` (`.org` pour ''origine'', `DEP` pour ''déplassement'') permet de placer le pointeur de remplissage de la section courante à `DEP` octets du début de la section, ici `DEP = 0x180`. Pourquoi faire ça ? Aurait-on pu remplacer le `.org 0x180` par `.space 0x180` ? (C10 S5 et connaissance de l'assembleur)
     
    254254  - Ligne 26 : `$26` **←**  `$26 & 0b00111100`\\⟶ C'est un masque qui permet de ne conserver que les 4 bits du champ `XCODE`.
    255255  - Ligne 27 : `$27` **←**  `0b00100000`\\⟶ On initialise le registre GPR réservé au kernel $27 avec la valeur attendue dans $26 s'il s'agit d'une cause `syscall`.
    256   - Ligne 28 : si `$26` ≠ `$27` goto not_syscall\\⟶ Si ce n'est pas un `syscall`, on va plus loin, sinon on continue en séquence.
     256  - Ligne 28 : si `$26` ≠ `$27` goto kpanic\\⟶ Si ce n'est pas un `syscall`, on va plus loin, sinon on continue en séquence.
    257257''
    258258}}}
     
    277277  **`kernel/hcpua.S`**
    278278{{{#!xml
    279  34 ksyscall:
     279 34 syscall_handler:
    280280 35
    281281 36     addiu   $29,    $29,    -8*4