- •Ижевский государственный технический университет
- •6. Оверлей 32
- •8.10. Стандартные библиотеки 52
- •Экзаменационные вопросы 52
- •1. Назначение системного программного обеспечения (спо)
- •Ос и языки программирования
- •2. Обслуживание ввода-вывода
- •2.1. Организация ввода-вывода
- •2.2 Способы управления пу Понятие драйвера пу
- •2.2.1. Синхронный ввод-вывод
- •2.2.2. Асинхронный ввод-вывод
- •2.2.3. Буферный ввод-вывод
- •3. Буферный обмен информацией в языках программирования.
- •4. Управление и доступ к оперативной памяти.
- •4.3. Управление реальной памятью
- •Разделы фиксированной длины
- •Использование разделов переменного размера
- •Использование перемещаемых разделов
- •Защита памяти
- •5. Библиотека dos
- •12. Прерывание 17h – работа с принтером
- •Функция 00h – прочитать время
- •6. Оверлей
- •6.1 Структура программного комплекса
- •6.2. Распределение памяти в оверлейной структуре
- •7. Встроенный в turbo pascal assembler
- •7.2. Режимы адресации в Ассемблере
- •7.4. Выражения для управления памятью
- •7.5.Выражения в Ассемблере
- •7.6. Команды Ассемблера
- •7.6.3. Команды ввода вывода
- •7.6.4. Адресные команды
- •7.6.7. Строковые команды
- •Test Аналогична команде and, но результат операции не записывается в 1 операнд.
- •Установить операнд:
- •8. Язык программирования с.
- •8.10. Стандартные библиотеки
- •Литература
- •Экзаменационные вопросы
- •На тему: название темы
- •Примечание: если курсовая работа выполняется двумя и более студентами, обязательно разбивка задач для каждого студента конкретно.
- •Состав пояснительной записки:
12. Прерывание 17h – работа с принтером
Функция 00h – вывод на принтер
На входе: |
AH |
00h |
|
AL |
Символ |
|
AX |
Должен быть обнулен(00h) |
Возврат: |
AH |
Статус принтера 0 - таймаут 1,2 – не используется 3 – ошибка передачи 4 – занято 5 – нет бумаги 6 – подтверждение 7 – не готов |
Функция 01h – инициализировать принтер
На входе: |
AH |
01h |
|
DX |
00h |
Возврат: |
AH |
Аналогично предыдущему |
Функция 02h – считать статус принтера
Возврат: аналогично предыдущему
13. Прерывание 18h – работа с принтером (вызов подзадачи)
14. Прерывание 19h – начальная загрузка (перезагрузить компьютер)
15. Прерывание 1Ah – работа с системным таймером.
На основе данного прерывания, как правило, эмулируется работа с нестандартными устройствами. С нестандартного устройства по возможности снимается временная характеристика поступления или приема различных цифровых сигналов. На основе временного графика строится эмулятор этого устройства, примерно совпадающий с этим устройством. Далее пишется драйвер на данное устройство. Программа драйвер сажается на вектор прерывания свободный в операционной системе. Пишется пользовательская программа и проверяется правильность работы эмулятора и драйвера. После подключения нестандартного устройства драйвер заменяется на другой драйвер, в котором вместо 1Ah используется обращение к портам устройства.
Функция 00h – прочитать время
На входе: |
AH |
00h |
|
CX |
Младшая часть двойного слова |
|
DX |
Старшая часть |
Возврат: |
AL |
Если 1, то «сигнал полночи» (т.е. новая дата) |
Функция 01h – установить время
На входе: |
AH |
01h |
|
CX |
Младшая часть двойного слова |
|
DX |
Старшая часть |
Возврат: |
|
Не используется |
Функция 02h – прочитать неупакованное время
На входе: |
AH |
02h |
Возврат: |
CH |
Часы |
|
CL |
Минуты |
|
DH |
Секунды |
Функция 03h – установить неупакованное время
На входе: |
AH |
03h |
|
CH |
Часы |
|
CL |
Минуты |
|
DH |
Секунды |
|
DL |
1 – 12-ти часовое время 2 – 24-х часовое время |
Возврат: |
|
Не используется |
Функция 04h – прочитать реальную дату
На входе: |
AH |
04h |
Возврат: |
DL |
День |
|
DH |
Месяц |
|
CL |
Год |
|
CH |
Век |
Функция 05h – установить распакованную (реальную) дату
Аналогично возврату из предыдущей функции
Функция 06h – установить сигнал тревоги через системный динамик
На входе: |
AH |
06h |
|
CH |
Часы |
|
CL |
Минуты |
|
DH |
Секунды |
Возврат: |
|
Не используется |
Функция 07h – сбросить сигнал тревоги
16. Прерывание 1Bh – вызвать прерывание Ctrl+C
17. Прерывание 20h – прерывание MS-DOS (закончить программу)
18. Прерывание 21h – вызов функции MS-DOS. Прерывания аналогично IBM PC но дополнительно есть группы работы файлами, памятью, каталогами.
19.Прерывание 27h – закончить программу и оставить ее резидентной
Не рекомендуется использовать прерывания до адреса 40h и начиная с 50h до 6Ah.
Пример:
Написать функцию которая бы передавала статус клавиатуры с использованием библиотеки DOS. Вывела бы «1» если нажата клавиша Shift, «2» - Ctrl, «3» - alt, «0» - в противном случае.
Uses dos;
Function klst:byte;
Var
R:registers;
St,i:byte;
Begin
Swapvectors;
r.ah:=2;
intr($16,r);
st:=r.al;
Swapvectors;
Klst:=0;
I:=1;
Repeat
If (st and i)=i
Then begin
If i=1
Then klst:=1
Else klst:=st div i;
End;
End;
Inc(i);
Until (i=16)or(klst<>i);
End;
5.8. Системные соглашения при использовании турбо Паскаль
При использовании ТП кроме библиотеки DOS обязательно использовать системные средства, входящие в ТП
По умолчанию. Они входят в библиотеку SYSTEM. В отличие от других библиотек, данная библиотека загружается в каждую программу, написанную на ТП., поэтому не должна появлятся в утверждении USES. Библиотека состоит из нескольких программ, которые заменяют системные драйвера в процессе выполнение программы на ТП. Пользователь не имеет возможности обратится непосредственно к процедурам и функциям данной библиотеки (все процедуры и функции данной библиотеки являются основными в язаке ТП) Кроме них в состав библиотеки входят константы и переменные.
Переменные библиотеки SYSTEM
Главные файлы
INPUT:TEXT - файл ввода
OUTPUT:TEXT - файл вывода
Адреса системных процедур, по которым сохранениы системные драйверы
SaveInt00:pointer - обработка деления на ноль.
SaveInt02:pointer - обработка ошибок четности
SaveInt13:pointer - прерывание с клавиатуры ( Ctrl+C)
SaveInt23:pointer - адрес окончания программы
SaveInt24:pointer - вектор программы, которая выполняется при обнаружении критических ошибок.
Начиная с адреса 34 по адрес 3F находятся специальные прерывания ТП.