Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- bits 64
- section .data
- section .text
- global to_hexa
- to_hexa:
- enter 0,0
- mov rcx, 0
- mov rax, 0
- mov r9, rdi
- mov r10, 7
- mov r11,0
- .back:
- cmp qword rcx, 8
- je .end
- mov r8, r9
- and r8, 0b1111
- cmp qword r8, 15
- je .F
- mov byte al, [rdx + r8]
- mov [rsi + r10], al
- jmp .continue
- .F:
- mov byte al, [rdx + r8]
- mov [rsi + r10], al
- inc r11
- .continue:
- shr r9, 4
- inc rcx
- dec r10
- jmp .back
- .end:
- mov rax, r11
- leave
- ret
- global turtle ;int turtle(char* cmds, int32_t start[2], int32_t end[2])
- turtle:
- enter 0,0
- mov r8, 0
- mov eax, [rsi]
- mov ecx, [rsi + 1 * 4]
- .back:
- cmp byte[rdi + r8], 0
- je .end
- cmp byte[rdi + r8], 'U'
- je .u
- cmp byte[rdi + r8], 'D'
- je .d
- cmp byte[rdi + r8], 'L'
- je .l
- cmp byte[rdi + r8], 'R'
- je .r
- inc r8
- jmp .continue
- .u:
- inc ecx
- inc r8
- jmp .continue
- .d:
- dec ecx
- inc r8
- jmp .continue
- .l:
- dec eax
- inc r8
- jmp .continue
- .r:
- inc eax
- inc r8
- jmp .continue
- .continue:
- jmp .back
- .end:
- mov [rdx], eax
- mov [rdx + 1 * 4], ecx
- mov rax, r8
- leave
- ret
- global convert
- convert:
- enter 0,0
- mov rcx, 0
- mov r10, 1
- mov r9, 0
- .back:
- cmp rcx, rdx
- je .end
- mov r8,[rdi + rcx * 4]
- and r8, 0xFFFF0000
- shr r8, 16
- mov [rsi + r9 * 2], r8
- mov r8, [rdi + rcx * 4]
- and r8, 0xFFFF
- mov [rsi + r10 * 2], r8
- inc rcx
- add r9, 2
- add r10, 2
- jmp .back
- .end:
- leave
- ret
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement