AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Projekte RUTIS Engine (Scripting) [WinCE spinnt]
Thema durchsuchen
Ansicht
Themen-Optionen

RUTIS Engine (Scripting) [WinCE spinnt]

Ein Thema von olee · begonnen am 14. Jun 2009 · letzter Beitrag vom 20. Aug 2010
 
Benutzerbild von olee
olee

Registriert seit: 16. Feb 2008
Ort: Boppard
540 Beiträge
 
Turbo Delphi für Win32
 
#26

Re: RUTIS Engine (Scripting) [WinCE spinnt]

  Alt 7. Mai 2010, 14:23
Also das ist der Befehl, wie er im Delphi-Disassembler angezeigt wurde.
EAX enthält dabei die Adresse im Stack, die von einer Funktion vorher ermittelt wurde und ESI den Wert, der da hin geschrieben werden soll.
Das ganze sieht im Delphi-Code so aus:
Delphi-Quellcode:
Procedure TRutisStack.PushCardinal(Val : Cardinal);
Begin
  PCardinal(Data[Push(4)])^ := Val;
End;
Push gibt als Result die Stack-Adresse (von 0 an gezählt) zurück und
die Array-property Data gibt zu einer Stack-Adresse die absolute Adresse als Pointer zurück.

Der gesamte ASM Code sieht dann so aus:
Code:
Rutis_Defs.pas.1628: Begin
00493D48 53               push ebx
00493D49 56               push esi
00493D4A 8BF2             mov esi,edx
00493D4C 8BD8             mov ebx,eax
Rutis_Defs.pas.1629: PCardinal(Data[Push(4)])^ := Val;
00493D4E 33C9             xor ecx,ecx
00493D50 BA04000000       mov edx,$00000004
00493D55 8BC3             mov eax,ebx
00493D57 E804FCFFFF      call TRutisStack.Push
00493D5C 8BD0             mov edx,eax
00493D5E 8BC3             mov eax,ebx
00493D60 E887F2FFFF      call TRutisStack.GetData
00493D65 8930             mov [eax],esi
Rutis_Defs.pas.1630: End;
00493D67 5E              pop esi
00493D68 5B              pop ebx
00493D69 C3               ret
MFG
Björn Zeutzheim
Codename: Performancepumpe
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:18 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz