#include <stdio.h>
unsigned int hoge(void);
__asm__(
"hoge:\n\t"
"pushl %ebx\n\t"
"subl $4, %esp # allocate a buffer\n\t"
"leal 1(%esp), %ebx\n\t"
"pushl %ebx # where to store the second character\n\t"
"decl %ebx\n\t"
"pushl %ebx # where to store the first character\n\t"
"pushl $str1\n\t"
"call scanf\n\t"
"add $12, %esp # discard the arguments\n\t"
"movzwl (%esp), %ebx\n\t"
"addl $4, %esp # discard the buffer\n\t"
"movl %ebx, %eax\n\t"
"popl %ebx\n\t"
"ret\n\t"
"# put this where won't be executed\n\t"
"str1: .asciz \"%c %c\"\n\t"
);
int main(void) {
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp1bnNpZ25lZCBpbnQgaG9nZSh2b2lkKTsKX19hc21fXygKICAgICJob2dlOlxuXHQiCiAgICAicHVzaGwgJWVieFxuXHQiCgogICAgInN1YmwgICAgJDQsICAgICAgJWVzcCAjIGFsbG9jYXRlIGEgYnVmZmVyXG5cdCIKICAgICJsZWFsICAgIDEoJWVzcCksICVlYnhcblx0IgogICAgInB1c2hsICAgJWVieCAgICAgICAgICAjIHdoZXJlIHRvIHN0b3JlIHRoZSBzZWNvbmQgY2hhcmFjdGVyXG5cdCIKICAgICJkZWNsICAgICVlYnhcblx0IgogICAgInB1c2hsICAgJWVieCAgICAgICAgICAjIHdoZXJlIHRvIHN0b3JlIHRoZSBmaXJzdCBjaGFyYWN0ZXJcblx0IgogICAgInB1c2hsICAgJHN0cjFcblx0IgogICAgImNhbGwgICAgc2NhbmZcblx0IgogICAgImFkZCAgICAgJDEyLCAgICAgJWVzcCAjIGRpc2NhcmQgdGhlIGFyZ3VtZW50c1xuXHQiCiAgICAibW92endsICAoJWVzcCksICAlZWJ4XG5cdCIKICAgICJhZGRsICAgICQ0LCAgICAgICVlc3AgIyBkaXNjYXJkIHRoZSBidWZmZXJcblx0IgoKCiAgICAibW92bCAlZWJ4LCAlZWF4XG5cdCIKICAgICJwb3BsICVlYnhcblx0IgogICAgInJldFxuXHQiCgogICAgIiMgcHV0IHRoaXMgd2hlcmUgd29uJ3QgYmUgZXhlY3V0ZWRcblx0IgogICAgInN0cjE6IC5hc2NpeiBcIiVjICVjXCJcblx0IgopOwoKaW50IG1haW4odm9pZCkgewogICAgcHJpbnRmKCIleFxuIixob2dlKCkpOwoJcmV0dXJuIDA7Cn0K