diff options
Diffstat (limited to 'src/u_print.S')
-rw-r--r-- | src/u_print.S | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/u_print.S b/src/u_print.S new file mode 100644 index 0000000..3866868 --- /dev/null +++ b/src/u_print.S @@ -0,0 +1,28 @@ +.text +.extern u_strlen +.globl u_pout +.globl u_perr + +u_pout: + movq $0x1, %r11 # stdout + jmp u_print + +u_perr: + movq $0x2, %r11 # stderr + jmp u_print + +u_print: + callq u_strlen + movq %rax, %rdx + movq %rdi, %rsi + movq %r11, %rdi + movq $0x4, %rax # SYS_write + syscall + leaq nl, %rsi + movq $0x1, %rdx + movq $0x4, %rax # SYS_write + syscall + retq + +.data +nl: .asciz "\n" |