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

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

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

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

SUBLW命令の解説。

 

書式;SUBLW       k

           kは、リテラルデータ 0~255(0x00~0xFF)。

動作;   k - W ➡  W

   リテラルデータからワーキングレジスタの内容を減算し、ワーキングレジスタに上書き。

     (0x01~0x0x7F(1~127)が正の数、0xFF~0x81(-1~ー127)が負の数。)  

    C;結果が0または正の数 ➡ 1、結果が負の数 ➡ 0。

   DC;影響しない   

   Z;結果が0 ➡ 1、結果が正または負の数 ➡ 0。

 

例; 

 1.   

    W  0x1F(31)     //命令実行前の値

    k  0x3A(58)     //命令実行前の値(リテラルデータ)

       SUBLW    0x3A    //命令実行

    kからWの内容を減算して、ワーキングレジスタに上書き。

    W  0x1B(27)     //命令実行後の値

    C➡1。      //ステータスレジスタの値、結果が正の数。

    Z➡0。      //ステータスレジスタの値、結果が正の数。

 

 2. 

    W  0x65(101)     //命令実行前の値

    k  0x65(101)     //命令実行前の値(リテラルデータ)

       SUBLW    0x65   //命令実行

    kからWの内容を減算して、ワーキングレジスタに上書き。

    W  0x00(0)     //命令実行後の値

    C➡1。      //ステータスレジスタの値、結果が0。

    Z➡1。      //ステータスレジスタの値、結果が0。

 

 3. 

    W  0x25(37)     //命令実行前の値

    k  0x0A(10)     //命令実行前の値(リテラルデータ)

       SUBLW    0x0A   //命令実行

    kからWの内容を減算して、ワーキングレジスタに上書き。

    W  0xE5(-27)  //命令実行後の値

    C➡0。      //ステータスレジスタの値、結果が負の数。

    Z➡0。      //ステータスレジスタの値、結果が負の数。