Простейшая микро-ЭВМ

         

ГРУППА КОМАНД ПЕРЕХОДОВ


Эта группа команд предназначе­на для организации правильной последовательности выполнения программы. Сюда входят команды безусловного и условного переходов, команды вызова подпрограммы и возвращения к главной программе. Все команды этой группы на флаги влия­ния не оказывают. Команды безусловного перехода выполняют специальные операции над содержимым счетчика команд. Команды условного перехода обеспечивают необходимое ветвле­ние программы путем анализа состояния одного из четырех флагов: нуля, знака, четности и переноса, коды которых указа­ны в табл. 4.4.

Команда JMP <В2> <ВЗ> — трехбайтовая команда передает управление команде по адресу, содержащемуся в третьем и втором байтах текущей команды. Это осуществляется путем записи содержимого третьего и второго байтов команды в счетчик команд (рис. 4.11,а). Как уже отмечалось в § 4.3, счетчик команд представляет собой 16-разрядный регистр, содержащий адрес, по которому можно обратиться для считывания очеред­ного байта команды. Восьмеричный код этой команды - 303 Q.

Команды CALL и RET — команды безусловного перехода. Первая из них передает управление подпрограмме, прекращая выполнение основной программы; вторая передает управле­ние главной программе, возвращаясь к ее выполнению (рис. 4.11,£, в). Первая команда — трехбайтовая. Восемь стар­ших разрядов адреса следующей команды пересылаются в ячей­ку памяти, адрес которой на единицу меньше содержимого ука­зателя стека. Восемь младших разрядов адреса следующей команды пересылаются в ячейку памяти, адрес которой на две единицы меньше содержимого указателя стека. Содержимое указателя стека уменьшается на две единицы. Управление пере­дается команде, адрес которой размещается в третьем и втором байтах команды CALL

Рис. 4.11. Примеры размещения некоторых команд переходов в байтах

Команда RET — однобайтовая. Ее восьмеричный код — 311Q (код предыдущей команды CALL — 315Q). В процессе выполне­ния этой команды содержимое указателя стека получает прира­щение на две единицы.
Содержимое ячейки памяти по адресу, хранящемуся в указателе стека, пересылается в счетчик команд на место младших восьми разрядов. Содержимое ячейки памяти по адресу, на единицу большему, чем содержимое указателя стека, пересылается в счетчик команд на место старших восьми разрядов. Таким образом, возвращение к главной программе происходит всегда путем обращения к байту команды, непо­средственно следующему за байтом, используемым командой CALL

 

4.6.5. ГРУППА КОМАНД УПРАВЛЕНИЯ И РАБОТЫ СО СТЕКОМ

Команды этой группы предназна­чены для управления работой микропроцессора, устройствами ввода/вывода и стеком. Команды этой группы не оказывают влияния на флаги. Рассмотрим в качестве примера работу неко­торых команд из этой группы.

Команда XTHL — однобайтовая команда с восьмеричным номером 343Q. Является примером наиболее длинных по вре­мени исполнения команд - занимает 18 машинных тактов.

В процессе выполнения команды содержимое регистра L меня­ется на содержимое ячейки памяти по адресу, содержащемуся в указателе стека, и наоборот. Содержимое регистра Н меня­ется на содержимое ячейки памяти по адресу, на единицу боль­шему, чем содержимое указателя стека, и наоборот (рис. 4.12,я). На это уходит пять машинных циклов.

Команды IN <B2>, OUT <B2> . Эти команды предназначены для ввода данных от входного порта в аккумулятор и вывода данных из аккумулятора в выходной порт соответственно. Первая команда имеет восьмеричный код 333 Q, вторая — 323 Q. Обе команды — двухбайтовые. Второй байт обеих команд отве­ден под адрес соответствующего входного и выходного портов. В результате выполнения первой команды данные от входного порта по двунаправленной шине данных передаются в аккумуля­тор. В результате выполнения второй команды данные выводят­ся по той же шине данных из аккумулятора в выходной порт (рис. 4.12,6, в).



Рис. 4.12. Примеры размещения некоторых команд управления в байтах

На этом закончим рассмотрение примеров размещения в бай­тах команд описанных выше групп и перейдем к вопросу о том, как составляется программа решения на ПМ-ЭВМ задачи с ис­пользованием приведенного в приложении 1 списка команд.


Содержание раздела