bajt do bajtu

Zapisuję tak trochę dla siebie, ale może się komuś kiedyś to przyda w mikroprodce typu 256b.

zamiast zerować rejestr przez

ld a,0           ; co zajmie 2 bajty / 7 cykle

lepiej użyć

xor a            ; co zajmie tylko 1 bajt / 4 cykle

zamiast ładować osobno 8bitowe składowe wartości do rejestrów 16bitowych przez:

ld b,10          ; te dwie linie rozkazów
ld c,32          ; zajmą łącznie 4 bajty / 14 cykli

można to zrobić ładując od razu wartości łączne

ld bc,10*256+32  ; good, 3 bytes / 11 cycles

Zamiast wykonywać porównywanie do zera:

cp 0             ; to zajmie 2 bajty / 7 cykli

lepiej jest zapisać to przez:

or a             ; co zajmie tylko 1 bajt / 4 cykle

Ktoś może pomyśleć, że co to są za oszczędności, 1 bajt na rozkazie. Jeżeli napisaliśmy małą prodkę i zamiast 256b mamy 263b, to może się to okazać bezcenne, plus dochodzą oszczędności na czasie wykonywania takiego rozkazu.

Przy okazji pozdrowienia dla Tygrysa i Dalthona, dzięki mordeczki za wepchnięcie w pętlę kodowania. #jeszczebędzie