0
Я ищу код или помощь с AVR для этой функции. Или, если нет кода, я могу понять, как это сделать?Функция AVR Compute
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