Cтраница 4
По команде LDA А в аккумулятор загружаются данные, содержащиеся во втором байте команды. При выполнении команды LDD A в аккумулятор загружаются данные из области памяти, на которую указывают второй и третий байты команды. Выполнение команды LDD А длится на 1 микроцикл дольше, чем команды LDA А. [46]
![]() |
Структурная схема подключения контроллера прерываний к МПВУ. [47] |
С приходом каждого из двух оставшихся сигналов ППР ведомая микросхема, запрограммированный номер которой совпал с кодом, находящимся на шине КАС2 - КАСО, выдает на ШД второй и третий байты команды CALL, содержащие адрес подпрограммы обслуживания прерывания. [48]
Для возврата из подпрограммы используется команда RET, под действием которой происходит передача управления по адресу возврата, занесенному в стек при выполнении предыдущей команды CALL. При возврате из подпрограмм, расположенных в текущем программном сегменте, применяются первые два формата команды RET, причем второй формат отличается от первого тем, что к содержимому указателя стека добавляется константа, записанная во 2 - м и 3 - м байтах команды. Это позволяет одновременно с возвратом из подпрограммы сбрасывать параметры, записанные в стек при выполнении этой подпрограммы и не используемые в дальнейшем. [49]
![]() |
Поле распределения адреса памяти программ.| Поле распределения памяти данных. [50] |
Счетчик команд ( СК) предназначен для формирования текущего адреса местонахождения команды в программной памяти. Счетчик команд содержит 12 разрядов. Содержимое СК увеличивается после выбора каждого байта команды и может изменяться скачкообразно при выполнении команд условных, безусловных переходов при выполнении команд CALL и при выполнении прерываний. [51]
В МП ВМ80 применяется довольно простой формат команд, приведенный на рис. 2.3. Команды имеют длину от 1 до 3 байт. Код операции всегда размещен в первом байте команды. Второй и, если необходимо, третий байты команды отводятся под непосредственные данные, адрес порта или ячейки памяти. [52]
Блок программной памяти состоит из ПЗУ ( для микросхем КМ1816ВЕ48, КР1816ВЕ49), счетчика команд, регистра и дешифратора адреса ПЗУ, регистра команд и дешифратора команд. Двенадцатиразрядный счетчик команд ( СК) формирует текущий адрес команды в программной памяти. Содержимое СК увеличивается на 1 после выборки каждого байта команды. При выполнении команд условных, безусловных переходов, вызова подпрограмм и прерываний содержимое СК может быть полностью заменено. Старшин разряд СК изменяется только программно. Счетчик команд разбит на две части: разряды 0 - 7 - младшая часть СК, разряды 8 - 11 - старшая. Регистр команд предназначен для записи и хранения кодов команд, передаваемых через внутреннюю шину с выхода ППЗУ или из порта РО при внешнем ЗУ. [53]
Старшие 8 бит адреса следующей команды пересылаются в ячейку памяти, адрес которой на единицу меньше содержимого указателя СТЕКа SP. Младшие 8 бит адреса следующей команды пересылаются в ячейку памяти, адрес которой на 2 меньше содержимого указателя СТЕКа SP. Управление передается команде, адрес которой указан во втором и третьем байтах команды вызова. [54]
Если старший разряд установлен в 1, переход не осуществляется. Очередная выполняемая в этом случае команда располагается в памяти сразу же за адресными байтами команды перехода. [56]
При использовании команды перехода изменяется содержимое счетчика команд. Содержимое второго и третьего байтов команды перехода пересылается в счедчик команд во время фазы выполнения. Тогда при очередном цикле выборки микропроцессор извлекает команду из области памяти, на которую указывают второй и третий байты команды перехода. [57]
По следующей команде подпрограммы осуществляется отрицательное приращение содержимого регистра В. Далее следует команда ПЕРЕХОД, ЕСЛИ НЕ НУЛЬ. Если в результате отрицательного приращения содержимого регистра В разряд нулевого результата в регистре состояния не устанавливается в 1, то при выполнении команды ПЕРЕХОД, ЕСЛИ НЕ НУЛЬ осуществляется переход. В этом случае следующей является команда ВОЗВРАТ ИЗ ПОДПРОГРАММЫ, потому что адрес именно этой команды содержится во втором и третьем байтах команды JNZ. Конечно, если после команды отрицательного приращения содержимое аккумулятора приобретает нулевое значение, то переход но происходит. Осуществляется выборка команды перехода, но сам переход не реализуется. Следующей в этом случае выполняется очередная по порядку команда-команда ОСТАНОВ. [58]
![]() |
Типовая структурная схема однокристального микропроцессора. [59] |
Регистр команд Р / С принимает выбранную из памяти программ команду и храпит ее в течение цикла выполнения команды. Загрузка Р / С выполняется по л-битной шине данных. Для загрузки каждой части команды требуется отдельный машинный цикл выборки команды. В 8-битных МП регистр команд обычно хранит первый байт команды - код операции. Второй и третий байты команды ( если команда трехбайтная) находятся во вспомогательных регистрах. Эти последние программно недоступны. [60]