Changes between Version 21 and Version 22 of Archi-1-TD10
- Timestamp:
- Nov 24, 2022, 11:45:10 AM (2 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Archi-1-TD10
v21 v22 238 238 26 andi $26, $26, 0x3C 239 239 27 li $27, 0x20 240 28 bne $26, $27, not_syscall240 28 bne $26, $27, kpanic 241 241 }}} 242 242 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) … … 254 254 - Ligne 26 : `$26` **←** `$26 & 0b00111100`\\⟶ C'est un masque qui permet de ne conserver que les 4 bits du champ `XCODE`. 255 255 - 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. 257 257 '' 258 258 }}} … … 277 277 **`kernel/hcpua.S`** 278 278 {{{#!xml 279 34 ksyscall:279 34 syscall_handler: 280 280 35 281 281 36 addiu $29, $29, -8*4