« 「理想のポタ赤を作る」仕様発表 | トップページ | 「天文屋のためのマイコン入門」インクリメント、デクリメント »

2014年5月13日 (火)

「天文屋のためのマイコン入門」演算命令の続き

だいぶお休みしましたが、また再開したいと思います。

演算命令、加算命令だけ紹介しましたね。

今日はその他の演算命令について説明します。まずは減算命令です。

加算の時と同じように考えると減算命令も加算とまったく同じで、ADDをSUBに変えれば完成します。

1405131_2 

ただし、減算は加算と違って、可換ではありません。引き算の順序が重要です。上記の表を見ると、ワーキングレジスタからデータメモリを引く命令がありません。ほんとはあってもよさそうなのですが、命令の節約でしょうか?ありません。

仕方がないので、データメモリから、ワーキングレジスタを引いたものを符号反転します。符号反転は0から引けばできます。

例 ワーキングレジスタからデータメモリの減算
SUBWF   f , W      データメモリからワーキングレジスタを減算
SUBLW   0     それを0から引く、つまり符号反転

あと、ワーキングレジスタから数値を引く命令もありませんが、これは数値の符号を反転して加算に変えれば実現できます。

例 ワーキングレジスタから3を引く
ADDLW    -3        -3にワーキングレジスタを足す

さて、加算、減算命令が完成しましたが、そのほかに論理演算命令があります。これらは具体的にどのように使うかは以後説明しますが、命令だけ書いておきます。

論理和 ADDをIORに変える
論理積 ADDをANDに変える
排他的論理和 ADDをXORに変える

1405132

以上で2項の演算命令の説明は終わりです。

|

« 「理想のポタ赤を作る」仕様発表 | トップページ | 「天文屋のためのマイコン入門」インクリメント、デクリメント »

コメント

コメントを書く



(ウェブ上には掲載しません)




« 「理想のポタ赤を作る」仕様発表 | トップページ | 「天文屋のためのマイコン入門」インクリメント、デクリメント »