0

現在、avr アセンブラー プログラミングに関するチュートリアルを読んでいます。言われています:

ビット操作 cbr および sbr は、レジスタ内の 1 つの複数ビットをクリアまたは設定します。これらの命令は、レジスタ r16 ~ r31 でのみ機能します。単一ビットを引数として使用するのではなく、複数のビットを含むことができるマスクを使用します。

sbr r16, (1<<5)+(1<<3) ;set bits 5 and 3 in register 16 
cbr r16,0x03    ;clear bits 1 and 0 in register 16

2 つの命令のパラメーターを説明してくれる人はいますか? ビット 5 と 3 を設定するために (1<<5)+(1<<3) と書かなければならないのはなぜですか? << はビットシフト操作のようなものだと思います。

4

2 に答える 2

6

はい、 << はビットシフトです。あなたがしているのは、ビットマスクを構築すること00101000であり、それはビット3と5を設定し、インデックスはゼロです。命令では、ビット 0 と 1 をクリアするcbrマスク 0x03 を渡しています。00000011

于 2013-02-24T11:38:10.750 に答える