ZX Spectrum > SOFTWARE

Z80 profiler

<< < (4/7) > >>

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

[0] Indeks wiadomości

[#] Następna strona

[*] Poprzednia strona

Idź do wersji pełnej