Eine Stelle im Speicher anspringen
-
Hallöchen.
Kann man mit jmp direkt an eine Stelle im Speicher springen? (ohne Label)
Wenn ja wie ist die Syntax dafür? (MASM)
Oder muss man den Wert in ein Register laden und dann "jmp reg" machen?
Bye.
-
müsste:
jmp [006842AB]
sein
-
Hallo Lazy,
das gibt folgenden Fehler:
error A2048: nondigit in number
-
@dword ptr:
jmp [006842ABh]
Du must dem Assembler mitteilen, dass Du eine hexadezimale Zahl verwendest. Füge ein h am Ende hinzu.
Ciao...
-
edit: schon erledigt
-
@Kal El: So hatte ich es auch schon ausprobiert. Brachte aber nur eine andere Fehlermeldung.
error A2076: jump destination must specify a label
Ich nutze wie bereits gesagt, MASM.
-
ja das Ratespiel geht weiter:
versuchs mal hiermit jmp [CS:004b3a68h]
oder sonst wohin
-
Oh, das macht Spaß.
jmp [CS:004b3a68h]
error A2023: instruction operand must have size
-
jmp dword ptr [CS:004b3a68h]
hehe
-
LOL. Danke
Da hatte wohl nur mein Nickname gefehlt.
-
Sry, wenn ich das lustige Ratespielchen unterbreche, aber das ist hier eigentlich ein wenig OT. Dafuer gibt es das RundUmOfftopic.
Also bitte mal etwas zusammenreissen und nur posten, wenn ihr euch halbwegs sicher seid.BTW: Mit oben vorgestellter Loesung wird ein Sprung zur Adresse ausgefuehrt, die von der angegebenen Speicherstelle ausgelesen wird.
Da ich aber net weiss, wie man es anstellen muss, damit TASM oder MASM einen direkten FAR-Jump frisst, kann ich dir nur raten: benutz einfach direkt die Hex-Werte des OpCodes.db 0eah ;OpCode fuer FAR JUMP dw 1234h ;Offset dw 5678h ;Segment
-
wenn man das nicht unbedingt in einer instruktion haben muss, muss man sich nur zu helfen wissen. z.b.:
mov eax,adresse jmp eax push adresse ret
-
Nobuo T schrieb:
Da ich aber net weiss, wie man es anstellen muss, damit TASM oder MASM einen direkten FAR-Jump frisst, kann ich dir nur raten: benutz einfach direkt die Hex-Werte des OpCodes.
db 0eah ;OpCode fuer FAR JUMP dw 1234h ;Offset dw 5678h ;Segment
Funktionieren denn Far-Jumps noch unter den aktuellen Windows-Versionen?
-
Ja.
In RealMode DOS-Programmen kann man FAR-Jumps sowieso problemlos einsetzen, und in Windows-Programmen muss man dann halt schon sehr genau wissen, was man da tut.