Специальные команды
166
Это последний класс команд в наборе команд микропроцессора. Они улучшают как эффективность программ, так и удобство их написания.
Поскольку пару общих регистров Н и L можно использовать для обращения к ячейкам памяти при косвенной адресации, команды IHL и DHL увеличения и уменьшения значения, хранящегося в этих регистрах, оказываются очень удобными для модификации адресов. Команды разрешения и запрещения прерываний необходимы для обслуживания запросов прерывания различных устройств. Пустая команда (NOP) реализует программную задержку времени. Она бывает нужна при взаимодействии с медленными устройствами ввода/вывода. Команда останова (HLT), очевидно, позволяет закончить выполнение программы.
Две оставшиеся команды в классе специальных команд это команды PUSH и POP, работающие со стеком. Когда выполняется подпрограмма или программа обработки прерывания, ей для ввода, вывода и обработки данных нужны общие регистры. Однако, как правило, они содержат информацию, нужную основной программе или подпрограмме. Поэтому содержимое трех верхних общих регистров Асс, Н и L вместе с содержимым триггера переноса С можно запомнить в стеке командой PUSH и затем в нужный момент восстановить командой POP. Это позволяет использовать регистры Асс, Н, L и триггер С при выполнении подпрограммы и вместе с тем сохранять их содержимое. Более того, поскольку информация сохраняется в стеке, процедура сохранения/восстановления может быть повторена в подпрограмме или в программе обработки прерываний, обеспечивая много уровней вложения.
Фаза выполнения команды PUSH проходит за два синхроимпульса. По третьему синхроимпульсу командного цикла в стек опускается значение переноса С и аккумулятора, а затем по следующему синхроимпульсу, который фактически будет первым импульсом в следующем командном цикле, в стек опускается значение регистров Н и L. Такое совмещение командных циклов в данном случае вполне допустимо, поскольку информационные потоки не интерферируют друг с другом. Потоки информации в фазах выполнения команд POP и PUSH в точности противоположны.
В приложении в конце книги приведены все команды нашего иллюстративного микропроцессора. Табл. П1 содержит команды в алфавитном порядке, а табл. П2 — в порядке кодов операций.