Diassemblieren….

…und wie man das auf dem Atari 8- Bit richtig macht. Einfach? Da braucht man doch nicht drüber nachdenken, Startadresse angeben und los geht’s? Was aber wenn ich die Startadresse gar nicht kenne?

Das kann zum Beispiel dann passieren, wenn ich weiss, dass ein bestimmtes Programm irgendwo auf einer Diskette liegt, ich aber nicht weiss wo nun der ausführbare Code und wo nur Datenmüll gespeichert wurde.

Tja, also doch, ein paar Gedanken sind angebracht. Folgendes Beispiel zeigt wo die Probleme anfangen:

Die Byte Folge

A9 A9 8D D0 D4

Übersetz, beginnend ab Byte 1 ergibt:

LDA #$A9
STA $D0D4

Übersetzt aber ab Byte 2:

LDA #$8D
???
BNE  *…..

Wir wissen:

Der Boot Sektor einer Atari Diskette beginnt immer mit 6 Bytes, die dem Betriebssystem sagen, was zu tun ist  (näheres dazu hier im Blog). Das könnte z.B. so ausschauen : 00 03 05 06 06 07. Auf die „07“ folgt ausführbarer Code. Dem Diassembler sollte man also mitteilen, dass der ausführbare Code ab Byte 7 beginnt, sonst macht das Ergebnis u.U. keine Sinn.

Advertisements

4 responses to “Diassemblieren….

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

%d Bloggern gefällt das: