これらの命令がMSP430プロセッサに対して何をするかを理解しようとしています。
(1) MOV.w #0x0055,R5
(2) BIC.w #0xFFEE,R5
(3) BIS.w #0x1144,R5
組み立て手順を説明するものをあまり見つけることができませんでした。これらの手順が何をするのか、各手順の後にr5レジスタに何が保存されるのかを知りたいと思います。誰かが説明できますか?
MOV
値を宛先に移動します。この場合R5
、値0x0055が含まれます。
BIC
宛先値のビットをクリアします。R5に命令の前に0x0055が含まれる場合、値0x0011が含まれます。(これを逆の命令と考えてください)。
BIS
ビットを設定します-これは事実上or操作と同じです。R5
この命令の後、値は0x1155になります。
MOV.w #0x0055,R5
次のことを行います。 src → dst
BIC.w #0xFFEE,R5
次のことを行いますnot.src .and. dst → dst
BIS.w #0x1144,R5
次のことを行います。src .or. dst → dst
MSP430ユーザーガイドをご覧ください
BIS[.W]宛先にビットを設定BIS.B宛先にビットを設定構文BISsrc、dstまたは
BIS.W src、dst BIS.B src、dst操作src.OR。dst −> dst
説明ソースオペランドとデスティネーションオペランドは論理的にOR演算されます。結果は宛先に配置されます。ソースオペランドは影響を受けません。
ステータスビットステータスビットは影響を受けません。
モードビットOSCOFF、CPUOFF、およびGIEは影響を受けません。
例RAMワードTOMの6つのLSBが設定されています。
BIS#003Fh、TOM; RAMロケーションTOMに6つのLSBを設定します
例RAMバイトTOMの3つのMSBが設定されています。
BIS.B#0E0h、TOM; RAMロケーションTOMに3つのMSBを設定します
もちろん:
BIC[.W]宛先のビットをクリアしますBIC.B宛先の
ビットをクリアします構文BICsrc、dstまたは
BIC.W src、dst BIC.B src、dst操作.NOT.src.AND。dst −> dst
説明反転されたソースオペランドとデスティネーションオペランドは論理的にAND演算されます。結果は宛先に配置されます。ソースオペランドは影響を受けません。
ステータスビットステータスビットは影響を受けません。
モードビットOSCOFF、CPUOFF、およびGIEは影響を受けません。
例RAMワードLEOの6つのMSBがクリアされます。
BIC#0FC00h、LEO; MEM(LEO)で6つのMSBをクリアする
例RAMバイトLEOの5つのMSBがクリアされます。
BIC.B#0F8h、LEO; ラムロケーションLEOで5つのMSBをクリアする
このウェブサイトに関連リンクがあるこのユーザーガイドを見つけることができました
既存の回答から欠落している情報の一部は、.W対.Bの重要性です。
56ページのMSP430F24xユーザーガイド(SLAU144J)のセクション3.4から、次のように指定されています。
白黒:
バイトまたはワード操作:
0:ワード操作
1:バイト演算
デフォルトでは、命令は単語に対して機能することに注意してください。