[英]Assembly IA-32: How to divide 64-bit signed number by odd number (stored in 2 registers)
[英]How to divide a number stored in a variable by a number
我在位置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
。 如何将存储在变量中的数字除以数字?
汇编中的语句格式如下:
OPERATION ARGUMENT (...ARGUMENTS)
汇编是第二种最低级别的编程语言。 参数中发生的任何计算都将在汇编器时间而不是运行时发生。
在运行时完成的计算必须由您指定为一个操作或一系列操作。
您的PIC可能没有除法操作码,因此您必须自己编写除法过程。
PIC的默认数字基数是十六进制-10实际上是16。由于46/16≈3,所以加0后得到3。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.