Inkrementacja
atari8.eu - czas na zabawę!
Opublikowano w przez Atari Fan
Spotkałem się na znajomym blogu z informacją którą cytuję:
” … Irytuje mnie gdanie o szybkości Action! gdy jedna z najczęstysz operacji czyli np. X==+1 na typie BYTE nie jest kompilowane do INC X. …”
Trochę mnie to zdziwiło – bo po co miałby powstać konstrukt tego typu:
J==+1
zamiast po prostu:
J=J+1
Okazuje się jednak, że nawet nie w tym rzecz bo wygląda na to że wszelkie inkrementacje zmiennych dowolnego typu o jeden skutkują wygenerowaniem kodu INC i to z rozróżnieniem, czy zmienna znajduje się na stronie zerowej czy nie.
Przykład:
; Inkrementacja
SET 14=$2200
Proc TEST()
byte J, K=$CA
J=0 J==+1 J=J+1
K=0 K==+1 K=K+1
;AS
LDY #00
STY 2200
INC 2200
INC 2200
STY CA
INC CA
INC CA
RTS
Mamy tutaj nawet namiastkę optymalizacji.