Set di servizi messi a disposizione dal Kernel del Sistema Operativo.
Ogni sistema operativo gestisce le syscalls in maniera diversa, ma in generale si tende a seguire questa struttura:
- input:
- registro
$v0dentro il quale viene inserito il codice della syscall che si vuole richiedere - registri
$a0, $a1, $a2, $f0, dove vengono inseriti parametri aggiuntivi che verranno letti dalla syscall.
- registro
- output:
- registri
$v0, $f0, che contengono eventuali valori restituiti dalla syscall.
- registri
syscall ($v0) | descrizione | argomenti ( $a0…) | risultato ( $v0…) |
|---|---|---|---|
| 1 | stampa intero | intero | |
| 4 | stampa stringa | string address | |
| 5 | leggi intero | intero | |
| 8 | leggi stringa | $a0 = bufferaddress $a1 = n. chars | |
| 10 | fine programma |
esempio: hello world
.data string: .asciiz "Hello, World!" .text main: la $a0, string li $v0, 4 syscall