Комплект КР580. Основные технические характеристики микропроцессора КР580. Система команд микропроцессора, страница 7

При векторном способе задания прерываний на цикле М1 ВУ будет передавать МП не команду RST VECT, а команду CALL ADR. Получив команду CALL, МП автоматически переходит в режим ввода двух байт адреса на циклах М2 и М3. После этого организуется сохранение программного счетчика в стеке и обращение к началу подпрограммы обслуживания прерывания. Начало подпрограммы указывается во втором и третьем байтах команды CALL. Отметим, что при векторном способе задания прерывания ВУ сообщает не только команду CALL, но и адрес начала обслуживания прерывания.

5.6. “Начальная установка”. В течение всего времени, пока на входе RESET установлен уровень 1, все операции в МП будут приостановлены. За это время обнуляются WZ, триггер разрешения прерываний и внутренняя логика, связанная с формированием сигнала CALL. Поскольку WZ к этому моменту содержит число 0000, то первая команда должна быть записана по адресу 0000. Прерывания остаются отключенными после начала выполнения программы, и для восстановления возможности восприятия запрета прерывания, необходимо включить команду EI.

6. Система команд микропроцессора КР580

МП реализует 4 способа адресации. При непосредственной адресации данные содержит сама команда. Эти данные помещаются во втором и третьем байтах трехбайтовой команды или во втором байте двухбайтовой. Например, команда с мнемоникой ADI предусматривает суммирование содержимого аккумулятора с числом, находящемся во втором байте «B2» команды.

При прямой адресации во втором и третьих байтах команды содержится полный 16-разрядный адрес памяти. Таким способом надо адресоваться к любой ячейке адресного пространства. При регистровой адресации код команды содержит указание на регистр или пару регистров, в которых находятся данные. Используемые в регистровой адресации команды являются однобайтовыми.

Косвенная адресация отличается от регистровой лишь тем, что в регистровой паре, определяемой кодом, содержится не данные, а полный 16-разрядный адрес ячейки памяти, в котором имеются эти данные. Старший байт адреса записывается в первом регистре пары, а младший байт – во втором. Обычно указателем адреса при косвенной адресации является пара регистров HL, но иногда используются пары BC и DE.

Команды можно подразделить на команды:

§  пересылки данных;

§  аргументо-логические команды:

o  операции с двумя операндами, выполняемые над содержимым регистров A и Ri;

o  операции с двумя операндами, одним из которых является второй байт двухбайтовой команды, сложение содержимого пар регистров;

o  операции с одним операндом: они предусматривают положительное или отрицательное приращение на единицу содержания соответствующего регистра или регистровой пары;

o  операции сдвига;

§  команды управления:

o  команды передачи управления;

o  обращение к подпрограммам:

o  вызов подпрограммы характерен тем, что основному действию предшествует подготовка – предыдущее значение программного счетчика записывается в стеке, тем самым обеспечивается будущий выход из подпрограммы. При выполнении команды CALL ADR в стек не засылается слово состояния программы, поэтому, если сохранение содержимого регистров A и  F необходимо, то перед обращением к подпрограмме надо выполнить команду PUSH PSW;

o  возврат из подпрограммы, любая подпрограмма заканчивается командой возврата из подпрограммы условного или безусловного, в любом случае в WZ записывается его содержимое, сохранившееся в стеке во время выполнения подпрограммы;

o  еще одной разновидностью команд обращения к подпрограммам является команда RST VECT, эта команда предусматривает обращение  к подпрограмме, первая команда которой хранится не в любой, а в одной из 8 фиксированных ячеек памяти;

§  группа команд ввода-вывода (всего две). По одной команде может быть выведено или введено одно слово, следовательно, при выводе (вводе) группы слов такие команды должны быть повторены столько раз, сколько байт содержит группа; при команде NOP операции не выполняет, а происходит увеличение командного счетчика и в следующем цикле выполняется следующая по порядку команда;

§  ...прочие команды.