Передача элемента массива из Delphi в Ассемблер

Просто переменные передаются - все работает, но как только стоит применить массив, на выходе огромные значения, не правильные! нашел код, пытался его применить, но безуспешно

var A : array [1..10] of integer;
Start : pointer;

Start := @A;
asm
mov ebx, Start
mov edi, 3 * 4 // вместо тройки должно быть вычисленное значение номера элемента
mov eax, [ebx + edi] // в eax попадает 777
end;
end;

Вот мой код...

for I := 1 to 5 do begin
a[i]:=ord(Edit1.Text[1]);
b[i]:=ord(Edit2.Text[1]);
c[i]:=ord(Edit3.Text[1]);
d[i]:=ord(Edit4.Text[1]);


asm

mov eax,d[i]
mov ecx,c[i]

add ecx,eax
mov eax,b[i]

add ecx,eax
mov eax,a[i]

lea ecx,[eax+ecx-$C0]
mov r10,ecx

end;
end;

Ответы (0 шт):