long
system_call(long number,
long _1, long _2, long _3, long _4, long _5, long _6)
{
long value;
register long r10 __asm__ ("r10") = _4;
register long r8 __asm__ ("r8") = _5;
register long r9 __asm__ ("r9") = _6;
__asm__ volatile ( "syscall"
: "=a" (value)
: "a" (number), "D" (_1), "S" (_2), "d" (_3), "r" (r10), "r" (r8), "r" (r9)
: "rcx", "r11", "cc", "memory");
return value;
}
int main(void) {
static const char message[] = "It works!" "\n";
/* system_call(write, standard_output, ...); */
system_call(1, 1, message, sizeof message, 0, 0, 0);
return 0;
}
bG9uZwpzeXN0ZW1fY2FsbChsb25nIG51bWJlciwKICAgICAgICAgICAgbG9uZyBfMSwgbG9uZyBfMiwgbG9uZyBfMywgbG9uZyBfNCwgbG9uZyBfNSwgbG9uZyBfNikKewogICAgbG9uZyB2YWx1ZTsKCiAgICByZWdpc3RlciBsb25nIHIxMCBfX2FzbV9fICgicjEwIikgPSBfNDsKICAgIHJlZ2lzdGVyIGxvbmcgcjggIF9fYXNtX18gKCJyOCIpICA9IF81OwogICAgcmVnaXN0ZXIgbG9uZyByOSAgX19hc21fXyAoInI5IikgID0gXzY7CgogICAgX19hc21fXyB2b2xhdGlsZSAoICJzeXNjYWxsIgogICAgICAgICAgICAgICAgICAgICA6ICI9YSIgKHZhbHVlKQogICAgICAgICAgICAgICAgICAgICA6ICJhIiAobnVtYmVyKSwgIkQiIChfMSksICJTIiAoXzIpLCAiZCIgKF8zKSwgInIiIChyMTApLCAiciIgKHI4KSwgInIiIChyOSkKICAgICAgICAgICAgICAgICAgICAgOiAicmN4IiwgInIxMSIsICJjYyIsICJtZW1vcnkiKTsKCiAgICByZXR1cm4gdmFsdWU7Cn0KCmludCBtYWluKHZvaWQpIHsKICAgIHN0YXRpYyBjb25zdCBjaGFyIG1lc3NhZ2VbXSA9ICJJdCB3b3JrcyEiICJcbiI7CgogICAgLyogc3lzdGVtX2NhbGwod3JpdGUsIHN0YW5kYXJkX291dHB1dCwgLi4uKTsgKi8KICAgIHN5c3RlbV9jYWxsKDEsIDEsIG1lc3NhZ2UsIHNpemVvZiBtZXNzYWdlLCAwLCAwLCAwKTsKCiAgICByZXR1cm4gMDsKfQ==