0
我正在寻找代码或帮助AVR这个功能。或者如果没有代码,我可以得到一些线索如何做到这一点?AVR函数计算
R20 = (4 * R16 + 3 * R17 - R18)/8
现在我有这样的事情:
.org 0x0000
start:
.DEF ANSL = R0
.DEF ANSH = R1
.DEF A = R19
.DEF B = R21
.DEF C = R22
.DEF D = R20
ldi A, 4
ldi B, 3
ldi C, 8
ldi R16, 5
ldi R17, 10
ldi R18, 58
MUL A,R16 (4 * R16)
MUL B,R17 (3 * R17)
add A,B (4 * R16 + 3*R17)
sub A, R18 (4 * R16+3*R17 - R18)
我不知道,如果它的代码是正确的。
最好的方法,看看你的代码是正确的是对它进行测试。 –
您可能想要尽可能早地重写公式以尽快完成除法操作,以避免寄存器溢出:2 * R16 +(3 * R17)/ 8 - R18/8(无论如何都会在您的代码中丢失分区) – tofro