Студопедия — Система команд
Студопедия Главная Случайная страница Обратная связь

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

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






 

Система команд – набор команд, имеющих двоичные наборы, служащие в качестве кода команды. В конкретной системе команд формируются определенные способы адресации (регистровый, регистрово-косвенный, непосредственный, прямой, стековый).

Данные в МП представляются в виде 1-байтовый двоичных кодов, которые можно трактовать как числа, коды символов, адреса ячеек памяти и т.п. Для выполнения арифметических операций над целыми числами имеются специальные команды.

Для идентификации отдельные биты нумеруют от 0 до 7 и считают расположенными слева направо. Нулевой бит соответствует младшему биту, а седьмой – старшему. Двухбайтовые целые числа должны быть расположены в соседних байтах памяти или в парном регистре.

6 групп команд:

Пересылочные команды, Команды арифметических и логических операций; Команды работы с аккумулятором, Команды передачи управления; Команды работы с парными регистрами, Специальные команды

Команда Принцип работы Пояснения
Арифметические и логические операции
INR [ R ] + 1 ® R Инкремент (увеличение на логическую 1 определенного регистра) 1-байтная команда. Регистровый СА
DCR [ R ] – 1 ® R Декремент (уменьшение на 1 определенного регистра) 1 байт. Регистровый СА
ADD B [ A ] + [ R ] ® A Сложение регистра с аккумулятором. Результат помещается в аккумулятор. Второй и третий байты команды составляют адрес области памяти, в которой находится одно из слагаемых. 1 байт. Регистровый СА.
ADI 25 [ A ] + [ B2 ] ® A Содержимое второго бита команды прибавляется к содержимому аккумулятора. Непосредственный способ адресации. 2 байта, Непосредственный СА
ADC B [ A ] + [ R ] + [ C ] ® A Сложение регистра и аккумулятора. Используется для многобайтного сложения, где необходимо учитывать перенос из младшей тетрады в старшую. «С» показывает, что триггер переноса заполнен. 1 байт. Регистровый СА.
ACI 25 [ A ] + [ B2 ] + [ C ] ® A Сложение непосредственных данных со значением аккумулятора. Используется для многобайтного сложения. 2 байта, Непосредственный СА
SUB B [ A ] - [ R ] ® A Команды вычитания выполняются в дополнительном коде. Вычитание происходит путем инвертирования значений всех разрядов вычитаемого, добавления к ним 1 младшего разряда и сложения полученного числа с уменьшаемым. Логическая 1 в старшем разряде является признаком отрицательного числа. 8-разрядный дополнительный код дает возможность представлять числа в диапазоне -128 до +127. Если результат выполнения команды является отрицательным, нулевым или возникает сигнал заема в старший разряд, соответствующие разряды регистра устанавливаются в 1. 1 байт. Регистровый СА.
SUI 25 [ A ] - [ B2 ] ® A Вычитание из аккумулятора непосредственных данных. 2 байта, Непосредственный СА
SBB B [ A ] - [ R ] - [ C ] ® A Многобайтное вычитание с учетом триггера переполнения. 1 байт. Регистровый СА.
SBI 25 [ A ] - [ B2 ] - [ C ] ® A Многобайтное вычитание непосредственных данных из аккумулятора с учетом триггера переполнения. 2 байта, Непосредственный СА
ANA B [ A ] ^ [ R ] ® A Команды логических операций выполняются поразрядно (нет переноса в старший разряд). Логическое умножение. 1 байт. Регистровый СА.
ANI 25 [ A ] ^ [ B2 ] ® A Логическое умножение непосредственных данных. 2 байта, Непосредственный СА
XRA B [ A ] " [ R ] ® A Исключающая ИЛИ. 1 байт. Регистровый СА.
XRI 25 [ A ] " [ B 2 ] ® A 2 байта, Непосредственный СА
ORA B [ A ] V [ R ] ® A Логическая ИЛИ. 1 байт. Регистровый СА.
ORI 25 [ A ] V [ В2 ] ® A Логическая ИЛИ. 2 байта, Непосредственный СА
CMP B [ A ] - [ R ] Эта команда влияет только на регистр признаков. Ее используют в алгоритмах, где необходимо исследование флага. 1 байт. Регистровый СА.
CPI 25 [ A ] - [ B2 ] 2 байта, Непосредственный СА

 

Команды работы с аккумулятором.Вместо ячейки памяти можно адресовать внешнее устройство.
STA [ A ] ® M ([B2, B3]) Содержание аккумулятора посылается в ячейку памяти по адресу, который содержится во 2-м и 3-м байте. Прямой способ адресации. 3 байта. Прямой СА
LDA [ M ([B2, B3]) ] ® A Команда загрузки аккумулятора. Содержание ячейки памяти посылается в аккумулятор. 3 байта. Прямой СА

 

