誰得 Z80 Tips

xevixeviさんがTwitterのフォロー/フォロワー0状態にお怒りあそばされてポストしたZ80のTips。覚えておいていざというときに使おう!
Z80
14
ぜび @xevixevi

誰得 Z80 Tips 1。A レジスタを 0 にするなら、XOR A が速い。4clk。LD A,0 は 7clk。ただし XOR A はフラグ変化する。

2010-08-20 10:07:26
ぜび @xevixevi

誰得 Z80 Tips 2。A レジスタが 0 かどうかを判定するなら、AND A もしくは OR A が速い。4clk。CP 0 は 7clk。

2010-08-20 10:07:31
ぜび @xevixevi

誰得 Z80 Tips 3。A レジスタを壊さずに B レジスタが 0 かどうかを判定するなら、INC B; DEC B が速い。計 8clk。

2010-08-20 10:07:35
ぜび @xevixevi

誰得 Z80 Tips 4。BC レジスタが 0 かどうかを判定するなら、LD A,B; OR C が速い。計 8clk。ちなみに DEC BC ではフラグ変化しないので注意。

2010-08-20 10:07:40
ぜび @xevixevi

誰得 Z80 Tips 5。C フラグを 0 にするなら、AND A もしくは OR A が速い。4clk。ただし他のフラグも変化する。さらに A レジスタを 0 にするなら XOR A。

2010-08-20 10:07:46
ぜび @xevixevi

誰得 Z80 Tips 6。分岐するなら JR より JP が速い。JP は 3 バイト命令で常に 10clk。JR は 2 バイト命令で、分岐時 12clk、非分岐時 7clk。

2010-08-20 10:08:06
ぜび @xevixevi

誰得 Z80 Tips 7。データ転送は LDI を並べるのが速い。転送 1 バイトあたり 16clk。LDIR だと 21clk(最後の 1 バイトだけ 16clk)。

2010-08-20 10:08:11
ぜび @xevixevi

誰得 Z80 Tips 8。メモリフィルは PUSH を並べるのが速い。2 バイトあたり 11clk。

2010-08-20 10:08:17