[ASM]Valori per funzioni allo 0x80
Inviato: mar 28 apr 2009, 18:15
Salve a tutti, sto imparando l'assembler su linux (sintassi AT&T). Ho fatto qualche programmuccio richiamando qualche funzione classica del C (printf, puts,scanf ecc ecc) adesso però vorrei usare direttamente l'interrupt 0x80 ma vorrei sapere quanti valori devo passare per ogni funzione, come faccio a saperlo oppure qualche sito dove vengono illustrati.
ESEMPIO:
per write
write (1,hello,sizeof(hello)) (eax = numero funzione WRITE, ebx= stdin, ecx = indirizzo della stringa, ebx =lunghezza della stringa)
mentre per exit
mi bastano solo due valori (eax = numero funzione exit, ebx = codice di uscita)
Ritornando alla domanda del thread come faccio a sapere quanti valori e che registri devo usare per le funzioni dell interrupt 0x80??
ESEMPIO:
per write
write (1,hello,sizeof(hello)) (eax = numero funzione WRITE, ebx= stdin, ecx = indirizzo della stringa, ebx =lunghezza della stringa)
Codice: Seleziona tutto
movl $4,%eax
movl $1,%ebx
movl $hello,%ecx
movl $13,%edx
int $0x80
Codice: Seleziona tutto
movl $1,%eax
movl $0,%ebx
int $0x80
Ritornando alla domanda del thread come faccio a sapere quanti valori e che registri devo usare per le funzioni dell interrupt 0x80??