Команды сохранения
STA [STORE] - сохранить;
STA addr [A -> MEM[addr]] - сохранить из аккумулятора данные в ячейку памяти с адресом addr.
STA @X [A -> Х[MEM] ] - сохранить из аккумулятора данные в ячейку памяти, адрес которой хранится в регистре Х.
Арифметические и логические операции.
ADDA addr [A + addr -> A] - добавить в аккумулятор константу.
ADDA @X [A + X[MEM] -> A] - добавить в аккумулятор данные из ячейки, адрес которой хранится в регистре Х.
ANDA addr [A&MEM[addr] -> A] - логическое умножение содержимого аккумулятора и данных из ячейки с адресом addr; результат - в аккумуляторе.
ANDA @X [A&X[MEM] -> A] - логическое умножение содержимого аккумулятора и данных из ячейки, адрес которой хранится в регистре Х; результат умножения - в аккумуляторе.
CMPA addr [A - MEM[addr]] - вычитает из содержимого аккумулятора содержимое ячейки с адресом addr, при этом содержимое аккумулятора не меняется, но формируется признак нуля.
Команды работы со стеком.
LDSP addr [адрес -> SP] - инициализация стека.
Команды условной передачи управления.
BEQ offset - если признак нуля Z=1, то происходит переход. оffset – восьмиразрядное число со знаком. Смещение происходит относительно счетчика команд, т.е. содержимое счетчика команд суммируется со смещением и получается адрес следующей команды.
BNE offset – если Z=0, то переход на offset;
BR offset – всегда переход на offset.
JMP addr – преход на команду с адресом addr. Такой переход называется безусловным.
Команды работы с подпрограммами.
CALL addr – обращение к подпрограмме (СК->стек, addr->CК);
RETURN – возвращение из подпрограммы (Стек->СК).
Микропроцессор с регистрами общего назначения (МПРОН).
РОН – регистры, в которых могут храниться как адреса, так и данные. Любой из регистров общего назначения может исполнять роль аккумулятора, индексного регистра, указателя стека.
Команды могут быть для восьми- (CLRB), так и шестнадцатиразрядных данных (CLR).
NOP [no operation] - выбирая эту команду, МП ничего не делает, а переходит к следующей команде.
Команда, используется для организации задержки.
CLR(В) op - обнуление содержимого операнда op.
CОM (В) op - инвертирование операнда op.
NEG(В) op - меняет знак у операнда op.
Команды загрузки/сохранения .
LD(В) reg, op - загрузить операнд op в регистр reg .
ST(В) reg, op - сохранить данные операнда в регистре reg.
ADD(В) op,reg - op+reg-> reg
AND(В reg, op - op® >reg
CMP(В) reg, op – reg- op формируется признак нуля. Результат никуда не записывается. Выполняется тогда, когда надо сравнить два числа, если они равны, то формируется признак нуля.
Команды условной передачи управления.
BEQ offset - если признак нуля Z=1, то происходит переход на offset.
BNE offset – если Z=0, то переход на offset;
BR offset – всегда переход на offset.
JMP ор – переход по адресу в операнде (безусловный переход.)
Команды работы с подпрограммами.
CALL op – обращение к подпрограмме;
RET – возвращение из подпрограммы.
1.2.2. Структурная схема и система команд микропроцессора I8080
Структурная схема МП I8080 (КР580ВМ80) представлена на рисунке ниже
Условные обозначения:
СК- счетчик команд;
А- аккумулятор;
РП- регистр признаков;
АЛУ - арифметико-логическое устройство;
УУ - устройство управления.
Рассмотрим основные функции составляющих МП.
Арифметико-логическое устройство (АЛУ). В МП имеется АЛУ, предназначенное для выполнения арифметических и логических операций. В АЛУ рассматриваемого МП выполняются арифметические операции сложения и вычитания и логические операции И, ИЛИ, ИСКЛЮЧАЮЩЕЕ ИЛИ.
Регистры общего назначения можно использовать во всех арифметических и логических командах. Эти регистры можно объединять в пары, тогда получится 16-тиразрядный регистр:
(В,С) – В-пара;
(D,E) – D-пара;
(H,L) – H-пара.
В то же время каждый их них имеет определенную специализацию. Так например, Н-пара часто используется для адресации к памяти (в нее помещается адрес ячейки и производится косвенная регистровая адресация).
Управляющие сигналы.
Управляющие сигналы устройства управления показаны на рисунке ниже
Рис. Управляющие сигналы устройства управления
Синхросигналом Синхр можно записать в регистр управляющее слово (УС).
Сброс - по этому сигналу счетчик команд СК обнуляется.
Прием (ПМ) - сигнал приема МП данных с ШД.
Выдача (ВД) - сигнал выдачи МП данных на ШД.
Работу МП можно приостановить, если снять сигнал готовности (Гот)
Получив сигнал ЗПр, микропроцессор перестает выполнять текущую программу и переходит на подпрограмму обслуживания устройства, которое выдало этот запрос. Этот сигнал проверяется на последнем такте каждого машинного цикла команды.
ЗЗх и ПЗх - обеспечивают режим прямого доступа к памяти. Получив сигнал ЗЗх, МП отключается от магистрали и с этого момента КПДП ( контроллер прямого доступа к памяти ) начинает управлять магистралью.
Управляющее слово (УС).
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
D6 – ВВД (Ввод). выставляется 1, если предполагается, что на данном машинном цикле будут вводиться данные, т.е. адресная шина содержит адрес устройства ввода, а шина данных-вводимую информацию.
D5 – Ц1 (М1) (Первый цикл команды). Признак машинного цикла выборки первого байта команды.
D4 – ВЫВ (Вывод). Выставляется 1, если предполагается, что на первом машинном цикле будут выводиться данные.
D3 – ПОС (Подтверждение останова). Признак останова по команде HALT.
D2 – СТК (Операции со стеком). Выставляется 1, если предполагается обращение к стеку (не получила развития).
D1 - ЗП/ВЫВ (Запись или вывод). Совмещается с командой вывода, следовательно, необходимо учитывать разряд D4.
D0 – ППр (Подтверждение прерывания).
Регистр признака.
Выполнение какой-либо операции может ставиться в зависимость от значения результата выполнения предыдущей операции, например, в том случае, когда при сложении появляется единица переноса.
Чтобы можно было обратиться к информации о результатах вычислений, АЛУ соединяют со специальным набором триггеров, которые устанавливаются в 1 или сбрасываются в 0 в зависимости от результата произведенных вычислений. Каждый из триггеров хранит какой-нибудь признак. В совокупности эти триггеры образуют регистр признаков (регистр флагов), приведенный на рисунке ниже.
S |
Z |
0 |
AC |
0 |
P |
1 |
CY |
D7 |
D6 |
D5 |
D4 |
D3 |
D2 |
D1 |
D0 |
Регистр признаков МП |
Признак нуля Z. Признак нуля отмечает случай появления в АЛУ результата 0000 00002.Признак нуля позволяет организовывать циклы, в течение которых МП-система находится в ожидании какого-то события.
Признак переноса CY. Является одним из важнейших признаков. При сложении двух восьмиразрядных чисел этот признак показывает, нужно ли переносить 1 в младший разряд следующего байта. Он также показывает, нужно ли занимать единицу из старшего байта при вычитании двух восьмиразрядных чисел.
Признак вспомогательного переноса AC. Один из вариантов признака переноса является признак вспомогательного переноса AC, который устанавливается в единицу, если происходит перенос разряда из младшей тетрады байта в старшую. Используется при сложении чисел, записанных в двоично-десятичном коде.
Признак паритета (четности) Р. Признак устанавливается равным 1. если в результате операции общее число единиц является четным. Используется, как правило, при контроле четности данных при передаче, так как позволяет выявить возможные при передаче ошибки.
Система команд МП.
Всю систему команд МП можно разбить на следующие группы:
1) команды пересылок;
2) арифметические команды;
3) логические команды и команды сдвига;
4) команды управления;
5) специальные команды.
Рассмотрим каждую группу команд в отдельности.
1) Команды пересылок.
Команды пересылок предписывают микропроцессору передачу данных из одного блока в другой, например, из одного регистра в другой. Эти команды всегда определяют источник и приемник данных, причем в команде сначала следует адрес приемника, а потом адрес источника.
Содержимое источника при этом не изменяется.
Команда MOV