#pragma GCC optimize "-Og"
#include "ArduinoTrace.h"
volatile byte a=10,b=10;
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
// asm volatile
// (
// "lds r24,a \n" // carga a r24 a
// "lds r20,b \n" // carga a r20 b
// "add r24,r20 \n" // sumando a + b (r24 + r20) ---- 20
// "ldi r19,6 \n" // subiendo la constante 6 a r19
// "sub r24,r19 \n" // resta entre a - 6 (r24-r19) // 20 -6 = 14
// "add r20,r19 \n" // suma b + 6
// "sts a,r24 \n" // coloca A a el valor almacenado en r24
// "sts b,r20 \n" // coloca a b el valor almacenado en r20
// :
// :
// :"r24","r20","r19"
// );
asm volatile(
"add %0,%1 \n"
"ldi %2,%3 \n"
"sub %0,%2 \n"
"add %1,%2"
:"+r" (a),"+r" (b)
:"d" (a),"M" (6)
:
);
DUMP(a);
DUMP(b);
}
void loop() {
// put your main code here, to run repeatedly:
}