Zitat von
himitsu:
Ansonsten war deine Angabe eh falsch, in Betracht auf dein Ziel,
jmp [$00112233]
denn du wolltest doch bestimmt dieses verwirklichen?
jmp $00112233
die eckigen Klammern geben ja schließlich an, daß es dich bei der Angabe um einen "Zeiger" handeln soll.
Ich bin in
asm nicht so bewandert. Delphi hat immer rumgemeckert wenn ich die "[]" vergessen hab.
Desweiteren bin ich davon ausgegangen das "ptr" angibt das es sich um einen Pointer handelt.
Jetzt weiß ich aber wenigstens das man die eckigen Klammern bei einem direkten Sprung weg lassen muss/soll.
Nur die Binäre code für diese Anweisung (jmp $00112233) fehlt mir noch.
@Flocke: Ich hab einfach direkt hinter meinem Jmp-Befehl zur Zeit die eigentliche Sprungadresse hinterlegt.
Ich verweise somit also bei meinem Sprung auf die Adresse hinter dem Sprungbefehl wo wiederum die richtige steht.
Die Variante mit dem moven auf EAX hab ich nicht gewählt da ich nicht weiß ob EAX bereits belegt ist und ich somit den Wert überschreibe (bin nicht so bewandert in
asm - ich guck in der Regel nur was Delphi für
asm-code aus den Befehlen erzeugt und leite mir dann die Bedeutung durch Zunahme einer kleinen Hilfe her - somit sind mir die ganzen Register, deren Reihenfolge etc. unbekannt)
@Flocke: Bei E9 wird die Differenz angegeben? Das heißt man nimmt keinen "dword" mehr sondern einen Integer? Ist dabei sichergestellt das der Wertebereich des Integers auch groß genug ist?
benötigt hab ich das ganze für folgendes:
http://www.delphipraxis.net/internal...=573675#573675