From ef19cbda505faabf31edda639ac993e3425da55e Mon Sep 17 00:00:00 2001 From: Kwarde Date: Fri, 27 Jun 2025 19:05:14 +0200 Subject: [PATCH] Add file descriptor constants --- src/console.asm | 11 +++++++---- src/constants.asm | 9 +++++++++ src/file.asm | 5 +++-- 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/src/console.asm b/src/console.asm index 64263c7..f5c4456 100644 --- a/src/console.asm +++ b/src/console.asm @@ -1,6 +1,9 @@ extern EOS extern NL extern NR_write +extern FD_stdin +extern FD_stdout +extern FS_stderr extern strlen extern itoa @@ -64,7 +67,7 @@ print: mov rdx, rax mov rax, NR_write mov rsi, rdi - mov rdi, 1 + mov rdi, FD_stdout syscall ret ;----- puts (char* string) -----; @@ -74,7 +77,7 @@ puts: call print mov rdi, r10 mov rax, NR_write - mov rdi, 1 + mov rdi, FD_stdout mov rsi, bNL mov rdx, 1 syscall @@ -244,7 +247,7 @@ printf: push r8 push r9 mov rax, NR_write - mov rdi, 1 + mov rdi, FD_stdout lea rsi, [rel printfBuff] mov rdx, r14 mov byte [r11], 0x0 @@ -267,7 +270,7 @@ printf: .finish: mov byte [r11], 0x0 mov rax, NR_write - mov rdi, 1 + mov rdi, FD_stdout lea rsi, [rel printfBuff] mov rdx, r14 add r13, r14 diff --git a/src/constants.asm b/src/constants.asm index a0f55e5..1b363e7 100644 --- a/src/constants.asm +++ b/src/constants.asm @@ -4,6 +4,10 @@ section .rodata global NR_open global NR_close global NR_exit + + global FD_stdin + global FD_stdout + global FD_stderr global EOS global NL @@ -15,6 +19,11 @@ section .rodata NR_close equ 3 NR_exit equ 60 + ;file descriptors + FD_stdin equ 0 + FD_stdout equ 1 + FD_stderr equ 2 + ;ascii EOS equ 0x0 NL equ 0xA diff --git a/src/file.asm b/src/file.asm index 6816d81..4293d28 100644 --- a/src/file.asm +++ b/src/file.asm @@ -1,3 +1,4 @@ +extern FD_stderr extern NR_read extern NR_write extern NR_open @@ -80,8 +81,8 @@ fclose: ; writes a string to opened file ; return value: amount of written characters on success, below 0 otherwise (neg errno) fwrite: - cmp rdi, 3 - jl .ebadf + cmp rdi, FD_stderr + jle .ebadf mov r9, rdi mov rdi, rsi