Работа с файлами в masm32
Я пишу алгоритм для такой задачи: На диске имеется файл in.txt, в котором записано несколько строк, содержащих не более 9 слов каждая (необходимо самостоятельно подготовить файл in.txt, где в качестве символов можно использовать только английские буквы). Нужно подсчитать количество букв "а" в каждой строке и записать результат в файл out.txt.
Я написал код, который считывает текст из in.txt в буфер и записывает его в out.txt. Подскажите, как я могу достать из буфера по одному очередному символу, чтобы сравнить его?
.386
.model flat, stdcall
option casemap :none
include includes\windows.inc
include includes\kernel32.inc
include includes\masm32.inc
include includes\msvcrt.inc
include includes\macros\macros.asm
includelib includes\masm32.lib
includelib includes\msvcrt.lib
SEEK_SET = 0
SEEK_CUR = 1
SEEK_END = 2
.data
fInputName db 'in.txt', 0
fOutputName db 'out.txt', 0
fMessageError db '%s Not found',0
fReadMode db 'r+',0
fCreateMode db 'w+',0
stringMode db '%s', 10, 0
bufInput dd 0
.data?
handleInput dd ?
handleOutput dd ?
fInputSize dd ?
.code
start:
invoke crt_fopen, ADDR fInputName, ADDR fReadMode
or eax,eax
jnz @F
invoke crt_printf, fMessageError, ADDR fInputName
jmp endkol
@@:
mov [handleInput], eax
invoke crt_fseek, eax, NULL, SEEK_END
invoke crt_ftell, [handleInput]
mov [fInputSize], eax
invoke crt_fseek, [handleInput], NULL, SEEK_SET
invoke crt_malloc, [fInputSize]
or eax, eax
jz endkol
mov [bufInput],eax
invoke crt_fread, [bufInput], [fInputSize], 1, [handleInput]
invoke crt_fclose, [handleInput]
invoke crt_fopen, ADDR fOutputName, ADDR fCreateMode
mov [handleOutput], eax
invoke crt_fwrite, [bufInput], fInputSize, 1, handleOutput
endkol:
invoke crt_free, [bufInput]
invoke crt_exit, 0
end start