樫樹の広場



1行掲示板です。情報提供などありましたらよろしくお願いします。

特に、記事の誤り訂正などは「ほかの方も読める記録が残る」ので、掲示板を推奨します。


長い内容など、メールで連絡を取りたい方は以下のアドレスへ。


各ページの下にも1行掲示板がついていますが、このページではそれら全てを集めて表示しています。

特定ページへの内容への意見は、そちらのページで書いていただけるとありがたいです。


また、日付にリンクがある場合は、そのリンクを辿ることで元ページを見ることが出来ます。

(日付にリンクがないものは、このページで書き込まれた意見です)


作者が怠惰なので、反応は遅いかもしれません。


申し訳ありませんが、現在意見投稿をできない状態にしています

【名無し】 初回シフトの最適化と、加算なしの場合の処理を減らして150クロック35バイト。ある種ループ展開ですが……。LDA #100 ;2 STA >3 ;3 ASL A ;2 STA >0 ;3 LDA #0 ;2 LDX #8 ;2 BCC LOOP ;3/2 ADD: ADC >3 ;3 BCC LOOP ;3/2 INC >0 ;5 LOOP: DEX ;2 BEQ END ;3/2 SHIFT: ASL A ;2 ROL >0 ;5 BCS ADD ;3 DEX ;2 BNE SHIFT ;3/2 END: LSR >0 ;5 ROR A ;2 STA >1 ;3 (2014-08-07 19:57:38)

【名無し】 LD A,(HL) でフラグ変化はないのでNフラグの判定は失敗します。また、JR M,e という命令はないので絶対ジャンプ命令にする必要があります。最初の RLA でキャリーフラグを判定するのが楽だと思います。 (2014-08-07 19:53:56)

【名無し】 LD DE,100 ; 10(11);LD H,E ; 4(5);LD L,D ; 4(5);INC E ; 4(5);LD B,2 ; 7(8);LOOP:;ADD HL,HL ; 11(12);JR NC,SKIP1; 12/7(13/8);ADD HL,DE ; 11(12);SKIP1:;ADD HL,HL ; 11(12);JR NC,SKIP2; 12/7(13/8);ADD HL,DE ; 11(12);SKIP2:;ADD HL,HL ; 11(12);JR NC,SKIP3; 12/7(13/8);ADD HL,DE ; 11(12);SKIP3:;ADD HL,HL ; 11(12);JR NC,SKIP4; 12/7(13/8);ADD HL,DE ; 11(12);SKIP4:;DJNZ LOOP ; 13/8(14/9);SRL H ; 8(10);RR L ; 8(10) で30バイト298クロック。 (2014-08-07 19:22:46)

あきよし】 クロック計算、その通りです。ありがとうございます。申請170クロックで合わないな…と思いつつ、3クロック差だから「加算の共通部分」に間違いがあるのかと思ってそこばかりチェックしていました。 (2014-08-07 19:10:06)

【名無し】 前処理のSTA >3は3クロック、加算有りの繰上りなしは20クロックではないでしょうか。 (2014-08-07 12:05:27)

あきよし】 なんて美しいプログラム…。ありがとうございます。内容更新しました。 (2014-08-07 06:13:32)

【名無し】 6502ループ展開前を改造してみました。ADD:では必ずC=1なので、>3には101-1を代入してCLCは省略。>0は>4の役割を兼任。ループはXでカウントに変更、など。170クロック。LDA #100; STA >0; STA >3; LDX #8; LDA #0; BEQ START; ADD: ADC >3; BCC LOOP; INC >0; LOOP: DEX; BEQ END; START: ASL A; ROL >0; BCS ADD; BCC LOOP; END: LSR >0; ROR A; STA >1; (2014-08-06 19:57:31)

あきよし】 ありがとうございます。内容更新しました。 (2014-08-06 10:49:15)

【名無し】 よく考えたらループ途中への分岐なんて要らんかったですね。LDX #$66 ; 2;LOOP:;LDA $400,X ; 4;STA $600,X ; 5;LDA $466,X ; 4;STA $666,X ; 5;LDA $4CC,X ; 4+;STA $6CC,X ; 5;LDA $532,X ; 4;STA $732,X ; 5;LDA $599,X ; 4;STA $799,X ; 5;DEX ; 2;BPL LOOP ; 3 / 2 で35バイト5202クロック。 (2014-08-06 09:52:43)

【名無し】 Z80のループ展開版はジャンプが11クロックなので 33+(18*8+11)*64=9953クロックですね。 (2014-08-06 07:14:11)

←最近 29 30 31 32 33 34 35 36 37 38 39 過去→

戻る
トップページへ

-- share --

0000

-- follow --




- Reverse Link -