Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- void
- my_test(const char* s, int arg1, int arg2, char arg3, short arg4, int arg5, int arg6)
- {
- puts(s);
- printf("%d\n", arg1);
- printf("%d\n", arg2);
- printf("%c\n", arg3);
- printf("%d\n", arg4);
- printf("%d\n", arg5);
- printf("%d\n", arg6);
- }
- int
- test_double(const char* s, double arg1, double arg2, double arg3, double arg4, double arg5, double arg6, double arg7, double arg8)
- {
- //puts(s);
- printf("%lf\n", arg1);
- /*printf("%lf\n", arg2);
- printf("%lf\n", arg3);
- printf("%lf\n", arg4);
- printf("%lf\n", arg5);
- printf("%lf\n", arg6);
- printf("%lf\n", arg7);
- printf("%lf\n", arg8);
- */
- return arg1 + arg8;
- }
- int
- main()
- {
- unsigned long long rax_value = 0;
- //unsigned long long args[] = { (unsigned long long)printf, (unsigned long long)"Hi! %d %d %d %d %d %d\n", 1, 2, 3, 4, 5, 48 };
- //unsigned long long args[] = { (unsigned long long)printf, (unsigned long long)"Hi! %d %d %d %d %d %lf\n", 1, 2, 3, 4, 5, (unsigned long long)((double)5.5) };
- //unsigned long long args[] = { (unsigned long long)my_test, (unsigned long long)"Hi! %d %d %d %d %d %d\n", 1, 2, 3, 4, 5, 48 };
- //unsigned long long args[] = { (unsigned long long)printf, (unsigned long long)"Hi! %d %d %d %d %d 1: %lf 2: %lf 3: %lf 4: %lf 5: %lf 6: %lf 7: %lf 8: %lf %lf %lf %lf %lf\n", 1, 2, 3, 4, 5, (unsigned long long)((double)5.5) };
- unsigned long long args[] = { (unsigned long long)test_double, (unsigned long long)"Hi! %d %d %d %d %d 1: %lf 2: %lf 3: %lf 4: %lf 5: %lf 6: %lf 7: %lf 8: %lf %lf %lf %lf %lf\n", 1, 2, 3, 4, 5, (unsigned long long)((double)5.5) };
- asm volatile(
- "pushq 56(%%rax);"
- "mov 8(%%rax), %%rdi;"
- "movq 16(%%rax), %%rsi;"
- "movq 24(%%rax), %%rdx;"
- "movq 32(%%rax), %%rcx;"
- "movq 40(%%rax), %%r8;"
- "movq 48(%%rax), %%r9;"
- "movq %%rax, %%rbx;"
- "xor %%rax, %%rax;"
- /*"notq %%mm0;"*/
- /*"pcmpeqd %%xmm0, %%xmm0;"*/
- "call *(%%rbx);"
- "popq %%rax;"
- : "=a"(rax_value)
- : "a"(args)
- : "rbx"
- );
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement