label

label - ASM - Programmation

Marsh Posté le 07-12-2004 à 00:46:37    

Salut,
  Quelqu'un pourrait me dire l'utilité d'un label.
           A+    David

Reply

Marsh Posté le 07-12-2004 à 00:46:37   

Reply

Marsh Posté le 07-12-2004 à 01:18:46    

ça permet de donner un nom humaine compréhensible à une adresse utilisée pour faire des sauts/appels de fonctions.
 
exemple c:
 
int fonction( int a)
{
  /* on limite 'a' à 20 */
  if( a > 20 )
     a=20;
   
   /* on retourne a*10 */
  return a*10;
}
 
main()
{
   int p;
    ....
    p=
    ...
   p=fonction(p);
}
 
en asm x86 avec une convention d'appel dans les registres:
 
PROC NEAR fonction ; A est dans eax
    push edx  // sav edx dû au imul
    push ebx  // sav ebx
    cmp eax,20 // comparaison par rapport à 20
    jle A_OK   // jle: jump if lower or equal, sauter si inférieur ou égal, l'inverse de "supérieur"
    mov eax,20
A_OK:
    mov ebx,10  // multiplication par 10
    imul ebx    // edx:eax est modifié
    pop ebx     // restauration ebx
    pop edx     // restauration edx
    ret         // retour à l'appellant, a*10 est dans eax
ENDP
 
est dans le code de main, se serait:
 
...
...
    mov eax,p
    call fonction
    mov p,eax
....
....


Message édité par bjone le 07-12-2004 à 01:20:37
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed