Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <string.h>
- int main() {
- char s[] = "afk surr20";
- int i = sizeof(s);
- int a;
- asm volatile(
- ".intel_syntax noprefix\n"
- "mov eax, %1\n"
- "xor ebx, ebx\n"
- "xor edx, edx\n"
- "loop:\n"
- "mov cl, [eax]\n"
- "cmp cl, 0\n"
- "jz finish\n"
- "cmp cl, ' '\n"
- "je loop2\n"
- "inc ebx\n"
- "inc eax\n"
- "inc edx\n"
- "jmp loop\n"
- "loop2:\n"
- "mov cl, [eax]\n"
- "cmp cl, 0\n"
- "jz finish\n"
- "inc eax\n"
- "inc edx\n"
- "jmp loop2\n"
- "finish:\n"
- "mov eax, %1\n"
- "mov esi, eax\n"
- "add eax, ebx\n"
- "mov edi, edx\n"
- "inc edi\n"
- "swap:\n"
- "mov al, [edi]\n"
- "mov cl, [esi]\n"
- "mov [esi], al\n"
- "mov [edi], cl\n"
- "inc esi\n"
- "dec edi\n"
- "sub ebx, 1\n"
- "cmp ebx, 0\n"
- "jg swap\n"
- ".att_syntax prefix\n"
- :"=r" (a)
- :"r" (s)
- : "eax", "ebx", "ecx", "edi", "esi", "edx"
- );
- printf("%s\n", s);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement