Выполняя последовательно команды основной программы, МП при очередном действии выбирает из памяти код первой команды CALL, и расшифровывает его. Из последующих двух ячеек памяти выбирается младший байт адреса начала подпрограммы ПП1, а затем старший байт – они должны следовать именно в таком порядке. Сохранив в стеке адрес возврата из подпрограммы ПП1, МП переходит к выполнению этой подпрограммы. В процессе выполнения подпрограммы ПП1 микропроцессор снова встречает команду CALL – переход к выполнению вложенной подпрограммы ПП2. Опять в стеке сохраняется адрес возврата – теперь уже из подпрограммы ПП2 в подпрограмму ПП1. По окончании выполнения подпрограммы ПП2 по команде RET из стека в счетчик команд заносится адрес возврата из подпрограммы ПП2 в подпрограмму ПП1 (он был помещен в стек последним), и МП возвращается к продолжению выполнения подпрограммы ПП1. Закончив ее выполнение, по команде RET он возвращается в основную программу по адресу возврата, который был первым помещен в стек. Точно так же будет происходить выполнение подпрограмм после выполнения второй команды CALL в основной программе, только возврат в программу будет происходить в ячейку памяти, расположенную вслед за ячейками, в которых была записана эта команда перехода.
Рассмотренная команда CALL обеспечивает безусловный переход к подпрограмме. В списке команд МП КР580ВМ80А есть и команды условного перехода к подпрограмме (C condition addr). Переход осуществляется при выполнении тех же условий, при которых осуществлялись переходы в выше рассмотренных командах условных переходов (например, CNZ – переход к подпрограмме, если не ноль, CP – переход к подпрограмме, если плюс, и т.д.). Команды условного возврата из подпрограммы (R condition) позволяют организовать возврат при выполнении определенных условий (например, RZ – возврат, если ноль, RNC – возврат, если нет переноса), иначе будет продолжаться выполнение подпрограммы. Команды условного возврата, как и команда RET, однобайтные, то есть адрес возврата указывать не нужно.
Команды переходов очень широко используются в программах функционирования МПУС, так как они придают микропроцессорным системам черты «интеллекта» и адаптации.
4.3.6. Группа команд управления вводом-выводом, стеком и специальных.
МП КР580ВМ80А, в отличие от многих других, позволяет организовать ввод/вывод данных двумя способами – по аналогии с обращением к памяти и по специальным командам. В первом случае УВВ имеют свои индивидуальные адреса, подобные тем, которые имеют все ячейки памяти, т.е. для устройств ввода/вывода отведена отдельная часть адресов. Поэтому все команды обращения к памяти (например, LDA, STA), имеющие адреса УВВ, становятся командами ввода/вывода, и специальных команд не требуется.
При организации ввода/вывода по специальным командам (называется аккумуляторный или изолированный ввод/вывод) адресное пространство УВВ отделено от адресного пространства основной памяти, которая может занимать все 64 К адресного пространства. Ввод и вывод осуществляется по двухбайтным командам IN port и OUT port, во вторых байтах которых указываются восьмибитные адреса соответствующих УВВ. Адреса УВВ передаются по восьми младшим разрядам ША (дублируются на старших разрядах). Восемь разрядов позволяют адресоваться к 256 устройствам ввода и 256 устройствам вывода. Обмен данными при таком способе ввода/вывода осуществляется через аккумулятор МП, то есть при операции вывода данные сначала необходимо загрузить в аккумулятор, а затем по команде OUT переслать в устройство вывода, а по команде IN данные из устройства ввода пересылаются в аккумулятор, где могут быть непосредственно обработаны или переданы в память.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.