V 16. kapitole se uvadi kod:
ld b, 15 ; 2:7 x-ová souřadnice ld c, 12 ; 2:7 y-ová souřadnice
Mene prehledne, ale efektivnejsi je:
ld bc, 256*15+12 ; 3:10 b=x-ová souřadnice,c=y-ová souřadnice
Nacitani konstant byva jedno z nejtezsich veci co lze na Z80 delat.
Staci treba chtit na zasobnik ulozit par bajtu a slozitost jak to napsat nejefektivneji zacne exponencionalne rust.
ld HL,xxxx
push HL
ld HL,xxxx
push HL
...
nebo
ld BC,xxxx
ld HL,xxxx
push HL
inc H
push HL
ld L,C
push HL
push BC
dec HL
push HL
...
kombinaci je prilis mnoho a jsou zavisle jakou posloupnost chceme ulozit.
Na ukazku ulozeni pouze 3 word slov na zasobnik Forthu (je to "normalni" zasobnik pres SP + predposledni hodnota je v DE + a posledni v HL)
Na zacatku ulozi prvni hodnotu a pak uz ma informaci co v tom registru je, takze to muze mozna vyuzit...
push DE ; 1:11 0x4532 0x3345 0x4433 ( -- 0x4532 0x3345 0x4433 ) # HL E HL D
push HL ; 1:11 0x4532 0x3345 0x4433
ld HL, 0x4532 ; 3:10 0x4532 0x3345 0x4433
push HL ; 1:11 0x4532 0x3345 0x4433
ld E, H ; 1:4 0x4532 0x3345 0x4433 lo before E = H = 0x45
dec H ; 1:4 0x4532 0x3345 0x4433
inc L ; 1:4 0x4532 0x3345 0x4433
ld D, L ; 1:4 0x4532 0x3345 0x4433 hi after D = L = 0x33
; seconds: 0 ;[10:59]
push DE ; 1:11 0x45FF 0xFF00 0x4600 ( -- 0x45FF 0xFF00 0x4600 ) # HL D HL E
push HL ; 1:11 0x45FF 0xFF00 0x4600
ld HL, 0x45FF ; 3:10 0x45FF 0xFF00 0x4600
push HL ; 1:11 0x45FF 0xFF00 0x4600
ld D, L ; 1:4 0x45FF 0xFF00 0x4600 hi before D = L = 0xFF
inc HL ; 1:6 0x45FF 0xFF00 0x4600 0x4600 = 0x45FF+1
ld E, L ; 1:4 0x45FF 0xFF00 0x4600 lo after E = L = 0x00
; seconds: 1 ;[ 9:57]
Adresovací režimy jsou samozřejmě super, jak na 6502, tak na 6809. Obzvlášť na 6502 je zajímavé, s jakým málem (2 8-bitové registry) se dají vykouzlit opravdu zajímavé a silné adresovací režimy. Mě se filozofie 6502 líbí, jen mi prostě příjde, že původní verze je až moc očesaná a až právě 65c02 je dotažená.
Což je tedy asi jediný 8bitový procesor, který se podařilo opravdu vylepšit. Z osmibitových následovníku jak 68**, tak *80 jsem spíš rozpačitej.
2. 3. 2023, 18:59 editováno autorem komentáře