Запись в файл пяти строк, введенных с клавиатуры - 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

Объяснение кода листинга программы

  1. Установка начального сегмента данных на сегмент стека.
  2. Объявление переменных:
    • filename - строка, содержащая имя файла для открытия, максимальная длина 100 символов.
    • handle - целочисленная переменная, в которую будет записан дескриптор файла.
    • buf - буфер, в который будут записываться строки.
    • msg1 - сообщение об ошибке, если файл не был открыт.
    • msg2 - сообщение об ошибке, если произошла ошибка записи.
  3. Код обработки ошибок открытия файла и записи в файл.
  4. Начало цикла записи строк в файл. Цикл выполняется 5 раз.
  5. В каждой итерации цикла считывается строка с клавиатуры, записывается в буфер и записывается в файл.
  6. После окончания цикла выполняется завершающая операция записи в файл.
  7. Если произошла ошибка при открытии файла или записи в файл, выводится соответствующее сообщение об ошибке.
  8. Код выхода из программы.

Оцени полезность:

7   голосов , оценка 4.143 из 5
Похожие ответы