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

лабы / Лабы1 / 888

.txt
Скачиваний:
18
Добавлен:
18.02.2017
Размер:
3.11 Кб
Скачать
;1. Создания файла с именем XXXXXXXX.LAB, где XXXXXXXX - Ваша фамилия.
;2. Записи в файл строки: - фамилия, имя, номер группа.
;3. Чтения файла и вывода содержимого на экран.
;4. Изменения атрибутов файла - сделать его скрытым.
;5. Записи в режиме прямой адресации в файл на место элемента 5 цифры 8.
;6. Чтения из файла элементов с номерами 3 - 10 и вывода их на экран.
STACKSEG SEGMENT PARA STACK 'STACK'
db 256 dup (?)
STACKSEG ENDS

DATA SEGMENT
STRING db 'Vasiliy Fortochkin MP-31',cr,lf ;Строка для записи в файл
STRINGLN equ $-string ;Ее длина
HANDLE dw ? ;Ячейка для дескриптора
FNAME db 'Fortochkin.LAB',0 ;Имя файла в формате ASCIIZ
BUFF db 80 dup (?)
EIGHT db '8'
STDOUT equ 1
CR EQU 0Dh ;Возврат каретки
LF EQU 0Ah ;Перевод строки
DATA ENDS

TEXT SEGMENT 'CODE'
ASSUME CS:TEXT,DS:DATA,SS:STACKSEG
MAIN PROC
MOV AX,DATA
MOV DS,AX
;Создание файл
MOV AH,3Ch ;Функция создания файла
MOV CX,02h ;атрибут скрытности
MOV DX,OFFSET FNAME ;Адрес имени файла
INT 21h ;Прерывание
MOV HANDLE,AX ;Сохраним дескриптор файла
;Запись строки в файл
MOV AH,40h ;Функция записим
MOV BX,HANDLE ;Дескриптор
MOV CX,STRINGLN ;Длина строки
MOV DX,OFFSET STRING ;Адрес строки
INT 21h ;Прерывание
;Закрытие файла
MOV AH,3Eh ;Функция закрытия
MOV BX,HANDLE ;Дескриптор
INT 21h ;Прерывание
;Откроем снова, прочитаем, выведем в консоль содержимое
MOV AX,3D02h ;Функция открытия файла
MOV DX,offset FNAME ;Адрес имени файла
INT 21h ;Прерывание
MOV HANDLE,AX ;Запись дескриптора
;Читение файла
MOV AH,3fh ;Функция чтения
MOV BX,HANDLE ;Дескриптор
MOV CX,80 ;Читаем строчку
MOV DX,offset BUFF ;Читаем в буфер
INT 21h ;Прерывание
MOV CX,AX
;Вывод на экран
MOV AH,40h ;Функция записи на экран
MOV BX,STDOUT ;Дескриптор
MOV DX,offset BUFF
INT 21h ;Прерывание
;Замена пятого эл-та на восьмёрку
MOV AH,42h ;Функция чтения
MOV AL,00 ;Переместить к началу файла + CX:DX
MOV BX,HANDLE ;Дескриптор
MOV CX,0
MOV DX,4 ;Указатель на 5 байт
INT 21h ;Прерывание
;Пишем 8 на нужную позицию
MOV AH,40h ;Функция записи
MOV BX,HANDLE ;Дескриптор
MOV CX,1 ;Cимвол занимает один байт
MOV DX,offset EIGHT ;Запишем 8
INT 21h ;Прерывание
;Прочитаем с 3 по 10 байт, и выведем в консоль
MOV AH,42h ;Функция установки указателя
MOV AL,00 ;Переместить к началу файла + CX:DX
MOV BX,HANDLE ;Дескриптор
MOV CX,0
MOV DX,2 ;Указатель на 2 байт
INT 21h ;Прерывание
;Читение в буфер
MOV AH,3Fh ;функция чтения
MOV BX,HANDLE ;Дескриптор
MOV CX,8 ;читаем 8 байт
MOV DX,offset BUFF
INT 21h ;Прерывание
MOV CX,AX
;Вывод на экран
MOV AH,40h ;Функция записи
MOV BX,STDOUT ;Дескриптор
MOV DX,offset BUFF
INT 21h ;Прерывание
;Закрытие файла
MOV AH,3Eh ;Функция закрытия
MOV BX,HANDLE ;Дескриптор
INT 21h ;Прерывание
;Ждём нажатия кнопки
MOV AX,0C07h
INT 21h ;Прерывание
;Завершение программы
EXIT:
MOV AX,4C00h ;Функция завершения
INT 21h ;Прерывание
MAIN ENDP
TEXT ENDS
END MAIN
Соседние файлы в папке Лабы1