Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


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



 

Аккумулятор 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 также возвращает управление, но при этом не снимает блокировку прерывания.

 


Поделиться:



Популярное:

Последнее изменение этой страницы: 2016-04-10; Просмотров: 928; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.048 с.)
Главная | Случайная страница | Обратная связь