Запись на следующую строку в файле - Assembler/emu8086
Формулировка задачи:
Суть заключается в том, что необходимо открыть существующий текстовый файл и на новой строке записать введеную информацию. У меня получилось реализовать открытие и запись информации, правда информация записывается начиная с 0 индекса в файле. Буду ради помощи
Решение задачи: «Запись на следующую строку в файле»
textual
Листинг программы
.model small .stack 100h .data InFileName db 'data.txt', 0 InFileHandler dw ? errFileOpen db 'File open error', '$' errFileLSeek db 'File lseek error', '$' errFileWrite db 'File write error', '$' errFileClose db 'File close error', '$' Buffer db 0Dh, 0Ah, 'The new line was append', 0Dh, 0Ah BufLen dw $-Buffer CrLf db 0Dh, 0Ah, '$' .code main proc mov ax, @data mov ds, ax ;открытие файлов mov ah, 3Dh mov al, 02h ;открыть для чтения и записи lea dx, InFileName int 21h jnc @@InFileOpenOk mov ah, 09h lea dx, errFileOpen int 21h jmp @@Exit @@InFileOpenOk: mov [InFileHandler], ax mov ax, 4202h mov bx, [InFileHandler] xor cx, cx xor dx, dx int 21h jnc @@InFileLSeekOk mov ah, 09h lea dx, errFileLSeek int 21h jmp @@CloseIfFileAndExit @@InFileLSeekOk: mov ah, 40h mov bx, [InFileHandler] mov cx, [BufLen] lea dx, [Buffer] int 21h jnc @@InFileWriteOk mov ah, 09h lea dx, errFileWrite int 21h jmp @@CloseIfFileAndExit @@InFileWriteOk: @@CloseIfFileAndExit: mov ah, 3Eh mov bx, InFileHandler int 21h jnc @@Exit mov ah, 09h lea dx, errFileClose int 21h @@Exit: mov ax, 4C00h int 21h main endp end main
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д