Bonjour à tous...
J'ai trouvé sur le net à l'adresse suivante http://groups.google.fr/group/comp [...] 99998e8d54
une petit explication pour pouvoir récupérer en delphi les informations d'un fichier.
A l'intérieur de ce HOWTO, la fonction en assembleur a attiré mon attention :
Code :
- function SwapLong(L: LongInt): LongInt; assembler;
- asm rol eax, 16;
- end;
|
Je comprends bien le ROL et tout et tout, en revanche ce que je ne comprends pas c'est comment la paramétre L se retrouve dans le registre EAX, et comment le résultat de la fonction est renvoyé.
D'aprés ce qu'on m'a dit, la convention veut que le résultat d'une fonction soit toujours placé dans EAX, mais ça ne me dit pas comment le paramétre L est placé dans ce même registre.
Voilà, si vous avez des réponses, c'est plus par curiosité car pour que le tout soit un peu plus lisible (enfin moins sorti de l'espace) j'ai remplacé cette fonction par celle là :
Code :
- function SwapLong(nLong: LongInt): LongInt;
- begin
- Result := (nLong shr 16) or (nLong shl 16);
- end;
|
Merci...et bon code