- push ebp
- mov ebp, esp
-
- ; allocate vars
- sub esp, 8
- mov DWORD [ebp-CHAR_COUNT], 0x00
- mov DWORD [ebp-BLOCK_COUNT], 0x00
-
- push 64
- call malloc
- mov [ebp-STR_PTR], eax
-
- push DWORD [ebp-STR_PTR]
- push 0x00
- push 64
-
- _readLine_loop:
- ; if buffer is full
- cmp BYTE [ebp-CHAR_COUNT], 63 ; leave one byte for null byte
- jne _readLine_notfull
- jmp _readLine_exit
-
- _readLine_notfull:
- ; read a single character
- mov eax, 3
- mov ebx, [ebp+_FILE_HANDLE]
- mov ecx, [ebp-STR_PTR]
- add ecx, [ebp-CHAR_COUNT]
- mov edx, 1
- int 0x80