Команды десятичной коррекции 4 случая коррекции: 1) в младшей тетраде появились запрещенные комбинации 2) когда появляется дополнительный перенос из младшей тетрады в старшую 3) в старшей тетраде появляются запрещенные кодовые комбинации 4) когда возникает основной перенос (из старшего разряда)
DAA   Запуск узла десятичной коррекции. Узел ДК предназначен для представления действий АЛУ в двоично-десятичном коде. При прибавлении к любому некорректному коэффициенту кода 6 происходит перенос в старшей тетраде и результат остатка не превзойдет корректных весовых коэффициентов. 1 байт
CMA [ ] ® A Коррекция аккумулятора. 1 байт
STC 1 ® C Установка 1 в код переполнения. 1 байт
CMC [ ] ® C Инверсия кода переполнения. 1 байт

 


 

Команды сдвига
RLC [ Am ] ® Am+1 [ A7 ] ® A0 [ A7 ] ® C Каждый разряд аккумулятора выталкиваем в триггер переполнения С. Применяются в команде управления. 1 байтные команды Циклический сдвиг влево
RAL [ Am ] ® Am+1 [ A7 ] ® C [ C ] ® A0 Арифметический сдвиг влево
RRC [ Am ] ® Am-1 [ A0 ] ® A7 [ A0 ] ® C Циклический сдвиг вправо
RAR [ Am ] ® Am-1 [ A0 ] ® C [ C ] ® A7 Арифметический сдвиг вправо

 

Команды передачи управления
J/MP/ [ PC ] + 2 ® PC Передача управления. Изменяет ход программы. JMP – передача управления без условия JNZ – если не 0 JZ – если 0 МП анализирует регистр признаков. МП либо делает эту команду (если условие выполняется) или не делает, если не выполняется. 3 байт. Непосредственный СА
C/ALL/ [ PCH ] ® M ([SP] – 1) [ PCL ] ® M ([SP] – 2) [ SP ] – 2 ® SP [ B3, B2 ] ® PC Команда вызова подпрограммы. Используется для обслуживания запросов на прерывание. 1FC3 – начальная точка подпрограммы. 3 байта, Регистрово-косвенный СА
R/ET/ [ M ([SP]) ] ® PC [ M ([SP] + 1) ] ® PCH [ SP ] + 2 ® SP Команда возвращения в программу в точку, отстоящую на 2 байта адреса. Возврат из последней точка подпрограммы в основную невозможно, т.к. память стековая и возврат идет через извлечение вершины стека. Возврат происходит последовательно. 1-байтная команда. Чтобы вернуться в основную программу с прежними данными, можно занести все данные в подпрограмме до точки расхождения. 1 байт, Регистрово-косвенный СА.

 


 

Команды работы с парными регистрами
LXI B, 1FC3H [ B3, B2 ] ® RP Загрузка данных парного регистра. 3-байтная команда. Определена для ВС, DE, HL и SP. Непосредственный способ адресации. Вершины стека загружаются при помощи этой команды. 3 байта. Непосредственный СА
STAX B [ A ] ® M ([RP]) Содержимое аккумулятора переносится в память. Обозначается только старший регистр пары (например, В, а не ВС). 1 байт. Регистрово-косвенный СА
LDAX B [M ([RP])] ® [ A ] Обратная команда. Используется регистрово-косвенный способ адресации. Индексными регистрами являются BC и DE.1 байт. Регистрово-косвенный СА
INX B [ RP ] + 1 ® RP Инкремент. Определены для пар ВС, DE, HL и SP. 1 байт
DCX B [ RP ] – 1 ® RP Декремент. Определены для пар ВС, DE, HL и SP. 1 байт
DAD H [ RP ] + [ HL ] ® HL Команда двойного сложения. Если DAD H, то регистр удваивает свое значение. 1 байт
POP B [M ([SP])] ® RPL [M ([SP]+1)] ® RPH [SP]+2 ® SP Команда работы со стеком. Используется для пар ВС, DE, HL и PCW. Извлечение из стека. С помощью команды CALL заносится сначала старший, затем младший байт, при РОР извлекается сначала младший, затем старший байты. Поэтому в паре ВС запись идет в С. 1 байт. Регистрово-косвенный СА
PUSH [ PCH ] ® M ([SP] – 1) [ PCL ] ® M ([SP] – 2) [ SP ] – 2 ® SP Команда работы со стеком. Загрузка в стек. Указывается адрес новой вершины стека. 1 байт. Регистрово-косвенный СА
SHLD 1FC3H [ L ] ® M ([B3, B2]) [ H ] ® M ([B3, B2]+1) Это команды, определенные для регистровой пары HL. Загрузка содержимого регистровой пары в ячейку памяти. 3 байт. Прямой СА
LHLD 1FC3H [M ([B3, B2])] ® L [M ([B3,B2] + 1)] ® H Извлечение из памяти данных и занесение их в регистровую память. 3 байт. Прямой СА
PCHL [ HL ] ® PC Эквивалентно команде JUMP. 1 байт. Регистровый СА
XTHL [ L ] «M ([SP]) [ H ] «M ([SP] + 1) Команда обмена. Меняет содержимое регистровой пары с ячейкой памяти, по адресу указателя стека. 1 байт.
SPHL [ HL ] ® SP Меняется вершина указателя стека. 1 байт. Регистровый СА
XCHG [ H ] «[ D ] [ L ] «[ E ] Команда обмена между регистровыми парами BC и DE. 1 байт

 


 

