田舎の組み込みプログラマーがわざわざ趣味でも色々開発してみようとあがく様を綴るブログです。
DMM.makeのクリエイターズマーケットに出品しています。
構造化アセンブラもカテゴリーに ― 2015年09月09日
なんだか
構造化アセンブラについてもっと語りたくなってしまったのでカテゴリーを追加してみました。
先日の"MEM$_BIT_RESET"マクロは、よく考えてみるとリロケータブル領域のビットには使えませんし、通常の2000hより上位アドレスにある SFRのビットは".btequ"で定義されているのでこれまた使えずと、どや顔で紹介した割にはほとんどCAN部分専用という感じでした。
そこで
今回はもう少し使えそうな記述をご紹介します。
; 定義部
CAN0_MODE .define "[ c0str ].b & 11b"
CAN_OPERATION .equ 00b
CAN_RESET .equ 01b
CAN_HALT .equ 10b
; 実体記述部
for CAN0_MODE != CAN_OPERATION
next
; 展開結果
..fr0009:
MOV.B c0str,R0L
AND.B #11b,R0L
CMP.B #CAN_OPERATION,R0L
JEQ ..fr000b
JMP ..fr0009
..fr000b:
CANモジュールのモードがオペレーションモードに切り替わるのをfor文で待つ処理です。
条件は"=="も使えますし、do文やif文もありです。
こんなのはCでは当たり前の記述じゃないかと思われるかもしれませんが、アセンブラにこの記述を織り交ぜられるところがいいんです。
とまぁ、こんな感じで時々構造化アセンブラをごり押ししていこうと思います。
コメント
トラックバック
このエントリのトラックバックURL: http://trident.asablo.jp/blog/2015/09/09/7785665/tb

コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※投稿には管理者が設定した質問に答える必要があります。