Einzelnen Beitrag anzeigen

Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#18

Re: Float-Parameter per ASM übergeben

  Alt 7. Jun 2008, 11:57
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?
Michael
  Mit Zitat antworten Zitat