Система команд

Система команд микропроцессора (сопроцессора) КМ1810ВМ87 дополняет систему команд центрального процессора (ЦП) КМ1810ВМ86 [1,2]. Она делится на шесть функциональных групп команд: пересылки данных, арифметические команды, сравнения и проверки, трансцендентные, загрузки констант, управления, или системные команды.
На языке ассемблера каждая команда в общем случае состоит из совокупности команды WAIT ("ожидание") или команды NOP ("холостая операция") ЦП; необязательного префикса замены сегментного регистра; команды ESC ("переключение"), начинающейся кодом 11011В, который определяет принадлежность ее к сопроцессору. В формате несистемных команд сопроцессора (первые пять групп) могут задаваться явные и неявные ссылки на операнды. В качестве операндов используются:
имя регистра стека ST либо ST(0), определяющее ссылку на текущий регистр стека;
имя регистра стека ST(i), определяющее ссылку на текущий или произвольный регистр стека (индекс i изменяется в пределах 0...7);
адресное выражение, определяющее ссылку на данные в памяти, например MEM2I, MEM4I и др.
 
Если в формате несистемной команды сопроцессора нет ссылки на операнд, то он подразумевается неявно, т.е. используются регистры стека ST(0) либо ST(0) и ST(1), что определяется кодом инструкции. Для удобства разъяснения введем термины: источник - устройство, содержащее только операнды команд; приемник - устройство, содержащее операнды и результаты выполнения команд. Если в формате команды два операнда, то первый из них определяет ссылку на приемник, а второй - на источник. Они разделяются запятой.
Операнды команд сопроцессора могут храниться в программно- доступных устройствах или в памяти вычислительной системы. Память для хранения команд и операндов сопроцессора организована в виде наборов сегментов переменной длины. Каждый сегмент представляет собой линейную последовательность смежных элементов емкостью до 64К(216) байт. Адресация команд и операндов сопроцессора в памяти осуществляется с помощью двухкомпонентного адреса (указателя), содержащего 16-разрядные селектор сегмента (CS, DS, ES, SS) и компоненту смещения. Селектор указывает на требуемый сегмент в памяти, а компонента - на адрес требуемого байта в заданном сегменте.
Селектор сегмента задается сегментным регистром (SC, DS, SS или ES). Он выбирается либо неявно режимом адресации, либо в явном виде префиксом невосприятия сегмента. Смещение вычисляется путем суммирования какой-либо комбинации следующих трех элементов: необязательной части смещения (сдвига) [D], содержащегося в коде команды; содержимых одного из базовых (ВХ или BP) и индексных (SI или DI) регистров.
Комбинация этих элементов адреса определяет шесть режимов адресации памяти:

ПРЯМОЙ.

Смещение операнда содержится в команде в виде 8- или 16-разрядного элемента сдвига;

РЕГИСТРОВЫЙ.

Смещение операнда находится в одном из регистров ЦП (SI, DI, ВХ или BP);

БАЗОВЫЙ.

Смещение операнда - сумма 8- или 16-разрядного сдвига и содержимого базового регистра ЦП (ВХ или BP);

ИНДЕКСНЫЙ.

Смещение операнда - сумма 8- или 16-разрядного сдвига и содержимого индексного регистра ЦП (SI или DI);

БАЗОВО-ИНДЕКСНЫЙ.

Смещение операнда - сумма содержимых базового и индексного регистров;

БАЗОВО-ИНДЕКСНЫЙ СО СДВИГОМ.

Смещение операнда - сумма содержимых базового и индексного регистров и 8- или 16- разрядного сдвига.
Адресация команды ESC и ее операндов (20-разрядный физический адрес) вырабатывается ЦП.
Так как команды выбираются из памяти вычислительной системы только ЦП, то для предотвращения выборки команды ESC до окончания обработки сопроцессором предыдущей команды ESC должна предшествовать команда WAIT ЦП. Если необходимость в команде WAIT ЦП отсутствует, то для сохранения структурных характеристик объектного кода вместо нее используется команда NOP ЦП. Это обеспечивает возможность применения программных эмуляторов без
повторной трансляции программы, когда вместо команды WAIT или NOP вводится команда программного прерывания. .
 


Обсудить вопрос в студенческом форуме

 

Сайт содержит информацию о учебном заведении и студенческой общине и не является официальным