И регистры общего назначения

Аккумулятор Aявляется источником операнда и местом фиксации результата при исполнении арифметических, ряда операций и логических операций передачи данных. Помимо этого, лишь с применением аккумулятора смогут быть выполнены операции сдвигов, проверка на нуль, формирование флага паритета и т.п. В распоряжении пользователя имеются 8 регистров неспециализированного назначения R0–R7 одного из четырёх вероятных банков. При исполнении многих команд в ALU формируется последовательность показателей операции (знамён), каковые фиксируются в регистре слова состояния PSW. В таблице 3 приводится список знамён PSW, даются их символические имена и описываются условия их формирования.

самый “активным” флагом PSW есть флаг переноса, что принимает участие и модифицируется в ходе исполнения множества операций, включая сложение, сдвиги и вычитание. Помимо этого, флаг переноса (C) делает функции “булева аккумулятора” в командах, манипулирующих с битами. Флаг переполнения (OV) фиксирует арифметическое переполнение при операциях над целыми числами со знаком совершает вероятным применение математики в дополнительных кодах. ALU не руководит знамёнами селекции банка регистров (RS0, RS1), их значение абсолютно определяется прикладной программой и употребляется для выбора одного из четырёх регистровых банков.

В процессорах, архитектура которых опирается на аккумулятор, большая часть команд трудятся с ним, применяя неявную адресацию. В семействе Intel 51 дело обстоит в противном случае. Не смотря на то, что процессор имеет в собственной базе аккумулятор, он может делать множество команд и без его участия. К примеру, эти смогут быть переданы из любой ячейки RDM в любой регистр, любой регистр возможно загружен ярким операндом и т.д. Многие логические операции смогут быть выполнены без участия аккумулятора. Помимо этого, переменные смогут быть инкрементированы, декрементированы и проверены без применения аккумулятора. управляющие и Флаги биты смогут быть проверены и поменяны подобно.

Таблица 3 — Формат слова состояния программы PSW

Знак Разряд назначение и Имя
C PSW.7 Флаг переноса. Устанавливается и сбрасывается аппаратно либо программно при исполнении арифметических и логических операций
AC PSW.6 Флаг запасного переноса. Устанавливается и сбрасывается лишь аппаратно при исполнении вычитания и команд сложения и сигнализирует о переносе либо займе в бите 3
F0 PSW.5 Флаг 0. Возможно установлен, скинут либо проверен программой как флаг, специфицируемый пользователем
RS1 PSW.4 Выбор банка регистров. Устанавливается и сбрасывается программно для выбора рабочего банка регистров (см. ниже).
RS0 PSW.3
OV PSW.2 Флаг переполнения. Устанавливается и сбрасывается аппаратно при исполнении арифметических операций
PSW.1 Не употребляется
P PSW.0 Флаг паритета. Устанавливается и сбрасывается аппаратно в каждом цикле и фиксирует нечётное/чётное число единичных битов в аккумуляторе, т.е. делает контроль по четности

Выбор рабочего банка регистров

RS1 RS0 Банк Границы адресов
00Н – 07Н
08H – 0FH
10Н – 17Н
18H – 1FH

синхронизации и Устройство управления. Кварцевый резонатор, подключаемый к внешним выводам микроконтроллера XTAL, руководит работой внутреннего генератора, что со своей стороны формирует сигналы синхронизации. Устройство управления CU на базе сигналов синхронизации формирует машинный цикл фиксированной длительности, равной 12 периодам резонатора. Большая часть команд микроконтроллера выполняется за один машинный цикл. Кое-какие команды, оперирующие с 2-байтными словами либо связанные с обращением к внешней памяти, выполняются за два машинных цикла. Лишь команды деления и умножения требуют четырех машинных циклов. На базе этих изюминок работы устройства управления производится расчёт времени выполнения прикладных программ.

Параллельные порты ввода/вывода информации

Все четыре порта P0-P3 предназначены для ввода либо вывода информации побайтно. Любой порт содержит управляемые регистр-защёлку, выходной и входной буфер драйвер.

Из-за ограниченного количества выводов корпуса ИМС микроконтроллера, большая часть выводов употребляется для исполнения двух функций — в качестве линий портов и для других функций.

