Assembleur 80x86 | PROC |
---|---|
Procédure |
Syntaxe
nom PROC [modificateurdelangage] [langage] [distance] [USES items,] [arguments [,arguments]...] [RETURNS argument [,argument]] ... nom ENDP |
Mode Standard |
PROC [modificateurdelangage] [langage] nom [distance] [USES items,] [arguments [,arguments]...] [RETURNS argument [,argument]] ... ENDP nom |
Mode TPASCAL ou Turbo Assembler 3.0 ou plus |
nomargument[[compteur]] [[:distance] [PTR] type] [:compteur2] | Syntaxe de chacun des arguments |
Paramètres
Paramètre | Description | ||
---|---|---|---|
nom | Ce paramètre permet d'indiquer le nom de la procédure. | ||
argument | Ce paramètre permet d'indiquer une des définitions de paramètre passé à la procédure. | ||
modificateurdelangage | Ce paramètre optionnel permet d'indiquer le modificateur de langage : | ||
Valeur | Description | ||
NOWINDOWS | Cette valeur permet d'indiquer que l'appel n'est pas effectuer sous Windows. | ||
WINDOWS | Cette valeur permet d'indiquer que des modifications sont faites pour des entrées/sorties de code pour Windows. | ||
langage | Ce paramètre optionnel permet d'indiquer le langage de programmation associé : | ||
Valeur | Description | ||
ASSEMBLER | Cette valeur permet d'indiquer le langage de programmation Assembleur | ||
BASIC | Cette valeur permet d'indiquer le langage de programmation Basic (Turbo Basic, Quick Basic,...) | ||
C | Cette valeur permet d'indiquer le langage de programmation C ou C++ | ||
FORTRAN | Cette valeur permet d'indiquer le langage de programmation Fortran | ||
PASCAL | Cette valeur permet d'indiquer le langage de programmation Pascal (Turbo Pascal, Quick Pascal,...) | ||
PROLOG | Cette valeur permet d'indiquer le langage de programmation Prolog | ||
distance | Ce paramètre optionnel permet d'indiquer la distance d'appel applicable à la procédure : | ||
Valeur | Description | ||
NEAR | Cette valeur permet d'indiquer un appel court de 16 bits. Il utilisera probablement un retour avec «RETN» et un appel «CALL NEAR PTR». Seul le registre IP change de valeur pour indiquer la position de traitement du code machine. | ||
FAR | Cette valeur permet d'indiquer un appel long de 32 bits. Il utilisera probablement un retour avec «RETF» et un appel «CALL FAR PTR». La paire de registres CS et IP sont modifier pour indiquer la position de traitement du code machine. Lorsqu'un appel à la procédure est effectué, le registre CS est empilé et ensuite c'est le registre IP ou EIP. |
Description
Cette directive permet de définir une procédure (sous-programme).
Remarques
- La plupart des langages de programmation, comme le langage de programmation Turbo Pascal par exemple, utilise le registre AL ou AX pour valeur de retour et transformer ainsi la procédure en fonction.
- Si vous utilisez des paramètres d'appel, vous devez empiler leurs valeurs à l'aide d'instruction «PUSH» avant avant votre instruction «CALL» et rajouter le nombre de paramètres à retirer dans l'instruction RET lors de la sortie de la procédure.
Exemple
Cet exemple permet d'effectuer un appel court à la procédure «SamplesProc» sans passage par paramètre :
Références
Turbo Assembler - Version 3.2: Quick Reference Guide, Edition Borland International, 1992, Part #11MN-BPL-10-70, BOR 4703, page 42.
Assembleur - Référence, Edition Micro Application, Pierre Maurette, 2003, ISBN: 2-7429-3061-2, page 721 à 724.
Dernière mise à jour : Samedi, le 2 août 2014