11
votes

Table d'appel du système Linux ou feuille de chiche pour l'assemblage

Est-ce que quelqu'un sait où trouver une table de synthèse ou une feuille de trichet pour l'appel du système Linux en montage? J'invoque des appels système Linux via l'instruction INT 0X80 et j'ai besoin d'une référence rapide pour déterminer quel registre contient quelle valeur de temps à autre.


2 commentaires

Vous n'avez pas vraiment besoin d'un, il vous suffit de connaître la convention de l'appel (E.G. EBX, ECX, EDX, etc. pour l'ABI 32 bits) et de l'ordre d'argument C. Quelles sont les conventions d'appel des appels de système Unix & Linux (et fonctions d'espace utilisateur) sur i386 et X86-64 (plus les notes Section de la page de manuel qui commente toutes les différences entre l'interface C et le noyau, par exemple pour BRK / SBRK, ou la manière dont getPriority (2) code la valeur de retour pour éviter les valeurs négatives car ces erreurs moyennes .)


Associé: Unix.stackexchange.com/Questions/421750/...


3 Réponses :



0
votes

Et voici un de plus qui est plus facilement navigable:
http://docs.cs.up.ac.za/programming/asm/derick_Tut/syscalls.html

Un moyen de script pour le savoir pour votre machine actuelle: P>

ls /usr/share/man/man2 | sed -e s/.2.gz//g | xargs man -s 2 -k  | sort | grep -v 'unimplemented system calls'


1 commentaires

Malheureusement, cette page est un 404 maintenant ...



1
votes

Les appels système peuvent également être trouvés dans /usr/include/asm/unistd.h, qui vous dirigera vers UNISD32.H ou UNISD64.H


0 commentaires