アカウント名:
パスワード:
検討進んでいるので、有効かどうか見当つかないですが最下位ビットクリアして 1/10(26/256)とか1/2 してから 1/5(52/256)とかだとどんなもんでしょ?
最下位ビットをクリアして13/128倍で先に商を求める。というのを、ざっと書いてみたのですが、24バイト90ステートになっちゃいました。もう少し縮まるかなぁ。
78 LD A,BE6 FE AND FEH87 ADD A4F LD C,A80 ADD B1F RRA0F RRCA0F RRCA0F RRCA0F RRCA81 ADD C3F CCF99 SBC C3C INC AE6 0F AND 0FH67
あ、24バイト90ステートじゃなくて、24バイト94ステートですね。もうちょっと縮まるといいんですけど…。
なんか惜しいので解説サイト見ながら初Z80
LD A,BRRALD C,AADD AADD AADD CRRCARRCARRCAADD CAND 78HLD H,ARRCARRCAADD HNEGADC BRRC HRRC HRRC H
1/2 してから ((x5)/8+x1)/8 のつもり。あってるかな?
あぅ、初期キャリーフラグの影響受けますねこれじゃ。
長引いてすみません。RRC rのバイト数勘違いしてた。あと、某サイトでのクロック数違ってる…
XOR ALD A,BRRALD C,AADD AADD AADD CRRCARRCARRCAADD CRRCARRCARRCAAND 0FHLD H,AADD AADD AADD HCPLRLCAADC B
敗北…
最下位ビットクリアする方針に転換
LD A,BAND FEHLD C,ARRCA ; 1/2RRCA ; 1/4ADD C ; 5/4RRCA ; 5/8ADD C ; 13/8AND F0HRRCA ; 13/16RRCA ; 13/32LD C,ARRCA ; 13/64RRCA ; 13/128LD H,AADD CCPLRLCAADC B
これ間違ってたら大顰蹙;;お騒がせしました。
ありがとうございます。たぶん、RRCAじゃなくRRAを使おうと思ってたっぽいです。ラブレターのごとく、朝になって見直してから出すべきですねorz
yo4さんの昨日の日記 [srad.jp]、見せていただきました。21バイト82ステート、素晴らしい。
78 LD A,BE6 FE AND FEH4F LD C,A1F RRA1F RRA81 ADD C1F RRA81 ADD CE6 F0 AND F0H1F RRA1F RRA4F LD C,A1F RRA1F RRA67 LD H,A81 ADD C2F CPL07 RLCA88 ADC B
商を5倍する際に、4倍の中間値をCレジスタにしまっておいて、それを足しこむあたり絶妙です。素晴らしい。
4倍の中間値が利用できることに気が付いた瞬間は自分でも拍手喝采でした。お褒めいただき光栄、超うれしいです。
逆に、CCFからSBCのあたりがいまだに理解できてないorz
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
※ただしPHPを除く -- あるAdmin
26/256 の戦略に戻っちゃいますが (スコア:1)
検討進んでいるので、有効かどうか見当つかないですが
最下位ビットクリアして 1/10(26/256)とか
1/2 してから 1/5(52/256)とかだとどんなもんでしょ?
Re: (スコア:2)
最下位ビットをクリアして13/128倍で先に商を求める。というのを、ざっと書いてみたのですが、24バイト90ステートになっちゃいました。もう少し縮まるかなぁ。
Re: (スコア:2)
あ、24バイト90ステートじゃなくて、24バイト94ステートですね。もうちょっと縮まるといいんですけど…。
Re: (スコア:1)
なんか惜しいので解説サイト見ながら初Z80
1/2 してから ((x5)/8+x1)/8 のつもり。あってるかな?
Re: (スコア:1)
あぅ、初期キャリーフラグの影響受けますねこれじゃ。
Re: (スコア:1)
長引いてすみません。RRC rのバイト数勘違いしてた。あと、某サイトでのクロック数違ってる…
敗北…
Re: (スコア:1)
最下位ビットクリアする方針に転換
これ間違ってたら大顰蹙;;お騒がせしました。
Re: (スコア:1)
RRCA ; 1/4
のあたりからRRCAによりLSBがMSB側に回り込むためと思われますが、
入力値を0から19の範囲でインクリメントしてコールし、H、Aレジスタを
ダンプしたものが下記です。(入力:2の04 DA部からNG)
一応ザイログ製Z80で確認
SRL A
なら回り込みは発生しませんが8ステート命令です。
0- 9 : 00 00 00 01 04 DA 04 DB 08 B4 08 B5 0C 8E 0C 8F 00 08 00 09
10-19 : 05 D8 05 D9 09 B2 09 B3 0D 8C 0D 8D 01 06 01 07 05 E0 05 E1
Re: (スコア:1)
ありがとうございます。
たぶん、RRCAじゃなくRRAを使おうと思ってたっぽいです。
ラブレターのごとく、朝になって見直してから出すべきですねorz
Re:26/256 の戦略に戻っちゃいますが (スコア:1)
※今回はエミュレータ使用、今まで実チップと差分が出たことが無いので問題ないはずです
0- 9 : 00 00 00 01 00 02 00 03 08 B4 08 B5 08 B6 08 B7 00 08 00 09
10-19 : 01 00 01 01 09 B2 09 B3 09 B4 09 B5 01 06 01 07 01 08 01 09
Re:26/256 の戦略に戻っちゃいますが (スコア:1)
Re:26/256 の戦略に戻っちゃいますが (スコア:2)
yo4さんの昨日の日記 [srad.jp]、見せていただきました。21バイト82ステート、素晴らしい。
商を5倍する際に、4倍の中間値をCレジスタにしまっておいて、それを足しこむあたり絶妙です。素晴らしい。
Re:26/256 の戦略に戻っちゃいますが (スコア:1)
4倍の中間値が利用できることに気が付いた瞬間は自分でも拍手喝采でした。
お褒めいただき光栄、超うれしいです。
逆に、CCFからSBCのあたりがいまだに理解できてないorz