PICを、アセンブリ言語のプログラムで使う。

PICで電子工作をするため、アセンブリ言語プログラムを使い始める。

当ブログをご覧いただき、ありがとうございます。
ご注意事項:
記載内容には、十分注意しておりますが、勘違い、記憶違い、理解不足、思い込み等が無いとは限りませんので、申し訳ありませんが、 記載内容の正確性は保障致しません(出来ません)。
従いまして、このブログの内容を参考にする事に起因して生じる、または 生じた、いかなる事態にも、当方は何の責任も取れませんので、 参考にされる場合は、自己責任にてお願い致します。
このブログのアセンブリ言語に関する説明には、PICで電子工作するのに必要な事柄以外(私のレベルで)は出てきません、ご了承願います。

アセンブリ言語の命令、IORWF命令。

IORWF命令の解説。

 

書式;IORWF       f,d

         

   fは、汎用レジスタアドレス 0~127(0x00~0x7F)、または、ラベル。

   dは、結果の上書き先が、ワーキングレジスタか、汎用レジスタの選択。

動作;W OR f ➡ W or f

   ワーキングレジスタの内容と汎用レジスタのORを計算し、結果をdで指定されたレジスタに上書き。          

    C;影響しない

   DC;影響しない   

   Z;計算結果が0の時➡1、それ以外➡0。

例;

 1.   汎用レジスタ番地;0x30とする。

    W  0x65     //命令実行前の値

    f  0x96     //命令実行前の値(0x30番地の汎用レジスタの内容)

    d  0      //書き込み先のレジスタ指定

    IORWF     0x30,0   //命令実行

    W  0b01010101  //0x65の2進数  

    f  0b10010110  //0x96の2進数

    OR   0b11010111   //wとkのORを計算、結果が0ではない。

    W  0xD7     //命令実行後の値、dが0だから、こちらに上書き。

    f  0x96     //命令実行後の値、こちらは、変化なし。

    Z➡0。 //ステータスレジスタの値

 

 2.    汎用レジスタ番地;0x30(ラベル;Data)とする。 

    W  0x55     //命令実行前の値

    f  0x96     //命令実行前の値(0x30番地の汎用レジスタの内容)

    d  1      //書き込み先のレジスタ指定

    IORWF     Data,1   //命令実行

    W  0b01010101  //0x55の2進数

    f  0b10101010  //0xAAの2進数

    AND 0b11111111   //wとkのORを計算、結果が0ではない。

    W  0x55     //命令実行後の値、こちらは、変化なし。

    f  0xFF     //命令実行後の値、dが1だから、こちらに上書き。

    Z➡0。 //ステータスレジスタの値