Quelqu'un peut m'expliquer ce que l'assemblée suivante de code n'?
int 0x80
Quelqu'un peut m'expliquer ce que l'assemblée suivante de code n'?
int 0x80
int moyens d'interruption, et le nombre 0x80 est le numéro d'interruption. Une interruption des transferts le déroulement du programme, à quiconque est de la manipulation d'interruption, qui est l'interruption 0x80 dans ce cas. Dans Linux, 0x80 gestionnaire d'interruption est le noyau, et est utilisé pour faire des appels système pour le noyau par d'autres programmes.
Le noyau est notifié sur le système d'appel le programme veut faire, en examinant la valeur dans le registre %eax (gaz de syntaxe et de EAX dans Intel syntaxe). Chaque appel système ont des exigences différentes à propos de l'utilisation des autres registres. Par exemple, une valeur de 1 dans %eax moyen d'un système d'appel d' exit()
, et la valeur en %ebx contient la valeur du code de statut pour exit()
.
Il passe le contrôle de vecteur d'interruption 0x80
Voir http://en.wikipedia.org/wiki/Interrupt%5Fvector
Sur Linux, jetez un oeil à ceci: il a été utilisé pour manipuler system_call
. Bien sûr, sur un autre OS, cela pourrait signifier quelque chose de totalement différent.
Comme mentionné, il provoque de contrôle de saut de vecteur d'interruption 0x80. Dans la pratique, ce que cela signifie (au moins sous Linux) est un appel système est invoqué; le système exact d'appel et les arguments sont définis par le contenu des registres. Par exemple, exit() peut être appelée par la mise en eax à 1, suivi de 'int 0x80'.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.