Functions et assembleur intégré

Résolu
cs_barbichette Messages postés 220 Date d'inscription lundi 30 octobre 2000 Statut Membre Dernière intervention 15 juillet 2013 - 15 juin 2005 à 16:31
cs_ManChesTer Messages postés 374 Date d'inscription vendredi 20 octobre 2000 Statut Modérateur Dernière intervention 15 janvier 2021 - 15 juin 2005 à 22:39
Bonjour,
j'ai un souci avec l'assembleur.

J'ai un type TMyType=array[0..100] of byte;
et une fonction :

Function Calcul(a,b:TMyType):TMyType;assembler;
asm
end;

Et je n'arrive pas en assembleur à récupérer les deux tableaux et à remplir le résultat de la fonction avec mes valeurs.

1 réponse

cs_ManChesTer Messages postés 374 Date d'inscription vendredi 20 octobre 2000 Statut Modérateur Dernière intervention 15 janvier 2021
15 juin 2005 à 22:39
je pense que ceci devrais te convenir :

Function Calcul(a,b:TMyType):TMyType;assembler;
asm
push ebx
push edx
push esi
mov eax,a
mov ebx,b
mov esi,result
Mov ecx,100
@loop:
mov dl,byte ptr([eax+ecx])
add dl,byte ptr([ebx+ecx])
mov byte ptr([esi+ecx]),dl
loop @loop
pop esi
pop edx
pop ebx
end;


procedure TForm1.Button1Click(Sender: TObject);
var a,b,c :TMyType;
j : Integer;
begin
For j:=0 to 100 do
begin
a[j]:=10;
b[j]:=10;
end;
c:=Calcul(a,b);
For j:=0 to 100 do
memo1.Lines.Add(inttostr(c[j]));
end;

Bon Coding ....

ManChesTer.
3
Rejoignez-nous