如何在AVR中将两个无符号数字相乘?

问题描述 投票:-2回答:1

我需要将两个无符号数字相乘(在这种情况下,数字是234和24),但是我不知道该怎么做。我需要将它们乘以而不使用寄存器R16,R17和R18(寄存器在代码箱中)。我试图通过仅输入mul 234, 24将它们相乘,但是ATMEL工作室告诉我,数字是无效的寄存器。微控制器是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
assembly avr atmega atmelstudio
1个回答
0
投票
.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
© www.soinside.com 2019 - 2024. All rights reserved.