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