我有一个号码存储在30
位置,我希望将其除以10
。当我尝试这样做时,它获取它所在的寄存器的值,而不是存储在该位置的值。
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
我应该在W
注册表中看到的4
为46/10 ≈ 4
,但我看到3
位置的HDUTY
50
变量是。如果我将变量更改为5
位置,我会看到4
而不是value
。如何用变量对存储在变量中的数字进行除法?
答案 0 :(得分:1)
程序集中语句的格式如下所示:
OPERATION ARGUMENT (...ARGUMENTS)
汇编是第二种最低级别的编程语言。参数中发生的任何计算都将在汇编程序时发生,而不是在运行时发生。
在运行时完成的计算必须由您指定,作为一个操作或一系列操作。
您的PIC可能没有分区操作码,因此您必须自己编写一个除法程序。
答案 1 :(得分:0)
默认的PIC数字基数是十六进制的 - 10实际上是16.由于46 /16≈3,在添加' 0'后得到3。