#include <iostream>
int main() {
int var1 = 10; // Первая переменная
int var2 = 0; // Вторая переменная
int var3 = 0; // Третья переменная
// Ассемблерная вставка для перемещения данных
asm(
"movl %1, %0\n\t" // var1 -> var2
"movl %0, %2" // var2 -> var3
: "=r" (var2), "=r" (var3)
: "r" (var1), "0" (var2), "1" (var3)
);
std::cout << "var1: " << var1 << std::endl;
std::cout << "var2: " << var2 << std::endl;
std::cout << "var3: " << var3 << std::endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKaW50IG1haW4oKSB7CiAgICBpbnQgdmFyMSA9IDEwOyAgLy8g0J/QtdGA0LLQsNGPINC/0LXRgNC10LzQtdC90L3QsNGPCiAgICBpbnQgdmFyMiA9IDA7ICAgLy8g0JLRgtC+0YDQsNGPINC/0LXRgNC10LzQtdC90L3QsNGPCiAgICBpbnQgdmFyMyA9IDA7ICAgLy8g0KLRgNC10YLRjNGPINC/0LXRgNC10LzQtdC90L3QsNGPCgogICAgLy8g0JDRgdGB0LXQvNCx0LvQtdGA0L3QsNGPINCy0YHRgtCw0LLQutCwINC00LvRjyDQv9C10YDQtdC80LXRidC10L3QuNGPINC00LDQvdC90YvRhQogICAgYXNtKAogICAgICAgICJtb3ZsICUxLCAlMFxuXHQiIC8vIHZhcjEgLT4gdmFyMgogICAgICAgICJtb3ZsICUwLCAlMiIgICAgIC8vIHZhcjIgLT4gdmFyMwogICAgICAgIDogIj1yIiAodmFyMiksICI9ciIgKHZhcjMpCiAgICAgICAgOiAiciIgKHZhcjEpLCAiMCIgKHZhcjIpLCAiMSIgKHZhcjMpCiAgICApOwoKICAgIHN0ZDo6Y291dCA8PCAidmFyMTogIiA8PCB2YXIxIDw8IHN0ZDo6ZW5kbDsKICAgIHN0ZDo6Y291dCA8PCAidmFyMjogIiA8PCB2YXIyIDw8IHN0ZDo6ZW5kbDsKICAgIHN0ZDo6Y291dCA8PCAidmFyMzogIiA8PCB2YXIzIDw8IHN0ZDo6ZW5kbDsKCiAgICByZXR1cm4gMDsKfQo=