Запись в файл пяти строк, введенных с клавиатуры - Assembler
Формулировка задачи:
напишите пожалуйста программу))я не силен в ассемблере так как изучал другой язык но сменился препод и внезапно нам дали ассемблер)) до этого изучал с_шарп
Дан пустой текстовый файл 123.txt, записать в него пять строк введенных с клавиатуры.
заранее спасибо.
Решение задачи: «Запись в файл пяти строк, введенных с клавиатуры»
textual
Листинг программы
.model small .386 .stack 100h .data filename db '123.txt',0 handle dw ? buf db 100,0,100 dup(0) msg1 db 'file wasn"t opened!!!$' msg2 db 'writing fail$' .code start: mov ax,@data mov ds,ax mov ah,3Dh mov al,1 lea dx,filename int 21h jc open_error mov handle,ax mov cx,5 getstring: push cx mov ah,0Ah lea dx,buf int 21h mov ah,02h mov dl,0Ah int 21h mov ah,02h mov dl,0Dh int 21h xor bh,bh mov bl,buf+1 mov cx,bx add cx,2 mov byte ptr [buf+3+bx],0Ah mov ah,40h mov bx,handle lea dx,buf+2 int 21h jc write_error pop cx loop getstring jmp exit open_error: mov ah,09h lea dx,msg1 int 21h jmp exit write_error: mov ah,09h lea dx,msg2 int 21h exit: mov ah,4Ch mov al,00h int 21h end start
Объяснение кода листинга программы
- Установка начального сегмента данных на сегмент стека.
- Объявление переменных:
- filename - строка, содержащая имя файла для открытия, максимальная длина 100 символов.
- handle - целочисленная переменная, в которую будет записан дескриптор файла.
- buf - буфер, в который будут записываться строки.
- msg1 - сообщение об ошибке, если файл не был открыт.
- msg2 - сообщение об ошибке, если произошла ошибка записи.
- Код обработки ошибок открытия файла и записи в файл.
- Начало цикла записи строк в файл. Цикл выполняется 5 раз.
- В каждой итерации цикла считывается строка с клавиатуры, записывается в буфер и записывается в файл.
- После окончания цикла выполняется завершающая операция записи в файл.
- Если произошла ошибка при открытии файла или записи в файл, выводится соответствующее сообщение об ошибке.
- Код выхода из программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д