Специальные команды
IN 2FH [ВУ ([B2])] ® A Команда ввода. Ввод информации по адресу 2F. 2 байт.
OUT 2FH [ A ] ® ВУ ([B2]) Команда вывода. 2 байт
NOP [ PC ] + 1 ® PC Команда, обозначающая код операции. Код этой операции 00. Ячейки памяти необходимо обнулить перед началом команды, чтобы МП не выполнял никаких действий. 1 байт
HLT [ PC ] ® PC Команда остановок. МП останавливается, т.к. нет приращения РС. 1 байт
EI   Разрешить прерывание. Установка в 1 триггер обслуживания прерывания. 1 байт
DI   Запретить прерывание. Установка в 0 триггер обслуживания запроса на прерывание. 1 байт
RST N [ PCH ] ® M ([SP] – 1) [ PCL ] ® M ([SP] – 2) [ SP ] – 2 ® SP 8 × N ® PC Стандартная команда для обработки подпрограммы. N = 0…7. На каждую программу отдается 8 ячеек памяти, начиная с 0-й. По этой команде записываются таблицы переходов. МП выполняет следующие действия: 1) прячется точка возврата в стек 2) смещается указатель стека 3) программный счетчик переходит в точку возврата. 1 байт ПРИМЕР RST 7 Подпрограмма начинается в 38 ячейке памяти. Для этого вычисляют число 8 × 7 = 56 в 16-ной системе. 56: 16 = 3 и 8 в остатке. RST 7 0038

 

Псевдокоманды – команды, не имеющие машинного эквивалента. Команды работы с транслятором.

 

Виды псевдокоманд:

ORG – установить счетчик. Показывает, с какого адреса будет начинаться команда.

DB – определить байт

DW – определить слово

DS – зарезервировать память с текущей ячейки

PW 1FC3; - последние байты переставлять в памяти МП

SET – присвоить значение.

EQV – эквивалентность. Переустановка значения.

LIST – вывод листинга программы

MACRO … END MACRO – процедура макроопределения

IF <…> = 0 – то трансляция IF <…> ≠ 0 – пропускается. Заканчивается END IF

END – конец трансляции

 

 







Дата добавления: 2015-09-07; просмотров: 442. Нарушение авторских прав; Мы поможем в написании вашей работы!



Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

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

ТЕОРЕТИЧЕСКАЯ МЕХАНИКА Статика является частью теоретической механики, изучающей условия, при ко­торых тело находится под действием заданной системы сил...

Решение Постоянные издержки (FC) не зависят от изменения объёма производства, существуют постоянно...

ТРАНСПОРТНАЯ ИММОБИЛИЗАЦИЯ   Под транспортной иммобилизацией понимают мероприятия, направленные на обеспечение покоя в поврежденном участке тела и близлежащих к нему суставах на период перевозки пострадавшего в лечебное учреждение...

Кишечный шов (Ламбера, Альберта, Шмидена, Матешука) Кишечный шов– это способ соединения кишечной стенки. В основе кишечного шва лежит принцип футлярного строения кишечной стенки...

Оценка качества Анализ документации. Имеющийся рецепт, паспорт письменного контроля и номер лекарственной формы соответствуют друг другу. Ингредиенты совместимы, расчеты сделаны верно, паспорт письменного контроля выписан верно. Правильность упаковки и оформления....

БИОХИМИЯ ТКАНЕЙ ЗУБА В составе зуба выделяют минерализованные и неминерализованные ткани...

Типология суицида. Феномен суицида (самоубийство или попытка самоубийства) чаще всего связывается с представлением о психологическом кризисе личности...

Studopedia.info - Студопедия - 2014-2024 год . (0.011 сек.) русская версия | украинская версия