- •Лабораторная работа № 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
- •Программирование с использованием драйвера мыши.
- •Пример выполнения работы.
Пример выполнения работы.
Программа перепрограммирует символ А на символ
1 2 3 4 5 6 7 8 9 10 11
В случае если принтер не готов, выводится сообщение о причине неготовности, иначе печатаются строки символов А и нового символа.
data segment
com1 db 27,'x',0 ; Выбор режима печати
draft
com2 db 27,':*,0,0,0 ;Копирование встроенного
; набора символов в загружаемый знакогенератор
соm3 db 27,'&',0,'АА',136 ; Определение загружаемого символа
symd db 0,32,80,168,84,42,84,168,80,32,0
; Данные символа
соm4 db 27,' % ',1 ; Выбор загружаемого набора символов
соm5 db 27,' % ',0 ; Выбор встроенного набора символов
stri db "A A A A ",13,10,"$'
msgl db " Принтер не подключен к ПЭВМ", 13, 10,'$'
msg2 db " Принтер выключен",13,10,'$'
msg3 db " Принтер off-line",13,10,'$'
msg4 db " Нет бумаги",13,10,'$'
msg5 db " Сбой ПУ",13,10,'$'
data ends
code segment
assume cs:code, ds:data
main proc far
mov ax, data
mov ds,ax
mov dx,0
mov ah,1
int 17h ; Инициализация ПУ
mov cx,01fh
l1: mov dx,0ffffh ; Временная задержка для завершения
13: dec dx ; инициализации ПУ
jne 13
loop 11
mov dx,0
mov ah, 2
int 17h ; Получаем слово состояния ПУ
cmp ah,144 ; ПУ готово к работе?
jz prn
call error
prn: lea bx,com1
mov cx,3
call printn
lea bx,com2
mov ex,5
call printn
lea bx,com3
mov cx,6
call printn
lea bx,symd
mov cx, 11
call printn
call prints
lea bx,com4
mov cx,3
call printn
call prints
lea bx,com5
mov cx,3
call printn
call prints
mov ax,4c00h ; Завершение программы
int 21h
main endp
; Подпрограмма печати символа из аl
print proc near
mov dx,0 ; Выбираем lpt1
mov ah,0 ; Вывод на печать
int 17h
call error
ret
print endp
prints proc near
lea bx,stri 12:
mov al,[bx]
cmp al,'$' ; Конец строки ?
je end_p
call print ; Печать символа
inc bx
jmp 12 ; Переход к следующему символу
end_p: ret
prints endp
; Подпрограмма печати заданного в СХ количества символов, смещение первого символа в BX
printn proc near
l01: mov al,[bx]
call print
inc bx
loop 101
ret
printn endp
; Подпрограмма анализа результата печати символа
error proc near
cmp ah, 16 ; Печать успешна ?
jz e01
cmp ah,48 ;Принтер не подкл. к ПЭВМ ?
jz war1
cmp ah, 136 ; Принтер выключен ?
jz war2
cmp ah,24 ; Принтер OFF-LINE ?
jz war3
cmp ah,56 ; Нет бумаги ?
jz war4
tea dx,msg5 ; Сбой принтера
jmp end_m
war1: lea dx,msg1
jmp end_m
war2: lea dx,msg2
jmp end_m
war3: lea dx,msg3
jmp end_m
war4: lea dx,msg4
end_m: mov ah,09 ; Вывод сообщения об ошибке
int 21h ; на экран
mov ax,4c00h ; Завершение программы
int 21h
е01: ret
error endp
code ends
end main_