Выходные драйверы портов Р0 и Р2, и входной буфер порта Р0 употребляются при обращении к внешней памяти. Наряду с этим через порт Р0 в режиме временного мультиплексирования сперва выводится младший байт адреса, а после этого выдается либо принимается байт данных. Через порт Р2 выводится старший байт адреса в тех случаях, в то время, когда разрядность адреса равна 16 бит. При применении восьмиразрядного адреса порт Р2 возможно применять для ввода/вывода информации простым образом. При обращении к внешней памяти во все биты P0 машинально заносятся 1. Информация в Р2 наряду с этим остается неизменной.

Порт P3кроме вывода информации и обычного ввода употребляется для создания и приема особых управляющих и информационных сигналов. Разряды порта (все либо частично) наряду с этим смогут делать следующие другие функции:

Другие функции смогут быть активированы лишь в том случае, если в соответствующие биты порта P3 предварительно занесены 1. Неиспользуемые другим образом разряды смогут трудиться как в большинстве случаев.

Порты 0-3 являются двунаправленными. Любая линия портов возможно использована независимо для ввода либо вывода.

По сигналу RST в регистры-защёлки всех портов машинально записываются единицы, настраивающие их тем самым на режим ввода.

Все порты смогут быть использованы для организации ввода/вывода информации по двунаправленным линиям передачи. Но порты 0 и 2 не смогут быть использованы для данной цели , если совокупность имеет внешнюю память, сообщение с которой организуется через неспециализированную разделяемую шину адреса/данных, трудящуюся в режиме временного мультиплексирования.

Обращение к портам ввода/вывода допустимо с применением команд, оперирующих с байтом, отдельным битом, произвольной комбинацией битов. Наряду с этим в тех случаях, в то время, когда порт есть в один момент местом и операндом назначения результата, устройство управления машинально реализует особый режим, что именуется «чтение-модификация-запись». Данный режим обращения предполагает ввод сигналов не с внешних выводов порта, а из его регистра-защёлки, что разрешает исключить неправильное считывание ранее выведенной информации.

Таблица 4 — Другие функции порта P3

Знак Разряд назначение и Имя
RD Р3.7 Чтение. Деятельный сигнал низкого уровня формируется аппаратно при обращении к внешней памяти данных
WR Р3.6 Запись. Деятельный сигнал низкого уровня формируется аппаратно при обращении к внешней памяти данных
T1 Р3.5 Вход таймера/счётчика 1 либо тест-вход
T0 Р3.4 Вход таймера/счётчика 0 либо тест-вход
INT1 P3.3 Вход запроса прерывания 1. Воспринимается сигнал низкого уровня либо срез
INT0 Р3.2 Вход запроса прерывания 0. Воспринимается сигнал низкого уровня либо срез
TXD Р3.1 Выход передатчика последовательного порта в режиме UART. Выход синхронизации в режиме регистра сдвига
RXD Р3.0 Вход приёмника последовательного порта в режиме UART. Ввод/вывод данных в режиме регистра сдвига

Таймеры/счётчики

В составе микроконтроллера имеются регистровые пары с символическими именами TH0, TL0 и TH1, TL1, на базе которых функционируют два свободных программно-управляемых 16-битных таймера/счётчика событий T/C0 и T/C1. При работе в качестве таймера содержимое T/C инкрементируется в каждом машинном цикле, другими словами через каждые 12 периодов резонатора.

При работе в качестве счётчика содержимое T/C инкрементируется под действием перехода из 1 в 0 внешнего входного сигнала, подаваемого на соответствующий (T0, T1) вход микроконтроллера. Опрос сигналов выполняется в каждом машинном цикле. Так как на распознавание перехода требуется два машинных цикла, то большая частота подсчёта входных сигналов равна 1/24 частоты резонатора. На продолжительность периода входных сигналов ограничений сверху нет. Для гарантированного прочтения входного считываемого сигнала он обязан удерживать значение 1 как минимум в течение одного машинного цикла.

Для управления режимами работы и для организации сотрудничества таймеров с совокупностью прерывания употребляются два регистра особых функций TMOD и TCON (таблицы 5 и 6). Для обоих таймер/счетчиков режимы работы 0, 1 и 2 однообразны. Режимы 3 для T/C0 и T/C1 разны.

Таблица 5- Регистр режима работы таймера/счётчика TMOD

