Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






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






Кратко остановимся на особенностях системы команд i8086, не вдаваясь в излишние подробности.

i8086 отличается разнообразием форматов команд и способов адресации. Длина команды может составлять от 1 до 6 байтов, причем в первых двух байтах (иногда — в первом) определяется код операций, количество и длина операндов и способ их адресации. В остальных байтах команды могут раз­мещаться непосредственный операнд, прямой адрес или смещение.

Большинство команд i8086 являются двухадресными, причем один адрес оп­ределяет регистр процессора, а другой — ячейку памяти или регистр.

Операнд в памяти может адресоваться прямо или косвенно посредством со­держимого базовых (ВР, ВХ) или индексных (SI, DI) регистров, а также их суммы. Предусмотрены многочисленные варианты относительной адресации, при которых логический адрес образуется как сумма двух или трех слагае­мых — одного или двух регистров процессора и 8- или 16-разрядного смеще­ния, размещаемого в команде.

Режимы адресации спроектированы с учетом эффективной реализации язы­ков высокого уровня. Например, к простой переменной можно обратиться в режиме прямой адресации, а к элементу массива — в режиме косвенной ад­ресации посредством ВХ, SI. Режим адресации через ВР предназначен для доступа к данным из сегмента стека, что удобно при реализации рекурсивных процедур и компиляторов языков высокого уровня.

Система команд насчитывает 113 базовых команд, объединенных в следую­щие группы:

команды передачи данных:

· между регистрами и памятью (включая стек), обмен содержимым ис­точника и приемника;

· ввод, вывод, табличное преобразование;

· загрузка исполнительного адреса в РОН, загрузка 4-байтового адресно­го объекта в регистры-указатели (начальный адрес сегмента и смеще­ние в сегменте);

· передача содержимого регистра F флагов в память, в стек и из стека;

арифметические команды:

· сложение, вычитание, умножение и деление двоичных чисел со знаком и без знака (произведение и делимое представляются числами двойной длины);

· десятичная коррекция сложения и вычитания упакованных двоично-десятичных чисел;

· десятичная коррекция сложения, вычитания, умножения и деления рас­
пакованных двоично-десятичных чисел;

логические команды и сдвиги:

· инверсия, конъюнкция, дизъюнкция, неравнозначность;

· TEST— поразрядная конъюнкция операндов с установкой флагов, но без занесения результатов;

· сдвиги на 1 или заданное число разрядов (константа сдвига располага­ется в CL);

команды передачи управления: переходы, вызовы, возвраты имеют две разновидности — внутрисегментные («близкие») и межсегментные («дальние»). При близких передачах загружается только IP, при дальних — IP и CS. Передачи управления могут быть прямыми (целевой адрес — в команде) или косвенными (целевой адрес вычисляется с использованием стандартных режимов адресации). В 16 командах условных перехо­дов проверяются отношения знаковых и беззнаковых чисел. Имеются 4 команды управления циклами, которые рассчитаны на размещение числа повторений цикла в регистре СХ;

команды обработки цепочек данных манипулируют последовательностя­ми байтов или слов в памяти. Время обработки цепочек этими командами гораздо меньше, чем соответствующей программной реализацией.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.