1行掲示板です。情報提供などありましたらよろしくお願いします。
特に、記事の誤り訂正などは「ほかの方も読める記録が残る」ので、掲示板を推奨します。
長い内容など、メールで連絡を取りたい方は以下のアドレスへ。

各ページの下にも1行掲示板がついていますが、このページではそれら全てを集めて表示しています。
特定ページへの内容への意見は、そちらのページで書いていただけるとありがたいです。
また、日付にリンクがある場合は、そのリンクを辿ることで元ページを見ることが出来ます。
(日付にリンクがないものは、このページで書き込まれた意見です)
作者が怠惰なので、反応は遅いかもしれません。
申し訳ありませんが、現在意見投稿をできない状態にしています。
【名無し】 大して変わりませんが、XOR A ; 4(5);LD D,A ; 4(5);LD E,A ; 4(5);LD A,#100 ; 7(8);LD HL,#101 ; 10(11);DB 0C2H ; JP NZ,nn ; 10(11);LOOP1:;EX DE,HL ; 4(5);LOOP2:;ADD HL,HL ; 11(12);START:;RRA ; 4(5);JR NC,LOOP2; 12/7(13/8);EX DE,HL ; 4(5);ADD HL,DE ; 11(12);JP NZ,LOOP1; 10(11);END:;SRL H ; 8(10);RR L ; 8(10) で342クロックになります。 (2014-08-05 03:38:54)
【名無し】 LDIを4個並べてJP PE,~でループさせるだけで10657クロックなのでLDIRよりは速いですね。サイズも20バイトなので差ほどではないと思います。 (2014-08-04 23:59:40)
【naoya2k】 メモリに余裕があればLDIを16個とか並べて最後にPフラグで分岐のほうが速いです。 (2014-08-04 23:00:27)
【あきよし】 ありがとうございます。内容更新しました。 (2014-08-04 17:36:06)
【あきよし】 ありがとうございます。改良プログラムを追記しました。 (2014-08-04 16:20:52)
【名無し】 Z80 条件省略に倣ったところ、LDY #100 ; 2;TYA ; 2;ROR A ; 2;LDA #0 ; 2;TAX ; 2;BCC LOOP ; 3/2;CLC ; 2;BCC MOD1 ; 3/2;INCH:;INX ; 2;DEY ; 2;BEQ EXIT ; 3/2;CLC ; 2;LOOP:;ADC TABLE,Y ; 4;BCC SKIP ; 3/2;INX ; 2;CLC ; 2;SKIP:;DEY ; 2;MOD1:;ADC TABLE,Y ; 4;BCS INCH ; 3/2;DEY ; 2;BNE LOOP ; 3/2;EXIT:;STA >0 ; 3;STX >1 ; 3 で1087クロックになるようです。 (2014-08-04 15:46:29)
【m.ukai】 Z80のほう、初期値状態でC flag クリアする&BCレジスタのオーバーフローしないという前提を置くと、SRL A を RRA (4+1 clk) に置き換えられます (2014-08-04 13:03:42)
【m.ukai】 Z80のほう、SKIPラベル一は1命令後ろにできます(初期値が0でなければ)。あと、ループの形をかえることで、(前半省略) jp loop0; loop: sla c; rl b; loop0: srl a; jr nc,loop; add hl,bc; jp nz,loop; end: srl h; rr l; はやくなります (2014-08-04 12:53:39)
【あきよし】 情報ありがとうございます。ファミコンで実際使われていた、という証言は重いです。この方法をありにして、別ページの方を書き変えました。ただ、ループ展開は制限させてもらっています(展開競争は虚しいので)。 (2014-08-04 10:16:58)
【あきよし】 指摘ありがとうございます。反映しました。BIT は 8(10)なので、3クロック短縮ですね。(オペコードが2バイトある命令は、2wait入ります) (2014-08-04 05:53:59)←最近 31 32 33 34 35 36 37 38 39 40 41 過去→