Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
кст LAB7.DOC
Скачиваний:
0
Добавлен:
21.09.2019
Размер:
97.28 Кб
Скачать

Задание

  1. В конец файла с расширением ASM в текущем каталоге дописать строку «Done». Создать новый файл PROCESS.NUM и выдать сообщение об успешном завершении работы.

Решение

data segment ;сегмент данных

fname db 'PROCESS.NUM ', 0 ; ASCIIZ-имя файла

find db 'lab7.asm',0

string db ';Done' ; записываемая строка

len = $-string ; длина строки

ern db 'File doesnt create!$'

erf db 'File doesnt find!$'

mok db 'OK. All right!$'

data ends ;конец сегмента данных;

code segment ;сегмент кода

assume cs:code,ds:data ;инициализация сегментов

begin proc ;начало программы

mov ax,data

mov ds,ax

mov ax,3D02h ; функция открыть файл на чтение-запись

lea dx, find

int 21h

jc er

; Запишем в файл строку

mov bx, ax ; сохраним дескриптор созданного файла

mov ah, 42h ;перемести муказатель

mov al,2 ;в конец

mov cx,0 ;смещение относительно конца

int 21h

mov ah, 40h ; функция записи в файл или на устройство

lea dx, string ; DS:DX -> записываемая строка

mov cx, len ;её длина

int 21h

; Закроем файл (в BX - дескриптор)

mov ah, 3Eh

int 21h

mov ah, 9

lea dx, mok

int 21h

; Создадим файл

mov ah, 3Ch ; функция ’Создать файл’

lea dx, fname ; DS:DX -> ASCIIZ-имя

xor cx, cx ; без атрибутов

int 21h

jc er ; если ошибка – на обработку

mov bx, ax ; сохраним дескриптор созданного файла

; Обработка ошибки создания файла

er:

cmp ax,2

je fn

cmp ax,7

je error

jmp exit

exit: mov ax, 4C00h

int 21h

fn:

mov ah, 9

lea dx, erf

int 21h

jmp exit

error: mov ah, 9

lea dx, ern

int 21h

code ends

end begin

5

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]