- ベストアンサー
PICアセンブラのニーモニックオペランドで理解不能
独学中の初心者です。初歩的な質問で恐縮ですが色々調べてもわからず、何日間も頭を悩ませています。どのアセンブラ解説書にも書いてあることですが、例えば、 RLF f,d について、結果を d=0であれば、wレジスタに d=1であれば、レジスタfに格納する デフォルトはd=1 と解説してありますが、実際のプログラムでは R1 EQU 0x34 RLF R1,F 等とあり、上記'R1,F'の'F'の値がプログラム中で定義されていません。 この'F'の値をどう考えればいのでしょうか。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
アセンブラの冒頭でマイコンの種類とインクルード・ファイルを指定しますよね。 PIC16F84aを使用するなら下記のように..... list p=16f84a include p16f84a.inc W,Fやレジスタ名などはこのインクルード・ファイル(p16f84a.inc)内で定義されています。 p16f84a.incファイルをメモ帳などで開いて見てください、他にどのような物が定義されているか解るでしょう。
その他の回答 (3)
インクルードファイル中にF equ 1などと定義されているはずです。 RLF R1,1と書いても同じことですね。
お礼
簡潔、的確な御指導ありがとうございました。
- zwi
- ベストアンサー率56% (730/1282)
Fは値でもなくニーモニックの一部としてアセンブラが処理するなら、定義されていないのは当たり前だと思いますよ。定義されているのは見ることが出来ないアセンブラ本体のプログラムコードの中です。 と言うかdってニーモニック上はFかWで記載されているはずなんですが他の命令も見なおしてみてください。 アセンブラが勝手に処理するという理解で良いんです。
お礼
御指導ありがとうございました。独学とはいえ、努力不足を感じます。努力のアクセルを踏み込みます。
- zwi
- ベストアンサー率56% (730/1282)
PICをだいぶ忘れてるけど。 ニーモニック上はFレジスタって意味じゃなかったかと。 つまりd=1として機械語が生成されるってことでは?
お礼
御回答ありがとうございます。複数のPICアセンブラ解説書やネット上のQ/Aを可能な限り調べましたが、私の疑問に答える解説を見つけることができません。疑問を解決する明確な説明を読み、すっきりしたいのですが、、
お礼
明確な御指導ありがとうございました。お蔭さまで先へ進む力が湧きました。