- •Вычисление некоторых элементарных функций с помощью сопроцессора.
- •Принципы работы
- •Префикс команд и адресация операндов
- •Форматы данных
- •Вещественные числа
- •Целые числа
- •Регистры сопроцессора
- •Численные регистры
- •Регистр управления
- •Регистр тегов
- •Регистр состояния
- •Регистры указателя команды и указателя операнда
- •Система команд сопроцессора
- •Ввод с клавиатуры и вывод данных на экран с помощью функций dos.
- •Сравнительная характеристика функций dos ввода с клавиатуры
- •Функции dos вывода данных на экран
- •ФункцииBios для работы с клавиатурой. Чтение символа с ожиданием
- •Проверка буфера на наличие в нем символов
- •Получение состояния переключающих клавиш
- •Установка временных характеристик клавиатуры
- •Запись символов в буфер клавиатуры
- •Чтение символа с ожиданием для 101-клавишной клавиатуры
- •Проверка буфера на наличие в нем символов для 101-клавишной клавиатуры
- •Получение состояния переключающих клавиш для 101-клавишной клавиатуры
- •Получение состояния переключающих клавиш для 101-клавишной клавиатуры
- •Функции bios для работы с экраном
- •Функции работы с памятью.
- •Описание:
Функции работы с памятью.
Выделение:
Вход
AH = 48H
BX = запрошенное количество памяти в 16-байтовых параграфах
Выход
AX = код ошибки если CF установлен
BX = размер доступной памяти в параграфах (если памяти нехватает)
AX = сегментный адрес распределенного блока (если нет ошибок)
Описание:
распределяет блок памяти длиной BX параграфов, возвращая сегментный адрес этого блока в AX (блок начинается с AX:0000). если распределение неудачно, взводится Carry-флаг, в AX возвращается код ошибки, а BX содержит максимальный размер доступной для распределения памяти (в параграфах).
Чтобы определить наибольший доступный кусок, общепринято устанавливать BX=0ffffH перед вызовом. распределение завершится с ошибкой, возвратив размер максимального блока памяти в BX.
Замечание:
когда процесс получает управление через функцию 4bH EXEC, вся доступная память уже распределена ему.
Освобождение:
Вход
AH = 49H
ES = сегментный адрес (параграф) освобождаемого блока памяти
Выход
AX = код ошибки если CF установлен
Описание:
Освобождает блок памяти, начинающийся с адреса ES:0000. этот блок становится доступным для других запросов системы. Вообще говоря, вы должны освобождать лишь те блоки памяти, которые вы получили через функцию 48H распределить память. Родитель отвечает за освобождение памяти порожденных процессов. Тем не менее, ничто не препятствует вам освобождать память чужих проыессов.
Модификация позволяет расширять/сжимать блок памяти):
Вход
AH = 4aH
ES = сегмент распределенного блока памяти
BX = желаемый размер блока в 16-байтовых параграфах
Выход
AX = код ошибки если CF установлен
BX = наибольший доступный блок (если расширение неудачно)
Описание:
Изменяет размер существующего блока памяти. Когда программа получает управление, функция 4bH EXEC уже распределила блок памяти, начиная с PSP, который содержит всю доступную память. чтобы освободить память для запуска порождаемых процессов, блок памяти, начинающийся с PSP, необходимо сначала сжать.
Замечание:
функция 31H (KEEP) и INT 27H (TSR) сжимают блок по адресу PSP.
