Created
August 30, 2015 23:03
-
-
Save 0x000000AC/aa5504d44a8365384f5f to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
.LC0: | |
.string "ay" | |
.LC1: | |
.string "\nThis is the substring: %s\n" | |
.LC2: | |
.string "The first character of the word is %s\n" | |
.LC3: | |
.string "AyEnding: %s\n" | |
.LC4: | |
.string "Your word in Pig Latin is %s\n" | |
pigLatin(char*): | |
push rbp | |
mov rbp, rsp | |
push r15 | |
push r14 | |
push r13 | |
push r12 | |
push rbx | |
sub rsp, 88 | |
mov QWORD PTR [rbp-120], rdi | |
mov rax, rsp | |
mov rbx, rax | |
mov DWORD PTR [rbp-56], 0 | |
mov QWORD PTR [rbp-64], OFFSET FLAT:.LC0 | |
mov DWORD PTR [rbp-52], 0 | |
.L4: | |
mov eax, DWORD PTR [rbp-52] | |
movsx rdx, eax | |
mov rax, QWORD PTR [rbp-120] | |
add rax, rdx | |
movzx eax, BYTE PTR [rax] | |
test al, al | |
je .L2 | |
mov eax, DWORD PTR [rbp-52] | |
movsx rdx, eax | |
mov rax, QWORD PTR [rbp-120] | |
add rax, rdx | |
movzx eax, BYTE PTR [rax] | |
cmp al, 32 | |
je .L3 | |
add DWORD PTR [rbp-56], 1 | |
.L3: | |
add DWORD PTR [rbp-52], 1 | |
jmp .L4 | |
.L2: | |
mov rax, QWORD PTR [rbp-120] | |
movzx eax, BYTE PTR [rax] | |
mov BYTE PTR [rbp-97], al | |
mov BYTE PTR [rbp-96], 0 | |
mov eax, DWORD PTR [rbp-56] | |
cdqe | |
sub rax, 1 | |
mov QWORD PTR [rbp-72], rax | |
mov rdx, rax | |
add rdx, 1 | |
mov r10, rdx | |
mov r11d, 0 | |
mov rdx, rax | |
add rdx, 1 | |
mov r8, rdx | |
mov r9d, 0 | |
lea rdx, [rax+1] | |
mov eax, 16 | |
sub rax, 1 | |
add rax, rdx | |
mov ecx, 16 | |
mov edx, 0 | |
div rcx | |
imul rax, rax, 16 | |
sub rsp, rax | |
mov rax, rsp | |
add rax, 0 | |
mov QWORD PTR [rbp-80], rax | |
mov eax, DWORD PTR [rbp-56] | |
sub eax, 1 | |
movsx rdx, eax | |
mov rax, QWORD PTR [rbp-120] | |
lea rcx, [rax+1] | |
mov rax, QWORD PTR [rbp-80] | |
mov rsi, rcx | |
mov rdi, rax | |
call memcpy | |
mov rdx, QWORD PTR [rbp-80] | |
mov eax, DWORD PTR [rbp-56] | |
cdqe | |
mov BYTE PTR [rdx+rax], 0 | |
mov eax, DWORD PTR [rbp-56] | |
add eax, 3 | |
cdqe | |
sub rax, 1 | |
mov QWORD PTR [rbp-88], rax | |
mov rdx, rax | |
add rdx, 1 | |
mov r14, rdx | |
mov r15d, 0 | |
mov rdx, rax | |
add rdx, 1 | |
mov r12, rdx | |
mov r13d, 0 | |
lea rdx, [rax+1] | |
mov eax, 16 | |
sub rax, 1 | |
add rax, rdx | |
mov ecx, 16 | |
mov edx, 0 | |
div rcx | |
imul rax, rax, 16 | |
sub rsp, rax | |
mov rax, rsp | |
add rax, 0 | |
mov QWORD PTR [rbp-96], rax | |
mov rdx, QWORD PTR [rbp-80] | |
mov rax, QWORD PTR [rbp-96] | |
mov rsi, rdx | |
mov rdi, rax | |
call strcat | |
mov rax, QWORD PTR [rbp-96] | |
lea rdx, [rbp-97] | |
mov rsi, rdx | |
mov rdi, rax | |
call strcat | |
mov rax, QWORD PTR [rbp-96] | |
mov rdx, QWORD PTR [rbp-64] | |
mov rsi, rdx | |
mov rdi, rax | |
call strcat | |
mov rax, QWORD PTR [rbp-80] | |
mov rsi, rax | |
mov edi, OFFSET FLAT:.LC1 | |
mov eax, 0 | |
call printf | |
lea rax, [rbp-97] | |
mov rsi, rax | |
mov edi, OFFSET FLAT:.LC2 | |
mov eax, 0 | |
call printf | |
mov rax, QWORD PTR [rbp-64] | |
mov rsi, rax | |
mov edi, OFFSET FLAT:.LC3 | |
mov eax, 0 | |
call printf | |
mov rax, QWORD PTR [rbp-96] | |
mov rsi, rax | |
mov edi, OFFSET FLAT:.LC4 | |
mov eax, 0 | |
call printf | |
mov rsp, rbx | |
nop | |
lea rsp, [rbp-40] | |
pop rbx | |
pop r12 | |
pop r13 | |
pop r14 | |
pop r15 | |
pop rbp | |
ret | |
.LC5: | |
.string "Please enter a word." | |
.LC6: | |
.string "%s" | |
.LC7: | |
.string "\nThe String You Entered: %s" | |
main: | |
push rbp | |
mov rbp, rsp | |
sub rsp, 256 | |
mov edi, OFFSET FLAT:.LC5 | |
call puts | |
lea rax, [rbp-256] | |
mov rsi, rax | |
mov edi, OFFSET FLAT:.LC6 | |
mov eax, 0 | |
call scanf | |
lea rax, [rbp-256] | |
mov rsi, rax | |
mov edi, OFFSET FLAT:.LC7 | |
mov eax, 0 | |
call printf | |
lea rax, [rbp-256] | |
mov rdi, rax | |
call pigLatin(char*) | |
mov eax, 0 | |
leave | |
ret |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment