format ELF64 executable segment readable executable main: ;; No arg preload case cmp [rsp], word 1 jne argparse mov r8, qword 3 mov r9, qword 2 mov r10, qword 3 jmp generate argparse: ;; Check args (need 3) cmp [rsp], word 3 jle fail ;; load arg1 mov r8, [rsp+16] mov r8, [r8] and r8, 0xFF sub r8, 48 ;; load arg2 mov r9, [rsp+24] mov r9, [r9] and r9, 0xFF sub r9, 48 ;; load arg3 mov r10, [rsp+32] mov r10, [r10] and r10, 0xFF sub r10, 48 jmp generate ok: ;; Write mov rdi, 1 ;; stdout mov rdx, rsi mov rsi, out_buf mov rax, 0x01 syscall ;; Exit (code 0) mov rdi, 0 mov rax, 0x3c syscall fail: ;; Write mov rdi, 1 ;; stdout mov rsi, usage mov rdx, usage_len mov rax, 0x01 syscall ;; Exit 1 mov rdi, 1 mov rax, 0x3c syscall include 'pasmgen.inc' segment readable writeable include 'constants.inc' out_buf rb 64