diff --git a/file.asm b/file.asm index 73e3859..d2ecb67 100644 --- a/file.asm +++ b/file.asm @@ -18,7 +18,7 @@ section .text global fclose global fwrite -;----- fopen(const char *filename, const char *mode) -----; +;----- fopen(const char *filename, const char mode) -----; ; return value: pointer to file or value < 0 (neg errno) if file failed to open ; ┌─────────────┬───────────────────────────────┐ ; │fopen() mode │ open() flags │ @@ -39,17 +39,17 @@ fopen: push rbp mov rbp, rsp - cmp byte [rsi], 'r' + cmp sil, 'r' je .setMode_r - cmp byte [rsi], 'w' + cmp sil, 'w' je .setMode_w - cmp byte [rsi], 'a' + cmp sil, 'a' je .setMode_a - cmp byte [rsi], 'R' + cmp sil, 'R' je .setMode_R - cmp byte [rsi], 'W' + cmp sil, 'W' je .setMode_W - cmp byte [rsi], 'A' + cmp sil, 'A' je .setMode_A mov rax, -22 jmp .quit diff --git a/tests.asm b/tests.asm index 41ae523..eb20381 100644 --- a/tests.asm +++ b/tests.asm @@ -149,7 +149,6 @@ section .rodata ; fopen(), fwrite(), fclose() testFile1 db "testFile1.txt",EOS fileStr1 db "Hello file world!",EOS - fileMode_w db "w",EOS msgFileB db NL,"# fopen(), fwrite(), fclose()",EOS msgFileB1 db "TEST fopen('testFile1.txt', 'w'): %d",NL,EOS msgFileB2 db "TEST fwrite(filePointer1, fileStr1): %d",NL,EOS @@ -733,7 +732,7 @@ main: ; TEST: fopen() lea rdi, [rel testFile1] - lea rsi, [rel fileMode_w] + mov rsi, 'w' call fopen mov r15, rax ;store filepointer to R15 mov rsi, rax