Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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

 

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

Данные в МП представляются в виде 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 – конец трансляции

 


<== предыдущая лекция | следующая лекция ==>
Формирование кода команды на примере команд пересылки | Требования к полям записи команд на ассемблере
Поделиться с друзьями:


Дата добавления: 2014-01-11; Просмотров: 485; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.