Курсовая работа: Встроенные микропроцессорные системы на основе однокристальных микро ЭВМ
В машинном коде команда занимает один, два или три байта и выполняется за один, два или четыре (умножение и деление) машинных цикла. При частоте тактового генератора, равной 12 МГц, одноцикловые команды выполняются за 1 мкс, двухцикловые – за 2 мкс и т.д. Из 111 типов команд 64 выполняются за 1 мкс (12 тактов), 45 команд – за 2 мкс (24 такта) и две команды – умножение и деление (MUL, DIV) выполняются за 4 мкс (48 тактов).
Все команды условных переходов осуществляются относительно содержимого счетчика команд с адресом перехода, вычисляемым ЦПУ во время выполнения команды.
Трехбайтовые команды перехода и вызова LCALL, LJMP (с 16-разрядным адресом) позволяют осуществлять переход и обращение по любому адресу адресного пространства памяти программ емкостью 64 Кбайт. Если необходим переход в пределах области памяти программ 2 К, то можно использовать команды перехода и вызова с 11-разрядным адресом (ACALL, AJMP). Переход внутри участка памяти, определяемый 8-разрядной величиной смещения, осуществляется по команде SJMP. В табл. 2 приведены обозначения и символы, используемые в системе команд.
Систему команд ОМЭВМ условно можно разбить на пять групп: арифметические команды; логические команды с байтовыми переменными; команды передачи данных; команды битового процессора; команды ветвления программ и передачи управления.
Арифметические команды. В наборе команд ОМЭВМ имеются следующие арифметические операции: сложение, сложение с учетом флага переноса, вычитание с заёмом, инкрементирование, декрементирование, сравнение, десятичная коррекция, умножение и деление.
Таблица 2 – Обозначение символов в наборе команд
Обозначение, символ | Назначение |
1 | 2 |
А | Аккумулятор |
Rr | Регистры текущего выбранного банка регистров |
r | Номер загружаемого регистра, указанного в команде |
direct | Прямо адресуемый 8-битовый внутренний адрес ячейки данных, который может быть ячейкой внутреннего ОЗУ данных (0-127) или SFR (128-255) |
@Rr | Косвенно адресуемая 8-битовая ячейка внутреннего ОЗУ данных |
data 8 | 8-битовое непосредственное данное, входящее в код операции (КОП) |
Data 16 | 16-битовое непосредственное данное, входящее КОП |
Data Н | Старшие биты (15-8) непосредственных 16-битовых данных |
Data L | Младшие биты (7-0) непосредственных 16-битовых данных |
Addr 11 | 11-битовый адрес назначения |
Addr 16 | 16-битовый адрес назначения |
Addr L | Младшие биты адреса назначения |
disp 8 | 8-битовый байт смещения со знаком |
bit | Бит с прямой адресацией, адрес которого содержит КОП, находящийся во внутреннем ОЗУ данных или SFR |
al5,al4...a0 | Биты адреса назначения |
(X) | Содержимое элемента Х |
((X)) (X) [M] |
Содержимое по адресу, хранящемуся в элементе Х Разряд М элемента Х |
(X)[MI-M2] | Группа разрядов М1-М2 элемента Х |
+ - * / AND OR XOR /X |
Операции: сложения вычитания умножения деления логического умножения (операция И) логического сложения (операция ИЛИ) сложения по модулю 2 (операция "Исключающее ИЛИ") инверсия элемента Х |
В АЛУ производятся действия над целыми числами без знака. В двухоперандных операциях: сложение (ADD), сложение с переносом (ADDC) и вычитание с заёмом (SUBB) аккумулятор является первым операндом и принимает результат операции. Вторым операндом может быть рабочий регистр выбранного банка рабочих регистров, регистр внутренней памяти данных с косвенно-регистровой и прямой адресацией или байт непосредственных данных. Указанные операции влияют на флаги: переполнения, переноса, промежуточного переноса и флаг четности в слове состояния процессора (PSW).
Использование разряда переноса позволяет многократно повысить точность при операциях сложения (ADDC) и вычитания (SUBB).