如何将存储在变量中的数字除以数字

时间:2016-12-09 21:02:09

标签: assembly pic

我有一个号码存储在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注册表中看到的446/10 ≈ 4,但我看到3位置的HDUTY 50变量是。如果我将变量更改为5位置,我会看到4而不是value。如何用变量对存储在变量中的数字进行除法?

2 个答案:

答案 0 :(得分:1)

程序集中语句的格式如下所示:

OPERATION   ARGUMENT (...ARGUMENTS)

汇编是第二种最低级别的编程语言。参数中发生的任何计算都将在汇编程序时发生,而不是在运行时发生。

在运行时完成的计算必须由您指定,作为一个操作或一系列操作。

您的PIC可能没有分区操作码,因此您必须自己编写一个除法程序。

答案 1 :(得分:0)

默认的PIC数字基数是十六进制的 - 10实际上是16.由于46 /16≈3,在添加' 0'后得到3。