2016-12-09 12 views
0

数値が30に格納されており、10で除算したいと考えています。私がしようとすると、位置に格納されている値の代わりに、レジスタの値が取得されます。私はWレジスタに表示されるはずです何変数に格納されている数値を数値で割り算する方法

HDUTY EQU 30 

MOVLW D'46' 
MOVWF HDUTY 

MOVLW (HDUTY/10) 
ADDLW '0'   ; Transform value to ASCII 
CALL  LCDDWR  ; Call function to display on LCD 

46/10 ≈ 4として4ですが、私はHDUTY変数がある位置の数のよう3を参照してください。変数を位置50に変更すると、結果として4の代わりに5が表示されます。変数に格納された数値を数値で除算するにはどうすればよいですか?

+0

どのマイクロコントローラですか? –

答えて

1

アセンブリ内の文の形式は次のようになります。

OPERATION ARGUMENT (...ARGUMENTS) 

総会があり二番目に低いレベルのプログラミング言語です。引数で発生する計算は、実行時ではなくアセンブラ時に行われます。

実行時に実行される計算は、操作または一連の操作として指定する必要があります。

あなたのPICにはおそらく分割演算コードがありませんので、自分で分割手続きを書く必要があります。

+0

一部のPICフレーバには、除算演算コード(例:dsPIC) – EBlake

+1

があります。 :) –

0

デフォルトのPIC数値ベースは16進数で、10は実際に16です。46/16≈3であるため、 '0'を追加した後で3になります。

関連する問題