Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

УТС 7 семестр / ПР4 с защитой

.docx
Скачиваний:
1
Добавлен:
10.06.2023
Размер:
146.48 Кб
Скачать

МИНОБРНАУКИ РОССИИ

Санкт-Петербургский государственный

электротехнический университет

«ЛЭТИ» им. В.И. Ульянова (Ленина)

Кафедра АПУ

отчет

по практической работе №4

по дисциплине «Системное программирование»

Тема: Подпрограммы. Работа с файлами через описатели.

Студент гр. 8391

Гоглев А.А.

Студент гр. 8391

Шушков Д.А.

Студент гр. 8391

Маликов А.А.

Преподаватель

Кораблев Ю.А.

Санкт-Петербург

2021

Цель работы.

Получить навыки организации подпрограмм и навыки работы с файлами через описатели.

Задание.

Разработать программу, работающую с файлами через описатели. Записать в файл заданную строку. В программе должны использоваться подпрограммы.

1. Разработаем COM-программу:

CODE SEGMENT

ASSUME CS:CODE, DS:CODE, SS:CODE

ORG 100H

START:

MOV AH, 0AH

LEA DX, BUF

INT 21h

XOR BX, BX

MOV BL, [BUF+1]

MOV [BUF+2+BX], 0 // запись в конец имени файла «0»

MOV AH, 3dh

MOV AL, 2

LEA DX, BUF+2

INT 21H

JAE NO_CREATE // переход если такой файл есть (CF = 0)

XOR AX, AX

MOV AH, 02h

MOV DL, 0ah

INT 21h

MOV AH, 09h

LEA DX, WARNING // спрашиваем, нужно ли создать

INT 21h

MOV AH, 01h

INT 21h

CMP AL, 'Y' // если Y то вызываем PROC1

JNE EXIT

CALL PROC1

NO_CREATE:

MOV BX, AX // передача дескриптору

MOV AH, 42h

MOV CX, 0

MOV DX, 0

MOV AL, 2

INT 21h // ставим указатель в конец файла

MOV AH, 40h // запись сообщения

LEA DX, MESSAGE

MOV CX, 16

INT 21h

MOV AH, 3eH // закрытие файла

INT 21h

EXIT:

MOV AH, 4CH

INT 21H

PROC1 PROC // создание файла

MOV AH, 5bh

XOR CX, CX

LEA DX, BUF+2

INT 21H

RET

PROC1 ENDP

BUF DB 130, 00, 130 DUP (0), 0

WARNING DB 'File doesnt exist. Create one? (Y/N)$'

MESSAGE DB 'HELLO WORLD '

CODE ENDS

END START

2. Пример выполнения работы программы

Рис.1 Пример выполнения работы программы.

Рис.2 Содержимое созданного файла.

Выполнение задания на защиту.

Разработать программу копирования содержимого одного текстового файла в другой.

Код программы:

CODE SEGMENT

ASSUME CS:CODE, DS:CODE, SS:CODE

ORG 100H

START:

MOV AH, 3DH

MOV AL,1

LEA DX, [FILENAME1+2]

INT 21H

MOV AH, 3FH

LEA DX, BUF

MOV CX,-1

INT 21H

MOV CX,AX

MOV AH,3EH

INT 21H

PUSH AX

MOV AH, 3DH

MOV AL,1

LEA DX, [FILENAME2+2]

INT 21H

MOV AH, 40H

POP CX

LEA DX, BUF

INT 21H

MOV AH,3EH

INT 21H

FILENAME1 DB 130, 00, 130 DUP (0), 0

FILENAME2 DB 130, 00, 130 DUP (0), 0

BUF DB 130, 00, 130 DUP (0), 0

CODE ENDS

END START

Рис. 3. Содержимое файла, из которого копируем информацию.

Рис. 4. Содержимое файла, в который копируем информацию до запуска программы.

Рис. 5. Содержимое файла, в который копируем информацию после работы программы.

Соседние файлы в папке УТС 7 семестр