8 ビットのカウンターがあり、0 ~ 255 を格納します。
一言で言えば、私の説明が不十分な場合に備えて。8 ビットで構成される値 ABCDEFGH があります。ABCD または EFGH を読み取る方法はありますか? また、ABCD の新しい値がある場合、EFGH を中断せずに ABCDEFGH に書き込むことはできますか?
したがって、私のバスの実装は 4 ビット幅しかないため、カウンターを読み取り可能な 2 つの 4 ビット値に分割しています。
私の問題は、これに対する読み取りと書き込みの処理方法の問題です。
私が思いつく解決策は次のとおりです。現在 01010101 を保持している 8 ビット レジスタの最上位ビットに 1010 を書き込みます。
1010 を追加して 8 ビット レジスタをクリーンにし、00001010 を取得します。左に 4 回ビット シフトして 10100000 を取得し、元のレジスタから 4 LSB を抽出して、この値に追加します。
私の質問は:
まず、8 ビットレジスタの 4 ビットだけを読み出す方法はありますか?
第二に、4 ビット値の 8 ビット レジスタへの書き込みを処理する、非常に洗練されていない方法よりも洗練された方法はありますか?