Бродин В. Б., Шагурин И. И. Микроконтроллеры (1999) (1095894), страница 10
Текст из файла (страница 10)
табл, 1.12) (РС) с- (РС)+(с$8), если Ы-0 РС с — РС + с$8, если Ьс-1 (110!ссссН68) (00! 1ОЬЬЬНЬге8)(68) 00111ЬЬЬ Ьге с$8 ,)се 3ВС ВЯ Ьге8 с — Ьгей-1 (РС) +- (РС)+(с$8), если ЬгейтеО ТР ТЕК с — ТРТЕ8-1 РС с- РС + с18,если нг МО 64К: (8Р) с — (8Р)-2, ((ЯР)) с- (РС), (РС) с — (РС)+(с$$),' 1М: (8Р) +- (8Р)-4, ((ЯР)) +- (ЕРС+РС), ЕРС+РС с- ЕРС+РС + сй 64К; (РС) с- ((ЯР)), (8Р) +- (ЯР)+2; 1М: ЕРС+РС с- ЯР, ЯР с- 8Р +4 КЕТ (!1110000) ТКАР 64К: (8Р) +- (8Р)-2, ((ЯР)) с — (РС), (РС) с — 2010Н; 1М: (8Р) с — (8Р)-4, ((8Р)) с- (ЕРС+РС), ЕРС+РС +-ОРР2010Н (11110111) СЕКС 8ЕТС СЕКУТ (11111000) (11111001) 11111100 (С) +-0 (С) с-1 УТ +-0 адресов, то есть 266 байт. Базовый 16-разрядный адрес этой таблицы содержится в регистре с номером (1Ъазе), заданном в четвертом байте команды.
Относительный адрес команды в таблице определяется 7-разрядным индексом ($ХПЕХ), который выбирается цо адресу, содержащемуся в регистре с номером ($пс(ех), заданным во втором байте команды. Отдельные разряды этого индекса могут маскироваться с помощью 7-разрядной маски (МАЕК), непосредственно заданной в третьем байте команды.
Относительный адрес имеет 8 разрядов и формируется путем логического умножения (операция АХ()) значений индекса и маски и сдвига полученного результата на один разряд влево (умножение на 2): Е($Х2 () )хх)$г ЗСАЕ$ ЕСАЕ$. ЕСАЕЕ (11000000НЬге8Нс$8) (1!!00001Нчте8Нс$8) (00101сйс$Нс$8) (1110111!НТ$16) 11110001 с!24 относительный адрес = Ц!ХОЕХ) АХО (МАЗКЦ * 2 микР(жонтРОллеРМ: АРхитектуРА пРОГРАммиРОВАние интеРФейс 46 Полученное четное значение 8-разрядного относительного адреса выбира- ет один из 128 адресов команд, содержащихся в таблице. Загружаемый в (РС) новый адрес команды образуется суммированием 16-разрядного базо- вого адреса из регистра с номером (ЕЬазе) и относительного адреса.
Табл. 1.12. Значвиив признаков длн 16 кодов условий Мнемокод (сс) словил Код (сссс) словца Значение признаков Условие ХИТ ХН 0000 0001 ЯТ-О С Ой 2 "1 отсутствие потери точности (прн сдвиге) невмше ннженлн авно ОТ" ХС (Х) АХО (2)-1 С 0 0010 0011 больше (со знаком) отс стане пе еноса ЧТ 0 Ч 0 ХЧТ ХЧ 0100 0101 отсутствие признака-ловушки Отс тствие пе полнения больше нлн равно(со знаком) нен левой ез льтат не авенство 0110 0111 Х-0 2-0 8Т Н 1000 1001 ЯТ-1 С АХО 2 1 потери точности прн (сдвиге) выше без знака 1.Е' С 1010 1011 (Х) Ой (2)-1 С-1 меньше нлн равно (со знаком) наличие не еноса ниже ЧТ Ч 1100 1101 ЧТ-1 Ч-1 установка признака-ловушки наличие пе полнения 1.Т ' Е 1110 1111 Х 1 2" 1 меньше (со знаком) н левой ез льтат авенство В качестве условия часто исполузуется результат сравнения двух чисел с помощью команд СМР СМРВ, СМР1..
Равенство чисел определяется Команды условных переходов производят загрузку нового содержимого программного счетчика (РС) при условии, которое задается определенными значениями признаков. Если данное условие не выполняется, то происходит переход к следующей по порядку команде. Эти команды используют относительную адресацию — новое содержимое программного счетчика образуется путем суммирования текущего содержимого (РС) с заданным во втором байте команды 8-разрядным смещением (Г)8), которое воспринимается как число со знаком.
В результате обеспечиваются переходы к командам, адреса которых находятся в пределах -128..+127 от адреса текущей команды. В качестве условий используется 16 вариантов значений признаков, которые задатотся полем (сссс) кода команды (см. табл. 1.12). Соответствующие мнемокоды условий добавляются к букве 1, образуя мнемокод соответствующей команды условного перехода.
Например, 1+Е = )Š— мнемокод команды перехода по условию нулевого результата (2 - 1). МЙЕРСЕ ТРОЛЛЕРМ СЕМЕЙСТВА МСВ-96 47 значением признака нуля 2 после команд сравнения: равно Е (нулевой результат, 2 - 1), не равно ХЕ (ненулевой результат, 2 - 0). Если операн- ды сравниваются как числа без знака, то соотношение их значений выше- равно-ниже определяется условиями: выше (>) Н выше или равно (> - ) ХС ниже или равно (< - ) ХН ниже (<) С Если сравниватотся операнды со знаком, то соотношение больше-равно- меньше между ними определяют условия (отмечены * в табл.
1.12): больше (>) больше или равно (> - ) меньше или равно (< = ) меньше (<) СТ СЕ )Е 1.Т Команды организации циклов ЩХ2, ЩХстат являются разновидностями команд условных переходов, в которых условием служит нулевое содержимое регистра с номером (Ьгей) или (жгей), используемого в качестве счетчика циклов. При поступлении этих команд содержимое регистра Ьгей или тчгей уменьшается на единицу.
7 Если содержимое регистра в результате этого не становится нулевым, то выполняется переход к начальной команде цикла, и цикл повторяется. Если содержимое регистра становится нулевым, то выполняется следующая по порядку команда программы, то-есть происходит выход из цикла. Число выполняемых циклов определяется начальной загрузкой регистра Ъгей или эгей. Команда ЩХ2, использующая 8-разрядный регистр Ъгей, обеспечивает выполнение до 255 циклов, команда ЩХ2'РК использующая 16-разрядный регистр чтгей, обеспечивает до 65535 циклов. Команды вызова подпрограмм, так же как и команды безусловных перехо- дов, имеют три модификации: ЯСАЕ1., использующая 11-разрядное смещение (т(11); ЕСАУЛ., использующая 16-разрядное смещение (016); ЕСАУЛ)., использующая 24-разрядное смещение (т(24).
Две команды условных переходов используют в качестве условия значение определенного бита в 8-разрядном регистре, номер которого (Ьгей) указывается в команде. Номер тестируемого бита (ЬТ) задается полем (ЬЬЪ) в коде команды. Команда ) ВС выполняет переход при значении Ь1 - О, команда )ВЯ при Ь1 - 1. 48 Значение смешения задается соответствующими байтами команды, как и при выполнении безусловных переходов 5!МР 1ДМР Е!МР. При вызове подпрограммы перед загрузкой нового содержимого программного счетчика текущее значение (РС) или (ЕРС+РС) заносится в стек.
В режиме 64К содержимое указателя стека (5Р) перед загрузкой уменьшается на два, в режиме 1М вЂ” уменьшается на четыре. Прн выполнении команды возврата из подпрограммы НЕТ из стека восста- навливается содержимое программного счетчика (РС) или (ЕРС+РС), пос- ле чего содержимое (5Р) увеличивается на два (в режиме 64 К) или на четы- ре (в режиме 1М). Команда прерывания ТЕАР вызывает подпрограмму обработки, расположенную по фиксированному адресу 2010 Н в режиме 64 К или ОРР2010Н в режиме 1М.
Текущее содержимое программного счетчика (РС) или (ЕРС+РС) при этом заносится в стек. Команда выполняется при любом значении признака разрешения прерывания ! в слове состояния (РЗЪЧ). К этой группе относятся также команды, изменяющие значения признаков С и ЧТ, так как эти признаки задают условия для выполнения команд условных переходов: ДС, )!т!С, )ЧТ, !!т!ЧТ. Команды С?.КС, 5ЕТС устанавливают значения признака С - 0 и 1, команда СЕКЧТ устанавливает значение ЧТ - О.
1.3.5. Операции управления процессором Форматы и коды команд этой группы приведены в табл. 1.13. Табл. 1.13. Команды управления процессором Мнемокод Формат Операции (Р5!Ч) < — О, 64К;(РС) +- 2080Н, 1М: ЕРС+РС А- ОЕГ2080Н Е5Т (11111111) !т!ОР 5К!Р пропуск байта и и скдв хбайтов (1!11!!01) 00000000 хххххххх Е1 В! (!) А- 1, разрешение прерывания 1 < — О,зап щеннеп е ывания ЕРТ5 !) РТ5 (Р5Е) < — 1, разрешение работы ПСР Р5Е < — 0 зап шенне аботыПСР холостой режим, если (кеу)-1 режим отключения, если (!теу)-2 сб если ке и! или 2 101Р!) (1!110!10)(!теу) Команда системного сброса ВЕЗЕТ вызывает переход микроконтроллера в исходное состояние, при котором устанавливатотся нулевые значения всех (!!111011) 11111010 (1!101101) 1!101100 МИКРОКОНТРОЛЛЕРЫ АРХИТЕКТУР ЛРОП АЫМИРОЕАНИ ИНТЕРФЕЙС МИЕРОЕОИТРОЛЛЕРМ СЕМЕЙСТВЯ .96 49 признаков в слове состояния (РБЖ), а программный счетчик адресуется к ячейке памяти с адресом 2080Н на странице ОРРН.
Все регистры микроконтроллера загружаются при этом исходньеми значениями, которые приведены в разделе 1.7. После выполнения данной команды на внешнем выводе №КЕБЕТ устанавливается низкий потенциал, сохраняющийся в течение 16 тактов. Команды ХОР и ЯК! Р не вызывают выполнения каких-либо операций. Фактически поступление этих команд обеспечивает пропуск одного (ХОР) или двух (БК!Р) байт в выполняемой программе и соответствующую задержку ее выполнения (см. приложение 1). Отметим, что содержимое второго байта команды ЗК!Р не влияет на ее выполнение и может быть любым. Команды Е1, !)! устанавливабот в 619 или сбрасывают в «О» значение признака 1 в слове состояния (РЗ'1ЛГ), разрешая или запрещая последующее обслуживание всех маскируемых запросов на прерывание.
Команды ЕРТЗ и !!РТЗ разрешают или запрещают выполнение специализированных процедур обслуживания прерываний с помощью ПСР Подробно вопросы обработки запросов на прерывания рассмотрены в разделе 1А. Команда 1ОЕРП в зависимости от значения второго байта (!Теу) переводит микроконтроллер в различные режимы функционирования. При значении (!Ееу) - (00000001) микроконтроллер переходит в холостой режим, а при ()теу) - (00000010) — в режим отключения питания, которые описаны в разделе 1.1.
Любые другие значения байта (!Ееу) вызывают системный сброс с выполнением начальной загрузки всех регистров, включая (РЗ'!ЛГ) и (ЕРС+РС). 1.4. Реализация прерываний Микроконтроллер 8ХС196ХР выполняет процедуру прерывания при поступлении запросов, которые могут быть вызваны одной из 17 возможных причин, перечисленных в табл.