Знак Разряд назначение и Имя
T/C1 T/C0
GATE TMOD.7 TMOD.3 Управление блокировкой. В случае, если бит установлен, то таймер/счётчик n разрешен , пока на входе “INTn” бит управления и высокий уровень “TRn” установлен. В случае, если бит скинут, то Т/С разрешается, когда устанавливается бит управления “TRn”
C/T TMOD.6 TMOD.2 Бит выбора режима таймера либо счётчика событий. В случае, если бит скинут, то трудится таймер от внутреннего источника сигналов синхронизации. В случае, если бит установлен, то трудится счётчик от внешних сигналов на входе “Tn”
M1 M0 TMOD.5 TMOD.4 TMOD.1 TMOD.0 Выбор режима работы
M1 M0
TLn трудится как 5-битный предделитель частоты на 32
16-битный таймер/счётчик. THn и TLn включены последовательно
8-битный автоперезагружаемый таймер/счётчик. THn хранит значение, которое должно быть перезагружено в TLn любой раз по переполнению
Таймер/счётчик 1 останавливается. TL0 трудится как 8-битный таймер/счётчик, и его режим определяется управляющими битами таймера 0. ТН0 трудится лишь как 8-битный таймер, и его режим определяется управляющими битами таймера 1

Режим 0.Перевод любого T/C в данный режим делает его 8-разрядным таймером, на вход которого подключен 5-битный предделитель частоты на 32. В этом режиме таймерный регистр имеет разрядность 13 бит. При переходе из состояния “все единицы” в состояние “все нули” устанавливается флаг прерывания от таймера TF1. Входной синхросигнал таймера 1 разрешен (поступает на вход T/C), в то время, когда управляющий бит TR1 установлен в 1 и или управляющий бит GATE (блокировка) равен 0, или на внешний вход запроса прерывания INT1 поступает уровень 1.

Установка бита GATE в 1 разрешает применять таймер для измерения длительности импульсного сигнала, подаваемого на вход запроса прерывания.

Режим 1. Работа любого T/C в этом соответствует режиму 0, за исключением того, что таймерный регистр имеет разрядность 16 бит.

Режим 2.В этом режиме работа организована так, что переполнение (переход из состояния «все единицы» в состояние «все нули») 8-битного счётчика TL1 приводит не только к установке флага TF1, но и машинально перезагружает в TL1 содержимое старшего байта (TH1) таймерного регистра, которое предварительно было задано программным методом. Перезагрузка оставляет содержимое TH1 неизменным. В режиме 2 T/C0 и T/C1 трудятся одинаково.

Режим 3. В этом режиме T/C0 и T/C1 трудятся по-различному. T/C1 сохраняет неизменным собственное текущее содержимое. Иными словами, эффект такой же, как и при сбросе управляющего бита TR1 в нуль. В этом режиме TL0 и TH0 функционируют как два свободных 8-битных счётчика. Работу TL0 определяют управляющие биты T/C0 (C/T, GATE, TR0), входной сигнал INT0 и флаг переполнения TF0. Работу TH0, что может делать лишь функции таймера (подсчёт машинных циклов микроконтроллера), определяет управляющий бит TR1. Наряду с этим TH0 применяет флаг переполнения TF1.

Режим 3 употребляется в тех случаях, в то время, когда требуется наличие дополнительного 8-битного таймера либо счётчика событий. Можно считать, что в режиме 3 микроконтроллер имеет в собственном составе три таймера/счётчика. В том случае, если T/C0 употребляется в режиме 3, T/C1 возможно либо включен, либо отключён, либо переведен в собственный личный режим 3, либо возможно использован последовательным портом в качестве генератора частоты передачи, либо, наконец, возможно использован в любом применении, не требующем прерывания.

Таблица 6 — Регистр управления/статуса таймера TCON

Знак Разряд назначение и Имя
TF1 TCON.7 Флаг переполнения таймера 1. Устанавливается аппаратно при переполнении таймера/счётчика. Сбрасывается при обслуживании прерывания аппаратно
TR1 TCON.6 Бит управления таймера 1. Устанавливается/сбрасывается программой для пуска/останова
TF0 TCON.5 Флаг переполнения таймера 0. Устанавливается аппаратно. Сбрасывается при обслуживании прерывания
TR0 TCON.4 Бит управления таймера 0. Устанавливается/сбрасывается программой для пуска/останова таймера/счётчика
IE1 TCON.3 Флаг фронта прерывания 1. Устанавливается аппаратно, в то время, когда детектируется срез внешнего сигнала INT1. Сбрасывается при обслуживании прерывания
IT1 TCON.2 Бит управления типом прерывания 1. Устанавливается/сбрасывается программно для спецификации запроса INT1 (срез/низкий уровень)
IE0 TCON.1 Флаг фронта прерывания 0. Устанавливается по срезу сигнала INT0. Сбрасывается при обслуживании прерывания
IT0 TCON.0 Бит управления типом прерывания 0. Устанавливается/сбрасывается программно для спецификации запроса INT0 (срез/низкий уровень)

