X-Git-Url: https://git.danieliu.xyz/?a=blobdiff_plain;f=fileutils.asm;h=54c989534f86bebb62aac83c79b8ee3f2f93dbd2;hb=0e7c787c5d6e31bd64fb9348c1cc4704d5b5928e;hp=1d78439ca5a072ae29cac9d6fedb9abd905d6c84;hpb=89732d399de9007aaf2894b0c637e8cfb9ed47ac;p=sped.git diff --git a/fileutils.asm b/fileutils.asm index 1d78439..54c9895 100644 --- a/fileutils.asm +++ b/fileutils.asm @@ -1,5 +1,5 @@ -%include "utils.S" +%include "macros.S" extern printf extern malloc @@ -14,6 +14,7 @@ global writeFile section .data wrongfile_str db `unable to open file, error code: %i\n`, 0x00 + returnvalue_str db `system call return was %i\n`, 0x00 section .text @@ -60,15 +61,15 @@ readFile: _readFile_loop: - ; check if eof was reached - cmp DWORD [ebp-IS_EOF], 1 - je _readFile_exit - push DWORD [ebp-FILE_HANDLE] call readLine - mov esi, eax mov [ebp-IS_EOF], ebx + + ; check if eof was reached + cmp DWORD [ebp-IS_EOF], 1 + je _readFile_exit + ; push esi ; call printf @@ -233,11 +234,13 @@ writeFile: ; check if file was open successfully cmp eax, 0 - jge _writeFile_loop - push eax - push wrongfile_str - call printf - jmp _writeFile_exit + jl _writeFile_error + + ; truncate file + mov eax, 93 + mov ebx, [ebp-FILE_HANDLE] + mov ecx, 1 + int 0x80 _writeFile_loop: @@ -262,6 +265,12 @@ writeFile: jmp _writeFile_loop + _writeFile_error: + push eax + push wrongfile_str + call printf + jmp _writeFile_exit + _writeFile_exit: ; close file