Zitat von
Apollonius:
Du hast vergessen, den PExtended zu dereferenzieren. An den Anfang der Float-Behandlung muss noch ein mov edx, [edx].
Hi,
wird nicht hier beim pushen in einem dereferenziert
Delphi-Quellcode:
movzx ecx, word ptr [edx+$08]
push ecx
push [edx+$04]
push [edx]
Wobei es trotzdem nicht funktioniert. (gleiches Problem wie vorher)
Delphi-Quellcode:
for i:= 2
to max-1
do
begin
off := i*8;
asm
mov edx,[Params]
add edx,off
mov edx,[edx]
// <--- hinzugefügt
movzx ecx,[edx+$04]
sub ecx,3
jnz @NoExt
movzx ecx, word ptr [edx+$08]
push ecx
push [edx+$04]
push [edx]
jmp @LoopEnd
@NoExt:
push [edx]
@LoopEnd:
end;
end;
EDIT:
Wenn ich
movzx ecx,[edx+$04]
durch
Delphi-Quellcode:
mov ecx,[Params]
add ecx,off
add ecx,4
movzx ecx,[ecx]
ersetze, dann geht es o.O Warum das denn?