Последовательный порт

Через универсальный асинхронный приёмопередатчик UART (Universal Asynchronous Receiver-Transmitter) происходит передача информации, представленной последовательным кодом (младшими битами вперед), в полном дуплексном режиме обмена. В состав UART, именуемого довольно часто последовательным портом, входят принимающий и передающий сдвигающие регистры, и особый буферный регистр (SBUF) приёмопередатчика.

Регистр SBUF. Представляет собой два свободных регистра: буфер передатчика и буфер приёмника. Загрузка байта в SBUF срочно приводит к началу процесса передачи через последовательный порт. В то время, когда байт считывается из SBUF, это значит, что его источником есть приёмник последовательного порта. Запись байта в буфер ведет к автоматической переписи байта в сдвигающий регистр передатчика и инициирует начало передачи байта. Наличие буферного регистра приёмника разрешает совмещать операцию чтения ранее принятого байта с приёмом очередного байта. В случае, если к моменту окончания приёма байта прошлый байт не был считан, то он будет потерян.

Регистр SCON. Регистр рекомендован для управления режимом работы UART. Регистр содержит управляющие биты и девятый бит принимаемых либо передаваемых данных RB8 и TB8, и биты прерывания приёмопередатчика RI и TI. Функциональное назначение битов указано в таблице 7.

Таблица 7 — Регистр управления/статуса SCON

Знак Разряд назначение и Имя
SM0 SCON.7 Биты управления режимом работы UART. Устанавливаются/сбрасываются программно (см. ниже)
SM1 SCON.6
SM2 SCON.5 Бит управления режимом UART. Устанавливается программно для запрета приёма сообщения, в котором девятый бит равен 0
REN SCON.4 Бит разрешения приёма. Устанавливается/сбрасывается программно для разрешения/запрета приёма последовательных данных.
TB8 SCON.3 Передача бита 8. Устанавливается/сбрасывается программно для задания девятого передаваемого бита в режиме UART 9 бит
RB8 SCON.2 Приём бита 8. Устанавливается/сбрасывается аппаратно для фиксации девятого принимаемого бита в режиме UART -9 бит
TI SCON.1 Флаг прерывания передатчика. Устанавливается аппаратно при окончании передачи байта. Сбрасывается программно по окончании обслуживания прерывания
RI SCON.0 Флаг прерывания приёмника. Устанавливается аппаратно при приёме байта. Сбрасывается программно по окончании обслуживания прерывания
SM0 SM1 Режим работы UART
Сдвигающий регистр расширения ввода/вывода
UART — 8 бит. Изменяемая скорость передачи
UART — 9 бит. Фиксированная скорость передачи
UART — 9 бит. Изменяемая скорость передачи

Прикладная программа путём загрузки в два старших разряда SCON определяет режим работы UART. Последовательный порт может трудиться в четырех разных режимах.

Режим 0 -восемь бит данных передаются и принимаются через вход приёмника RхD. Выход передатчика TхD употребляется для выдачи импульсов синхронизации, каковые сопровождают любой бит. За один машинный цикл передаётся один бит. Частота передачи равна FРЕЗ/12.

Режим 1 -передаются либо принимаются 10 бит данных в формате:

старт-бит=0, 8 бит данных, стоп-бит=1

Скорость приёма/передачи задаётся таймером.

Режим 2 -передаются либо принимаются 11 бит данных в формате:

старт-бит=0, 8 бит данных, программируемый девятый бит В8, стоп-бит=1

Девятый бит может употребляться для увеличения достоверности путём контроля чётности, в него возможно записать значение показателя паритета из PSW. Частота приёма/передачи выбирается программно и предположительно составит FРЕЗ/32 либо FРЕЗ/64 частоты резонатора в зависимости от состояния бита SMOD в регистре PCON.

Режим 3 -совпадает с режимом 2, но частота приёма/передачи задаётся таймером.

Во всех режимах передача инициируется любой командой, где SBUF указан как получатель байта. Приём в UART в режиме 0 происходит при условии RI=0 и REN=1. В режимах 1-3 приём начинается с приходом старт-бита, в случае, если REN=1.

В TB8 программно устанавливается значение девятого бита данных, что будет передан в режиме 2 либо 3. В RB8 фиксируется в режимах 2 и 3 девятый принимаемый бит данных. В режиме 1, в случае, если SM2=0, в бит RB8 заносится стоп-бит. В режиме 0 RB8 не употребляется.

