Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Shpory_po_AVM_4kurs.docx
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
3.45 Mб
Скачать

63. Типы данных микропроцессора.

В табл. перечислены типы данных и команды, обеспечиваемые процессором 80386. В этой таблице приведены только наиболее употребимые команды. Варианты команд, такие как (в случае циклического сдвига) циклический сдвиг вправо и циклический сдвиг через перенос, также опущены.

Главные типы данных и команды

Тип

Разрядность

Команды

Целое, порядковое

8, 16, 32 бит

Пересылка, обмен, преобразование, проверка, сравнение, перевод, сдвиг, двойной сдвиг, циклический сдвиг, отрицание, логическое "и", "или", исключающее "или". Сложение, вычитание, умножение, деление, увеличение на 1, уменьшение на 1, перевод (пересылка с расширением знака/ноля)

Неупакованное десятичное

1 цифра

Коррекция для сложения, вычитания, умножения,деления

Упакованное десятичное

2 цифры

Коррекция для сложения, вычитания

Строка(байтов,слов,двойных слов)

0-4 гбайт слов, двойных слов

Пересылка, загрузка, запоминание, сравнение, просмотр, повтор

Строка бит

1-4гбит

Проверка, проверка и установка, проверка и гашение, проверка и дополнение, просмотр,вставление, изъятие

Локальный указатель

32 бит

(см. Порядковое)

Глобальный указатель

48 бит

Загрузка

Примечание. Локальный указатель - 32 битное смещение в сегменте, определенном одной из регистрированных пар сегмента/дескриптора. Глобальный указатель - это полный логический адрес, состоящий из селектора и смещения.

80. Многозадачность. Дескриптор сегмента состояния задачи.

Каждая задача описывается селектором дескриптора сегмента TSS - Task State Segment или сегмент состояния задачи. Сегмент TSS для каждой задачи должен быть описан в таблице GDT (загрузка дескриптора из LDT вызывает ошибку). Сегмент состояния задачи представляет собой 0x67 байт данных, в которых сохраняется состояние задачи (т.е. - содержание регистров процессора и некоторые другие данные) при прекращении ее выполнения.

Пример дескриптора сегмента TSS в таблице GDT:

67 00 00 00 00 89 40 00

Первые 0x67 байт линейного адресного пространства будут использованы для хранения состояния задачи, селектор которой указывает на этот дескриптор. Бит 4 пятого байта дескриптора определяет дескриптор как системный. В этом случае биты 0-3 определяют тип дескриптора. Для TSS это:

0001 - свободный 16 битный сегмент состояния задачи

0011 - занятый 16 битный TSS

1001 - свободный 32 битный TSS

1011 - занятый 32 битный TSS

А также:

0101 - шлюз задачи

Селектор выполняющейся в текущий момент времени задачи содержится в регистре TR. В ОС обычно этот регистр загружается командой LTR при запуске первой задачи, выполняющейся в многозадачном режиме

Переключение задач производится с помощью дальнего JMP или CALL, если селектор указывает на TSS или шлюз задачи (а также при прерывании, если сегмент обработчика - TSS). При переключении на задачу, ее тип в дескрипторе изменяется на занятый, т.е. задачи не обладают повторной входимостью. Попытка переключения на занятую задачу вызывает ошибку защиты. После переключения процессор загружает из TSS регистры - в том числе CS и EIP, т.е. управление переходит в отложенную точку задачи.

Дескриптор сегмента состояния задачи.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]