Assembler - Interrupt Vektor

Schnuffix10

Cadet 2nd Year
Registriert
Okt. 2013
Beiträge
24
Hey hey :)

Kann mir jemand kurz erklären wie ich den Interrupt Vektor hierzu ablesen kann bei folgenden Speicherauszug?
1111.png


Sagen wir den Vektor Nr. 3 als Beispiel…
Ich weiß, dass er aus 4 Byte besteht.
Also rechne ich 3*4 = 12 und wie lese ich den Vektor nun ab?



P.s. Google hat genauso viel Ahnung wie ich…
 
Ja. Ein Disassembler sollte helfen. Man muss ggf. nur etwas experimentieren, wo die Instructions anfangen, falls man mitten in einem Opcode steckt.
Außerdem sollte einem natürlich die Architektur bekannt sein, damit man den richtigen Disassembler erwischt.

Da ich kein CD sehe, scheidet ein normaler x86-Interruptaufruf schon mal aus.
 
Schnuffix10 schrieb:
Kann mir jemand kurz erklären wie ich den Interrupt Vektor hierzu ablesen kann bei folgenden Speicherauszug?
Woraus kommt dieser Speicherauszug?
Einem Programm (Speicher des laufenden P., Binärdatei...)? Der IDT oder gar IVT?

Angenommen das sind direkt die Vektoren dann kann man durch die Angabe dass die Vektoren 4 Bytes haben IDT schon ausschließen, somit sind das, wenn überhaupt, IVT Einträge. Weiters angenommen das ist ein Dump des Speichers von 0x0000 an, das erste Byte der angegebenen Werte ist damit gleich dem ersten Byte der IVT.

Gesucht ist der 3. Eintrag, der erste geht von Byte 0-3, der zweite von 4-7 und der dritte von 8-11. In dem Beispiel daher C590EE7E. Das sind 16 bit Segment und 16 bit Offset, daraus kann man durch Seg*0x10+Offset die lineare Adresse berechnen falls benötigt.

Hoffe mich richtig erinnert zu haben aber dennoch alle Angaben ohne Gewähr, bitte nachprüfen.
 
Zurück
Oben