[Linux] Limitation Inline Assembler
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 :
Code:
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]
[...] |
Au moment du calcul de la longueur de A, cela plante :
Citation:
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
Pas moyen de contourner le problème ?
Merci. Cordialement.
Gilles
Lazarus 0.9.31-FPC 2.6.1- Win et Ubuntu /Intel 32 bits.