97 votes

Ce n' "int 0x80" dans le code d'assemblée?

Quelqu'un peut m'expliquer ce que l'assemblée suivante de code n'?

 int 0x80

134voto

Polat Tuzla Points 483

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().

73voto

jldupont Points 31331

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.

10voto

Tom Points 16783

int 0x80 est la langue de l'assembly l'instruction qui est utilisé pour appeler les appels système sous Linux sur x86 (c'est à dire, Compatible Intel) processeurs.

http://www.linfo.org/int_0x80.html

2voto

Steve Smith Points 58

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'.

2voto

Amber Points 159296

Il indique à l'unité centrale pour activer le vecteur d'interruption 0x80, qui sur Linux Os est le système d'appel d'interruption, utilisée pour appeler des fonctions du système comme open() pour les fichiers, et cetera.

Prograide.com

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.

Powered by:

X