Флаг прерывания передатчика TI устанавливается аппаратно в конце периода передачи восьмого бита данных в режиме 0 и в начале периода передачи стоп-бита в режимах 1-3. Подпрограмма обслуживания этого прерывания обязана сбрасывать бит TI.

Флаг прерывания приёмника RI устанавливается аппаратно в конце периода приёма восьмого бита данных в режиме 0 и в середине периода приёма стол-бита в режимах 1-3. Подпрограмма обслуживания прерывания обязана сбрасывать бит RI.

Работа UART в мультиконтроллерных совокупностях. В совокупностях децентрализованного управления, каковые употребляются для регулирования и управления в типологически распределенных объектах, появляется задача обмена информацией между множеством микроконтроллеров, объединенных в локальную вычислительно-управляющую сеть. В большинстве случаев, локальные сети на базе Intel 51 имеют магистральную архитектуру с разделяемым моноканалом (коаксиальный кабель, витая пара, оптическое волокно), по которому осуществляется обмен информацией между контроллерами.

Бит SM2 в SCON разрешает несложными средствами реализовать межконтроллерный обмен. Механизм обмена выстроен на том, что в режимах 2 и 3 программируемый девятый бит данных при приёме фиксируется в бите RB8. UART возможно запрограммирован так, что при получении стоп-бита прерывание от приёмника будет допустимо лишь при условии RB8=1. Ведущий контроллер всем ведомым передаёт широковещательное сообщение с байтом-идентификатором абонента, которое отличается от байтов данных лишь тем, что в его девятом бите содержится 1. Ведомые по этому показателю приводят к сравнения байта-идентификатора с кодом собственного сетевого адреса. Адресуемый контроллер сбрасывает собственный SM2 и готовится к приёму блока данных. Остальные ведомые микроконтроллеры оставляют неизменными собственные SM2=1 и передают управление главной программе. При SM2=1 информационные байты в сети прерывания не вызывают.

В режиме 1 независимого микроконтроллера SM2 употребляется для контроля истинности стоп-бита. В режиме 0 SM2 не употребляется и должен быть скинут.

Скорость приёма/передачи. Скорость зависит от режима работы UART. В режиме 0 частота зависит лишь от резонатора: f0=fрез/12. За один машинный цикл передаётся один бит.

В режимах 1-3 скорость зависит от значения управляющего бита SMOD в регистре особых функций PCON (таблица 8).

В режиме 2 частота передачи f2=(2SMOD/64)fрез.

В режимах 1 и 3 в формировании частоты передачи не считая управляющего бита SMOD принимает участие таймер 1. Наряду с этим частота передачи зависит от частоты переполнения (OVT1) и определяется следующим образом: f1,3=(2SMOD/32)fOVT1. Прерывание от таймера 1 в этом случае должно быть заблокировано. Сам T/C1 может трудиться и как таймер, и как счётчик событий в любом из трёх режимов. Но самый комфортно применять режим таймера с автоперезагрузкой (старшая тетрада TMOD=0010В). Наряду с этим частота передачи определяется выражением

f1,3=(2SMOD/32)(fрез/12)(256-(TH1)).

Таблица 8 — Регистр управления мощностью PCON

Знак Разряд функция и Наименование
SMOD PCON.7 Удвоенная скорость передачи. В случае, если бит установлен в 1, то скорость передачи в два раза больше, чем при SMOD=0
PCON.6-4 Не употребляются
GF1 PCON.3 Знамёна, специфицируемые пользователем (знамёна неспециализированного назначения)
GF0 PCON.2
PD PCON.1 Бит пониженной мощности. При установке в 1 микроконтроллер переходит в режим пониженного энергопотребления
IDL PCON.0 Бит холостого хода. В случае, если бит установлен в 1, то микроконтроллер переходит в режим холостого хода

Примечание. При одновременной записи 1 в PD и IDL бит PD имеет преимущество. Сброс PCON выполняется методом загрузки в него кода 0XXX0000.

Совокупность прерываний

