ZX Spectrum > PROGRAMOWANIE

Deasemblacja - dylemat nowicjusza

(1/1)

KWF:
Mam dwie linijki kodu maszynowego w liczbach dziesiętnych:
- p0: 175, 237, 79, 253, 233,
- p1: 62, 128, 237, 79, 253, 233,

Przepisałem je sobie w systemie szesnastkowym:
- p0: AF ED 4F FD E9
- p1: 3E 80 ED 4F FD E9

Na moje oko wynika, że:
- p0:

--- Kod: ---AF     xor a
ED 4F  ld r,a
FD E9  jp (iy)

--- Koniec kodu ---

- p1:

--- Kod: ---3E 80  ld a,0x80
ED 4F  ld r,a
FD E9  jp (iy)

--- Koniec kodu ---

Jeśli mylę się, proszę poprawcie mnie.

steev:
Nie mylisz się :)

--- Kod: ---;
;  DZ80 V3.3.6 Z80 Disassembly of code.bin
;  10/21/18 1:47
;
        org     0
;
        xor     a               ; 0000  af              /
        ld      r,a             ; 0001  ed 4f           mO
        jp      (iy)            ; 0003  fd e9           }i
;
        ld      a,80h           ; 0005  3e 80           >.
        ld      r,a             ; 0007  ed 4f           mO
        jp      (iy)            ; 0009  fd e9           }i

--- Koniec kodu ---

KWF:
Podziękował ślicznie i "pomagas" poszedł.

dr.df0:
BTW, jest taka ciekawa biblioteka w Perlu, której użycie po zainstalowaniu może wyglądać tak:


--- Kod: ---use CPU::Z80::Disassembler;

@opcodes = qw{ 175 237 79 253 233 };

$dis = CPU::Z80::Disassembler->new;
$addr = 0;
for $c (@opcodes) {
    $dis->memory->poke($addr++, $c);
}
$dis->write_dump;

--- Koniec kodu ---

Uruchomienie powyższego kodu daje taki wynik:


--- Kod: ---$ perl t.pl
0000 AF         xor a
0001 ED4F       ld r,a
0003 FDE9       jp (iy)

--- Koniec kodu ---

steev:
Muszę zapamiętać :)

Nawigacja

[0] Indeks wiadomości

Idź do wersji pełnej