Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ASM.docx
Скачиваний:
4
Добавлен:
31.07.2019
Размер:
616.28 Кб
Скачать

Как видите, большая часть полей предназначена для хранения содержимого регистров общего назначения и сегментных регистров

Переключение на задачу процессор производит автоматически и он сам использует дескриптор TSS и все поля из которых состоит сегмент состояния задачи.         Переключение производится командами далёкой передачи управления:

  

far jmp

  

far call

  

iret

        Каждая из этих команд имеет адрес перехода, состоящий из двух частей - селектора сегмента и смещения. Для того, чтобы переключиться на задачу, нужно в качестве селектора указать селектор TSS, смещение при этом будет проигнорировано процессором, потому что в самом TSS описаны все регистры задачи, в частности, CS и EIP - вот они и определят, откуда именно будет выполняться задача.         Для переключения на задачу в процессоре не предусмотрено специальных команд, просто когда процессор обнаруживает, что селектор в адресе далёкого перехода указывает на дескриптор TSS, то запускается механизм переключения задач.

 

29) Способом, или режимом адресации называют процедуру нахождения операнда для выполняемой команды. Если команда использует два операнда, то для каждого из них должен быть задан способ адресации, причем режимы адресации первого и второго операнда могут как совпадать, так и различаться. Операнды команды могут находиться в разных местах: непосредственно в составе кода команды, в каком-либо регистре, в ячейке памяти; в последнем случае существует несколько возможностей указания его адреса. Строго говоря, способы адресации являются элементом архитектуры процессора, отражая заложенные в нем возможности поиска операндов. С другой стороны, различные способы адресации определенным образом обозначаются в языке ассемблера и в этом смысле являются разделом языка.

Регистровая адресация. Операнд (байт или слово) находится в регистре. Этот способ адресации применим ко всем программно-адресуемым регистрам процессора.

inc СН ;Плюс 1 к содержимому СН

push DS ;DS сохраняется в стеке

 

Непосредственная адресация. Операнд (байт или слово) указывается в команде и после трансляции поступает в код команды; он может иметь любой смысл (число, адрес, код ASCII), а также быть представлен в виде символического обозначения.

mov АН, 40h ;Число 40h загружается в АН

mov AL,'*' ;Код ASCII символа "*' загружается в AL

int 21h ;Команда прерывания с аргументом 21h

Регистровая косвенная (базовая и индексная). Адресуется память (байт или слово). Относительный адрес ячейки памяти находится в регистре, обозначение которого заключается в прямые скобки. В МП 86 косвенная адресация допустима только через регистры ВХ, ВР, SI и DI. При использовании регистров ВХ или ВР адресацию называют базовой, при использовании регистров SI или DI - индексной. Преобразуем приведенный выше пример, чтобы продемонстрировать использование косвенной адресации через регистр.

mov AX,0B800h ;Сегментный адрес

mov ES,AX ; видеобуфера в ES

Регистровая косвенная адресация со смещением (базовая и индексная). Адресуется память (байт или слово). Относительный адрес операнда определяется, как сумма содержимого регистра BX, BP, SI или DI и указанной в команде константы, иногда называемой смещением. Смещение может быть числом или адресом. Так же, как и в случае базовой адресации, при использовании регистров BX, SI и DI подразумевается сегмент, адресуемый через DS, а при использовании ВР подразумевается сегмент стека и, соответственно, регистр SS. Рассмотрим применение косвенной адресации со смещением на примере прямого вывода в видеобуфер.

mov AX,0B800h ;Сегментный адрес

mov ES,AX ;видеобуфера в ES

mov DI, 80*2*24 ;Смещение к нижней строке экрана

 

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