Do vi eklernis iom da z80. Vi konas ld, cp k jp, kaj pensas tio 'stas ĉio. Laŭ komandoj, tiuj ja estas la plimulto; vi finfaros la verkaĵon (kutime). Kvankam, la okazo je z80 estas, ke iometa da sperto kaj sento faru ĉion duoblan rapidon, duonan grandon. Tial estas mi amas da ĝi :)
Sube mallonga listo da kutimaj nekorektoj, aŭ pli ĝuste nepuroj, far komencantaj programistoj. Plejaj spertuloj scias (aŭ decus scii) pli bone. Sed por ĉiuj nesentantaj aĉan kodon, nur memoru tiujn ĉi regulojn. (Notu: nature estas multaj da esceptoj, ĉi tiuj nur estas bazaj direktoj.)
call foo
ret
>
jp foo
cp 0
ret z
>
or a
ret z
cp 1
>
dec a
ld a,0
>
xor a ; flagoj aliiĝos
and 1
cp 1
jr z,foo
>
and 1 ; and almetas zf, cp nenecesa
jr nz,foo
and 1
cp 1 ; a neuzota malantaŭ ĉitio
jr z,foo
>
rra
jr c,foo
bit 0,a
call z,foo
>
rra
call nc,foo
bit 7,a
jr z,foo
>
rla
jr nc,foo
bit 2,a
ret nz
xor a
>
and %100
ret nz
ld a,42
ld (hl),a
>
ld (hl),42
ld a,(foo)
inc a
ld (foo),a
>
ld hl,foo
inc (hl)
ld (foo),a
ld a,42
ld (foo+1),a
>
ld hl,foo
ld (hl),a
inc hl
ld (hl),42
ld hl,foo+(42*1)
add a,(hl)
ld hl,foo+(42*2)
add a,(hl)
ld hl,foo+(42*3)
add a,(hl)
ld hl,foo+(42*4)
add a,(hl)
>
ld hl,foo
ld de,42
ld b,4
bar:
add hl,de
add a,(hl)
djnz bar
ld hl,(foo)
ld de,0
call _cphlde
ret z
>
ld hl,(foo)
ld a,h
or l
ret z
ld a,h
cp l
ret nz
ld a,1
>
ld a,h
sub l
ret nz
inc a
ex de,hl
pop hl
push de
>
ex (sp),hl
cp 42
jp z,foo
cp 43
jp z,bar
cp 84
>
sub 42
jp z,foo
dec a
jp z,bar
cp 84-42-1
; simile..
cp K_LEFT
jr z,foo
cp K_RIGHT
jr z,bar
cp K_DEL
jr z,quux
>
sub K_LEFT
jr z,foo
dec a
jr z,bar
cp K_DEL-K_RIGHT
jr z,quux
sla l ; mi vere vidis ĉi tion!
rl h
>
add hl,hl
xor %11111111
>
cpl
ld bc,42
or a
sbc hl,bc
>
ld bc,-42
add hl,bc
ld b,42
ld c,84
>
ld bc,$2A54
| /calc/z80/optimize · eo, en • farita en 0.154s | ©1999-2003 far SHIAR • All lefts reserved |