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
Idź do wersji pełnej