- •Лабораторная работа № 1.
- •Функция 0ен
- •Функция 1ан
- •Функция 2fh
- •Функция 36н Определяет параметры диска
- •Функция 39н
- •Функция 3ан Удаляет каталог с диска
- •Функция 3вн Меняет текущий каталог на заданный
- •Функция 3сн Создаёт хендл (новый файл) на диске
- •Функция 3dн Открывает хендл (открывает файл) на диске
- •Функция 3ен
- •Функция 3fh
- •Функция 40н
- •Функция 41н
- •Функция 42н
- •Функция 43h
- •Функция 47н
- •Функция 4ен
- •Функция 4fh
- •Функция 56н
- •Функция 57н
- •Функция 5ан
- •Прерывание 25н
- •Прерывание 26н
- •Пример выполнения работы Создать новую директорию new_dir на диске а:, сделать ее текущей, записать туда файл newfile.Txt и в него записать сообщение - "Это вновь созданный файл".
- •Порядок выполнения работы
- •Вопросы по теме работы
- •Лабораторная работа № 2
- •Функция 00н
- •Функция 01н
- •Функция 02н
- •Функция 03н
- •Функция 04н
- •Флаг переноса установлен
- •Функция 05н
- •Пример выполнения работы
- •Порядок выполнения работы
- •Варианты заданий. Не использовать функции dos !!!.
- •Вопросы по теме работы.
- •Приложение а. Функция disk_status
- •Приложение в. Параметры 360к дискеты.
- •Лабораторная работа № 3
- •Основные сведения
- •Функция Назначение
- •Функция 00н
- •Функция 01h
- •Функция 02h
- •Функция 03h
- •Пример выполнение работы
- •Контрольные вопросы
- •Лабораторная работа № 4
- •Основные сведения
- •Функция 00h
- •Функция 01h
- •Функция 02h
- •Система команд матричного принтера
- •Система команд принтера фирмы Epson.
- •Команды форматирования текста
- •Команды печати графических изображений.
- •Пример выполнения работы.
- •Порядок выполнения работы
- •Варианты заданий.
- •Контрольные вопросы
- •Лабораторная работа № 5 Таймер и генерация звука.
- •Форматы управляющих команд таймера.
- •Использование каналов в ibm pc.
- •Генерация звука.
- •Частоты нот для второй октавы
- •Варианты заданий.
- •Вопросы по теме работы.
- •Лабораторная работа № 6 Работа с драйвером мыши.
- •Обращение к драйверу мыши из ассемблера
- •Функции драйвера мыши.
- •Функция 00h
- •Показать курсор
- •Функция 06н
- •Функция 07h
- •Функция 08h
- •Функция 09h
- •Функция 0Ah
- •Функция 0Bh
- •Функция 0Сh
- •Функция 0Dh
- •Функция 0Eh
- •Функция 0Fh
- •Функция 10h
- •Функция 13h
- •Функция 15h
- •Функция 16h
- •Функция 17h
- •Функция 18h
- •Программирование с использованием драйвера мыши.
- •Пример выполнения работы.
Пример выполнения работы Создать новую директорию new_dir на диске а:, сделать ее текущей, записать туда файл newfile.Txt и в него записать сообщение - "Это вновь созданный файл".
date segment
path_l db "new_dir",0
path_2 db 'newfile.txt',0
hendle dw 0
mes db 'Это вновь созданный файл', 10,13
date ends
code segment
assume cs:code,ds:date
start: mov ax, date
mov ds,ax
mov dl,0 ; текущий диск - A:
mov ah,OEh ; загрузка функции ОЕ
int 21h ; смена текущего диска
mov dx, offset path_l ; загрузка маршрута нового каталога
mov ah,39h ; загрузка 39-й функции
int 21h ; создание нового каталога
jc m1 ; переход, если есть ошибка
mov dx,offset path_l ; маршрут нового каталога
mov ah,3bh ; загрузка функции 3b
int 21h ; смена каталога
jc ml ; переход, если нет ошибки
mov dx, off set path_2 ; загрузка маршрута нового каталога
mov сх,0 ; установка атрибута чтение/запись
mov ah,3Ch ; загрузка функции ЗС
int 21h ; создание файла
jc ml ; переход, если есть ошибка
mov hendle,ах ; сохранить хендл
mov bx,hendle ; установить хендл
mov сх,26 ; количество символов для записи
mov dx,offset mes ; начало записываемого текста
mov ah,40h ; загрузка 40-й функции
int 21h ; записать в файл сообщение
jc ml ; переход, если есть ошибка
сmр ах,2б
jz m3
mov ах,13 ;код ошибки при неправильной передаче
jmp ml ; переход при несовпадении
mЗ: mov bx,hendle ; загрузить хендл
mov ah,3Eh ; загрузка функции ЗЕ
int 21h ; закрыть хендл
jc ml ; переход, если есть ошибка
jmp m2
m1: call er_disk ; переход на конец
m2: mov ax,4c00h ; выход
int 21h
er_disk proc near ; выдача сообщений об ошибках
push ds ; сохранить сегмент данных
mov cx,cs ; изменить
mov ds,cx ; сегмент данных
сmр ах,2 ; ошибка 2 ?
jnz @3 ; нет, продолжить анализ
mov dx,offset message2 ; загрузка буфера сообщения
jmp @15 ; переход на вывод сообщения
@3: сmр ах,3 ; ошибка 2 ?
jnz @4 ; нет, продолжить анализ
mov dx,off set message3 ; загрузка буфера сообщения
jmp @15 ; переход на вывод сообщения
@4: сmр ах,4 ; ошибка 4 ?
jnz @5 ; нет, продолжить анализ
mov dx, offset message4 ; загрузка буфера сообщения
jmp @15 ; переход на вывод сообщения
@5: сmр ах,5 ; ошибка 5 ?
jnz @6 ; нет, продолжить анализ
mov dx,offset message5 ; загрузка буфера сообщения
jmp @15 ; переход на вывод сообщения
@6: сmр ах,б ; ошибка 6 ?
jnz @12 ; нет, продолжить анализ
mov dx,offset message6 ; загрузка буфера сообщения
jmp @15 ; переход на вывод сообщения
@12: сmр ах,12 ; ошибка 12 ?
jnz @13 ; нет, продолжить анализ
mov dx,offset messagel2 ;загрузка буфера сообщения
jmp @15 ; переход на вывод сообщения
@13: сmр ах,13 ; ошибка 12 ?
jnz @14 ; нет, продолжить анализ
mov dx,offset messagel3; загрузка буфера сообщения
jmp @15 ; переход на вывод сообщения
@14: mov dx,offset messagel4; ошибка не распознана
@15: mov ah,9 ; загрузка 9-й функции
int 21h ; вывод сообщения об ошибке
mov dx,offset wait_
mov ah,9 ; загрузка 9-й функции
int 21h ; вывод сообщения
mov ah,8 ; загрузка 8-й функции
int 21h ; ожидание pop ds
ret ; выход из процедуры
message2 db 10,13,'Файл не найден',10,13,'$'
message3 db 'Маршрут не найден',10,13,'$'
message4 db 'Слишком много открытых фалов',10,13,'$'
message5 db 10,13,'Нет доступа',10.13,'$'
message6 db 'Несуществующий хендл',10,13,'$'
message12 db 'He разрешен доступ',10,13,'$'
message13 db 'Неверная передача данных в файл',10,13,'$'
message14 db 'Неопределенная ошибка',10,13,'$'
wait_ db 'Нажмите любую клавишу',10,13,'$'
er_disk endp
code ends
end start