Внешние прерывания INT0 и INT1 (рисунок 6) смогут быть позваны уровнем либо переходом сигнала из 1 в 0 на входах микроконтроллера в зависимости от значений управляющих битов IT0 и IT1 в регистре TCON. От внешних прерываний устанавливаются знамёна IE0 и IE1 в регистре TCON, каковые инициируют вызов соответствующей подпрограммы обслуживания прерывания. Сброс этих знамён выполняется аппаратно лишь в том случае, если прерывание было вызвано по переходу (срезу) сигнала. В случае, если же прерывание позвано уровнем входного сигнала, то сбросом флага IE руководит соответствующая подпрограмма обслуживания прерывания методом действия на источник прерывания с целью снятия им запроса.

И регистры общего назначения

Рисунок 6 — Схема прерываний микроконтроллера семейства Intel 51

Знамёна запросов прерывания от таймеров TF0 и TF1 сбрасываются машинально при передаче управления подпрограмме обслуживания. Знамёна запросов прерывания RI и TI устанавливаются UART аппаратно, но сбрасываться должны программой. Прерывания смогут быть позваны либо отменены программой, поскольку все перечисленные знамёна программно дешёвы.

В блоке регистров особых функций имеется два регистра, предназначенных для управления уровнями приоритета и режимом прерываний. Форматы этих регистров, имеющих символические имена IE и IP обрисованы в таблицах 9 и 10.

Таблица 9 — Регистр масок прерывания IE

Знак Разряд назначение и Имя
EA IE.7 Снятие блокировки прерываний. Сбрасывается программно для запрета всех прерываний независимо от состояний IE4-IE0
IE.6, 5 Не употребляются
ES IE.4 Бит разрешения прерывания от UART. Установка/сброс программой для разрешения/запрета прерываний от знамён TI, RI
ET1 IE.3 Бит разрешения прерывания от таймера 1. Установка/сброс программой для разрешения/запрета прерываний от таймера 1
EX1 IE.2 Бит разрешения внешнего прерывания 1. Установка/сброс программой для разрешения/запрета прерываний
ET0 IE.1 Разрешение прерывания от таймера 0. Трудится подобно IE.3
EX0 IE.0 Разрешения внешнего прерывания 0. Трудится подобно IE.2

Таблица 10 — Регистр приоритетов прерывания IP

Знак Разряд назначение и Имя
IP.7-5 Не употребляются
PS IP.4 Бит приоритета UART. Установка/сброс программой для назначения прерыванию от UART высшего/низшего приоритета
PT1 IP.3 Бит приоритета таймера 1. Установка/сброс программой для назначения прерыванию от таймера 1 высшего/низшего приоритета
PX1 IP.2 Бит приоритета внешнего прерывания 1. Установка/сброс программой для назначения прерыванию INT1 высшего/низшего приоритета
PT0 IP.1 Бит приоритета таймера 0. Трудится подобно IP.3
PX0 IP.0 Бит приоритета внешнего прерывания 0. Трудится подобно IP.2

Примечание. В случае, если флаг прерывания был установлен, но по одному из перечисленных условий не взял обслуживания и к моменту окончания блокировки уже был скинут, то запрос прерывания теряется.

Возможность программной установки/сброса любого управляющего бита в этих двух регистрах делает совокупность прерываний только эластичной.

Знамёна прерываний опрашиваются в каждом машинном цикле. Ранжирование прерываний по приоритету выполняется в течение следующего машинного цикла. Совокупность прерываний организует аппаратно вызов LCALL соответствующей подпрограммы обслуживания, если она не заблокирована одним из условий:

1. Сейчас обслуживается запрос прерывания равного либо более большого уровня приоритета;

2. Текущий машинный цикл – не последний в цикле делаемой команды;

3. Выполняется команда RETI либо каждая команда, которая связана с обращением к регистрам IE либо IP.

По аппаратно организованному коду команды LCALL совокупность прерывания помещает в стек содержимое программного счётчика PC и загружает в PC адрес вектора прерывания соответствующей подпрограммы обслуживания. По этому адресу должна быть расположена команда абсолютного перехода JMP к начальному адресу подпрограммы обслуживания прерывания. Эта подпрограмма при необходимости обязана начинаться командами записи в стек PUSH слова состояния программы PSW, аккумулятора A, расширителя аккумулятора B, указателя данных DPTR и т.д. и заканчиваться командами восстановления из стека POP. Подпрограммы обслуживания прерывания непременно завершаются командой RETI, по которой в программный счётчик перезагружается из стека сохранённый адрес возврата в главную программу. Команда RET кроме этого возвращает управление, но наряду с этим не снимает блокировку прерывания.

#6. Что такое регистры и прерывания / 2. Введение в ассемблер / Программирование с нуля


Интересные записи:

Понравилась статья? Поделиться с друзьями: