Как умножить два числа без знака в AVR? - PullRequest
0 голосов
/ 02 мая 2020

Мне нужно умножить два числа без знака (в данном случае это числа 234 и 24), однако я понятия не имею, как это сделать. Мне нужно умножить их без использования регистров R16, R17 и R18 (регистры присутствуют в коде ниже). Я попытался умножить их, просто набрав mul 234, 24, однако ATMEL stud ios говорит мне, что числа являются недействительными регистрами. Микроконтроллер ATmega8.

;
; Vjezba_1.asm
;
; Created: 4/29/2020 8:57:18 PM
; Author : Ilario
;
//1. zad
.DEF rez = R18
.DEF op1 = R17
.DEF op2 = R16
//2. zad
ldi op1, 67
ldi op2, 76
ldi rez, 0
//3. zad
Inc op1
add rez, op1
add rez, op2
//4. zad
dec rez
sub rez, op2
//5. zad
add  0x0F1AC2, 0xA2320F
//6. zad
mul 234, 24

start:
  inc r16
  rjmp start

1 Ответ

0 голосов
/ 02 мая 2020
.DEF varA = R20
.DEF varB = R21
 ldi varA, 245
 ldi varB, 24
 mul R20, R21
 ldi rezo2, 0
 ldi rezo1, 0
 add rezo1, R1
 add rezo2, R0
...