Aller au contenu

Delphi/Code assembleur en Delphi

Leçons de niveau 14
Une page de Wikiversité, la communauté pédagogique libre.
Début de la boite de navigation du chapitre
Code assembleur en Delphi
Icône de la faculté
Chapitre no 10
Leçon : Delphi
Chap. préc. :Pointeur
Chap. suiv. :Sommaire
fin de la boite de navigation du chapitre
En raison de limitations techniques, la typographie souhaitable du titre, « Delphi : Code assembleur en Delphi
Delphi/Code assembleur en Delphi
 », n'a pu être restituée correctement ci-dessus.

Depuis Turbo Pascal 1.0, l’utilisation de code assembleur avec des langages de Borland (maintenant Embarcadero) est relativement facile. En Delphi, insérez un bloc de code assembleur entre asm...end; à l'intérieur d'un bloc de code ou alors déclarez toute la fonction procédurale en tant qu'assembleur. Des variables globales ou locales peuvent être utilisées normalement, mais bien sûr ils fonctionneront comme des pointeurs.

Exemples :

function StrLen (S : Pchar ) : cardinal; begin

 asm
   MOV   EDX, EDI
   MOV   EDI, EAX
   MOV   ECX,0FFFFFFFFh
   XOR   AL, AL
   REPNE SCASB
   MOV   EAX, 0FFFFFFFEh
   SUB   EAX, ECX
   MOV   EDI, EDX
 end;

end;

function StrLen (S : Pchar) : cardinal; assembler; asm

 MOV   EDX, EDI
 MOV   EDI, EAX
 MOV   ECX, 0FFFFFFFFh
 XOR   AL, AL
 REPNE SCASB
 MOV   EAX, 0FFFFFFFEh
 SUB   EAX, ECX
 MOV   EDI, EDX

end;