ZX Spectrum > SOFTWARE
Z80 profiler
Tygrys:
Odpaliłem profiler w następujący sposób:Z80Profiler.exe -c3.5 -la -ll -ld 48.ROM >48.lst
Wsadem jest ROM z ZX48.
Otrzymałem np takie wyniki:
--- Cytuj ---.
.
.
.
l0d4d:
0d4d xor a ; 20T AF
0d4e ld hl,(05c8dh) ; 80T 2A 8D 5C
0d51 bit 0,(iy+002h) ; 100T FD CB 02 46
0d55 jr z,0d5bh ; 45T 28 04
0d57 ld h,a ; 12T 67
0d58 ld l,(iy+00eh) ; 57T FD 6E 0E
l0d5b:
0d5b ld (05c8fh),hl ; 80T 22 8F 5C
0d5e ld hl,05c91h ; 50T 21 91 5C
0d61 jr nz,0d65h ; 50T 20 02
0d63 ld a,(hl) ; 14T 7E
0d64 rrca ; 8T 0F
l0d65:
0d65 xor (hl) ; 35T AE
0d66 and 055h ; 35T E6 55
0d68 xor (hl) ; 35T AE
0d69 ld (hl),a ; 35T 77
0d6a ret ; 50T C9
l0d6b:
--- Koniec cytatu ---
Ilość taktów dla xor, and i innych jest nieprawidłowa, przez co całość wyników zdaje się być mocno zawyżona.
Dr Piotr:
--- Cytat: Tygrys w 2016.01.19, 09:38:09 ---Odpaliłem profiler w następujący sposób:Z80Profiler.exe -c3.5 -la -ll -ld 48.ROM >48.lst
Wsadem jest ROM z ZX48.
Otrzymałem np takie wyniki:
--- Cytuj ---.
.
.
.
l0d4d:
0d4d xor a ; 20T AF
0d4e ld hl,(05c8dh) ; 80T 2A 8D 5C
0d51 bit 0,(iy+002h) ; 100T FD CB 02 46
0d55 jr z,0d5bh ; 45T 28 04
0d57 ld h,a ; 12T 67
0d58 ld l,(iy+00eh) ; 57T FD 6E 0E
l0d5b:
0d5b ld (05c8fh),hl ; 80T 22 8F 5C
0d5e ld hl,05c91h ; 50T 21 91 5C
0d61 jr nz,0d65h ; 50T 20 02
0d63 ld a,(hl) ; 14T 7E
0d64 rrca ; 8T 0F
l0d65:
0d65 xor (hl) ; 35T AE
0d66 and 055h ; 35T E6 55
0d68 xor (hl) ; 35T AE
0d69 ld (hl),a ; 35T 77
0d6a ret ; 50T C9
l0d6b:
--- Koniec cytatu ---
Ilość taktów dla xor, and i innych jest nieprawidłowa, przez co całość wyników zdaje się być mocno zawyżona.
--- Koniec cytatu ---
Profiler usiluje wykonac kod, ktory mu wrzucasz, stad tez ilosc tstates czy ms moze byc wieksza jesli dana sekwencja rozkazow zostanie wykonana wiecej niz 1 raz. Tam, gdzie nie dotarl bedziesz mial czas 0.
Profiler w zasadzie nie ma opcji samej deasemblacji z podaniem liczby taktow na rozkaz. Jak chcesz tylko zobaczyc ile taktow zajmuje wykonanie danej instrukcji, sprobuj parametru -d (oraz -ax0d4d aby zaczal wykonywac od tego adresu) ew. tylko opcji -a.
W sumie moze dodam opcje takiej deasemblacji, moze sie przydac.
Dr Piotr:
--- Cytat: Tygrys w 2016.01.19, 09:38:09 ---Odpaliłem profiler w następujący sposób:Z80Profiler.exe -c3.5 -la -ll -ld 48.ROM >48.lst
Wsadem jest ROM z ZX48.
--- Koniec cytatu ---
Aha, opcja -c3.5 bez opcji -lms nie ma sensu, bo wtedy wyniki sa wyswietlane w tstates, na co opcja -c nie ma wplywu.
ssr86:
Dopiero dziś tu wszedłem. Bardzo przydatne narzędzie.
Jakiś czas temu sam zamierzałem się za coś podobnego zabrać, bo akurat było mi potrzebne, ale jak pomyślałem, że to w zasadzie wymaga napisania jakby kompilatora to się "wystraszyłem";P.
To czekam na release:)
A tak to piszę, bo chciałem zapytać, czy w miarę nieskomplikowane byłoby umożliwienie dodania opóźnień na dostępach (odczyt i zapis) do określonych obszarów pamięci (wideo)?
Dr Piotr:
--- Cytat: ssr86 w 2016.01.22, 09:35:44 ---A tak to piszę, bo chciałem zapytać, czy w miarę nieskomplikowane byłoby umożliwienie dodania opóźnień na dostępach (odczyt i zapis) do określonych obszarów pamięci (wideo)?
--- Koniec cytatu ---
Na razie sa zaimplementowane dwie opcje tego rodzaju - dla amstrada cpc, rozciagajaca tstates do wartosci podzielnej przez 4 oraz dla msx dodatkowy tstate przy odczycie opcode. Mozliwe, ze zaimplementuje tez dla zx spectrum, ale to bardziej skomplikowane.
Do jakiego komputera to potrzebujesz?
Nawigacja
[#] Następna strona
Idź do wersji pełnej