1

16 ビット値が (pic マイクロコントローラーに) 上位バイトと下位バイトとして格納されている場合、それらを 2 で割るにはどうすればよいでしょうか? 16ビットの数値を右に回転するにはどうすればよいですか?

ありがとう。

4

1 に答える 1

7

16 ビットの数値を 2 で割ることは、数値を 1 ビット右にシフトすることと同じ*です。キャリ フラグをクリアし、キャリによって上位バイトを右にローテーションし、キャリによって下位バイトを右にローテーションします。ここでコードを見つけることができます:

LSR16   MACRO   VAR16
    BCF     STATUS, C       ; Clear carry
    RRF     (VAR16)+1,F     ; Rotate high byte right
    RRF     (VAR16),F       ; Rotate low byte right
    ENDM


*もちろん、これは整数除算です。奇数を 2 で割ると、0.5が切り捨てられます。

于 2012-11-26T03:22:33.547 に答える