#pragma GCC optimize ("Og")
#include "ArduinoTrace.h"
volatile int8_t n=3,sum;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
Serial.println("INICIO");
//------------- Proceso en alto nivel -------------------
//do
body1:
//{
// sum=sum+n;
// n=n-1;
//}
asm volatile
(
"lds r16, sum \n"
"lds r17, n \n"
"add r16, r17 \n"
"sts sum, r16 \n"
"dec r17 \n"
"sts n, r17"
);
//while (n>0);
// if(n>0)
// {
// goto initdow;
// }
asm goto
(
"lds r16,n \n"
"cpi r16,1 \n"
"brlt %l[enddow1] \n" //si n<1 <--> n<=0 goto enddow1
"jmp %l[body1] \n"
::::body1,enddow1
);
enddow1:
//--------------------------------------------------------
DUMP(n);
DUMP(sum);
}
void loop() {
}