アセンブリ言語の命令、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。 //ステータスレジスタの値、結果が負の数。