Bonjour,
je me heurte à une limitation de l'utilisation de l'assembleur sous Intel en FP avec l'utilisation de ce code que l'on trouve dans le tuto de Bruno Guérangé "Utilisation de l'assembleur en ligne avec Delphi" III-E-6. Chaînes courtes, limitation qui à priori n'est pas rencontrée avec Delphi :
Au moment du calcul de la longueur de A, cela plante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 function SommeChaine(A,B:ShortString):ShortString; begin {$ASMMODE intel} asm PUSH EDI PUSH ESI MOV EDI,ECX MOV CL,byte ptr [EAX] {<-- Oups !} ADD CL,byte ptr [EDX] [...]
Pas moyen de contourner le problème ?Constant references expressions with constants only are not allowed (in all cases they do not work in protected mode, e.g. under linux i386). Examples:
mov al,byte ptr [’c’] -- not allowed.
mov al,byte ptr [100h] -- not allowed.
(This is due to the limitation of the GNU Assembler).
Source : Extrait de la Doc Free Pascal Intel syntax
Merci. Cordialement.
Gilles
Lazarus 0.9.31-FPC 2.6.1- Win et Ubuntu /Intel 32 bits.
Partager