#include <iostream>
using namespace std;
int gcd(int var1, int var2) {
int result = 0;
__asm__ __volatile__ (
"movl %1, %%eax;"
"movl %2, %%ebx;"
"CONTD: cmpl $0, %%ebx;"
"je DONE;"
"xorl %%edx, %%edx;"
"idivl %%ebx;"
"movl %%ebx, %%eax;"
"movl %%edx, %%ebx;"
"jmp CONTD;"
"DONE: movl %%eax, %0;"
:"=r"(result)
:"r"(var1), "r"(var2)
);
return result;
}
int main(void) {
int first = 0, second = 0;
cin >> first >> second;
cout << "GCD is: " << gcd(first, second) << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKaW50IGdjZChpbnQgdmFyMSwgaW50IHZhcjIpIHsKICAgIGludCByZXN1bHQgPSAwOwogICAgX19hc21fXyBfX3ZvbGF0aWxlX18gKAoJCQkibW92bCAlMSwgJSVlYXg7IgoJCQkibW92bCAlMiwgJSVlYng7IgoJCQkiQ09OVEQ6IGNtcGwgJDAsICUlZWJ4OyIKCQkJImplIERPTkU7IgoJCQkieG9ybCAlJWVkeCwgJSVlZHg7IgoJCQkiaWRpdmwgJSVlYng7IgoJCQkibW92bCAlJWVieCwgJSVlYXg7IgoJCQkibW92bCAlJWVkeCwgJSVlYng7IgoJCQkiam1wIENPTlREOyIKCQkJIkRPTkU6IG1vdmwgJSVlYXgsICUwOyIKCQkJOiI9ciIocmVzdWx0KQoJCQk6InIiKHZhcjEpLCAiciIodmFyMikKCQkpOwogICAgcmV0dXJuIHJlc3VsdDsKfQoKaW50IG1haW4odm9pZCkgewoKICAgIGludCBmaXJzdCA9IDAsIHNlY29uZCA9IDA7CiAgICBjaW4gPj4gZmlyc3QgPj4gc2Vjb25kOwogICAgY291dCA8PCAiR0NEIGlzOiAiIDw8IGdjZChmaXJzdCwgc2Vjb25kKSA8PCBlbmRsOwoKICAgIHJldHVybiAwOwp9