|
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
Verfasst am: 10.07.2007, 12:25 Titel: [ASM] Hilfe bei JMP-Mnemonic |
|
|
Wer sieht in folgender Gleichung, welche mit einem Disassembler angefertigt wurde, einen Zusammenhang?
Code: | 0E9B301h = JMP 002B6h |
Es handelt sich dabei um Code, der sogar läuft, und für den 8086 bestimmt ist. |
|
Nach oben |
|
|
A.K.
Anmeldungsdatum: 02.05.2005 Beiträge: 467 Wohnort: HH
|
Verfasst am: 10.07.2007, 22:24 Titel: |
|
|
Hi,
is ganz einfach, einmal hier:
http://www.iconsoft.de/index.php?show=tutorial_prozessor
und als Kurzerklärung:
Ein JMP (auch JZ, JL, JG, JA, JB......) ist immer ein relativer Sprung der sich an dem aktuellen Programmpointer orientiert.
Der Wert der dann im Hex-Format angegeben wird ist nicht die Adresse wohin das Programm springen soll, sondern nur eine Angabe um wieviel der Programmpointer erhöht oder verringert werden soll.
In deinem Beispiel:
0E9B301h = JMP 002B6h
bedeutet:
0E = JMP
B301 = jmp-"Betrag"
Dieser muß erstmal gedreht werden da bei einem Word immer die Bytes "verdreht" werden.
Der Betrag lautet dann 01B3h
0000-7FFF sind Sprünge in positive Richtung.
Ein JMP 0200 an dem Offset 0x0100 würde den Code 0E0001h erzeugen. Dieser bedeutet einfach nur Programmpointer +100h.
Werte von 8000-FFFF stellen negative Werte da, da das Sign-Flag, Bit 15 (Zählweise: 0-15) gesetzt ist.
Einfache Berechnung des jmp-"Betrags" wäre:
(FFFFh-B301h) * -1 (B301 nur als Beispiel bei Byte-Tausch!!)
Ergebnis wäre: -19711 (-4CFFh)
In deinem Fall heißt das einfach:
Da du JMP 02B6h angegeben hast, müßte dies theoretisch (!) heißen das dieser Befehl in deinem Assembler an Adresse (02B6h-01B3h) steht. Also an 0103h stehen. (+-3 wegen der Länge des JMP's, hab ich nicht mehr genau im Kopf)
MFG A.K. _________________
http://forum.IconSoft.de
http://www.pnpbb.de - hol dir jetzt dein eigenes kostenloses Forum *NEU* |
|
Nach oben |
|
|
PMedia
Anmeldungsdatum: 14.08.2006 Beiträge: 2847
|
Verfasst am: 11.07.2007, 12:06 Titel: |
|
|
aka ( ), danke
Was ich aber merkwürdig fand, das Programm wurde danach wirklich an Adresse 02B6h weitergeführt. |
|
Nach oben |
|
|
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen.
|
|