#pragma GCC optimize "-Og"
#include "ArduinoTrace.h"
volatile byte a=5,b=6,c=6;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
//------------ process -----------------------
// if (a>b||b==c)
// {
// a=a-b;
// }
// else
// {
// a=a+b;
// }
// if (a>b||b==c)
// {
// goto L10;
// }
// else
// {
// goto L20;
// }
asm goto
(
"lds r24,b \n"
"lds r20,a \n"
"cp r24,r20 \n" //r24 <---- b-a
"in r20,0x3f \n"
"sbrc r20,0 \n"
"rjmp %l[L10] \n"
// "rjmp %l[L10] \n"
// "LI10:"
"lds r20,c \n"
"cp r24,r20 \n" //r24 z <-------- b-c
"in r24,0x3f \n"
"sbrs r24,1 \n"
"rjmp %l[L20]"
:
:
:"r24","r20"
:L10,L20
);
L10:
a=a-b;
goto L30;
L20:
a=a+b;
L30:
//---------------------------------------------
DUMP(a);
}
void loop() {
// put your main code here, to run repeatedly:
}