Краткое описание микроконтроллера C16x

Микропроцессорные контролеры серии C16x разработаны на базе универсального 16-разрядного RISС-процессора с четырехcтупенчатым конвейером. Серии C167, C166, C164, C161 отличаются набором периферийных блоков, типом корпуса и наличием соответствующего количества портов ввода-вывода. Ниже приводится краткое описание центрального процессора и структура микроконтроллера C167, который в серии C16x содержит наибольшее количество периферийных устройств.

Рис. 1. Функциональная схема микроконтроллера C167

Организация памяти

Центральное процессорное устройство (ЦПУ) микроконтроллера C167 имеет фон-неймановскую архитектуру, что обеспечивает доступ к исполняемому коду и оперативным данным в пределах единого линейного адресного пространства.

Максимальный размер адресуемой памяти составляет 16 Мбайт, которая разделена на 256 сегментов по 64 Кбайта в каждом или 1024 страниц размером 16 Кбайт.

Регистры общего назначения (GPR), регистры специального назначения (SFR и ESFR), внутренняя память (ROM/RAM), периферийные устройства (CAN, последовательныые каналы, PWM и др.) и внешняя память расположены в пределах единого адресного пространства.

Верхние 4 Кбайта нулевого сегмента (00F000h … 00FFFFh) занимает область внутреннего ОЗУ и область регистров специального назначения (SFR и ESFR). Нижние 32 Кбайт могут быть заняты внутренним ПЗУ (масочное ПЗУ или Flash память), которое может быть переадресовано в первый сегмент (010000h …01FFFFh).

Исполняемый код и оперативные данные могут находиться в любой области внутреннего ОЗУ за исключением области управляющих регистров (SFR/ESFR).

Данные в памяти микроконтроллера хранятся следующим образом: младшие байты слов размещаются по четным адресам, а старшие — по нечетным. Бит, занимающий нулевую позицию в младшем байте, имеет наименьшее значение. Бит на восьмой позиции старшего байта имеет наибольшее значение для беззнакового формата целых чисел (0 … 65535) или является носителем знака для формата знаковых чисел (-32768 … 32767).

Область регистров общего назначения (GPR), регистров специального назначения (SFR/ESFR), а также часть области внутреннего ОЗУ — являются бит-адресуемыми.

Рис. 2. Пространство памяти и адресное пространство

Внутреннее ОЗУ

Внутреннее ОЗУ объемом 2 килобайта (1Кх16) располагается в третьей странице данных нулевого сегмента. Во внутреннем ОЗУ размещаются:

  • системный стек;
  • регистры общего назначения;
  • регистры-указатели событийного контроллера PEC (аналог DMA);
  • пользовательские флаги, переменные, таблицы или другие данные (могут также размещаться во внешней памяти);
  • исполняемый код (может также размещаться во внешней памяти).
Рис. 3. Хранение Слов, Байтов и Битов в памяти

Инструкции исполняемого кода должны находится только по четному адресу.

Для доступа к данным, расположенным во внутреннем ОЗУ, регистр DPP должен указывать на третью страницу данных (регистр должен содержать число 3).

Контроллер PEC выполняет пересылку данных независимо от содержимого регистров DPP в соответствии со значениями адресов, находящихся в регистрах-указателях источника и приемника в пределах сегмента 0.

В пределах сегмента 0 для верхних 256 байт внутреннего ОЗУ (0FD00h…0FDFFh) доступен режим битовой адресации. Это пространство памяти может быть использовано для размещения пользовательских флагов.

Рис. 4. Область внутреннего ОЗУ, ПЗУ и регистров SFR

Системный стек

Системный стек размещается во внутреннем ОЗУ, его размер определяется содержимым битового поля STKSZ в регистре SYSCON.

Доступ к данным, хранящимся на стеке, осуществляется посредством регистра-указателя стека SP. При добавлении данных на стек, указатель стека SP декрементируется, стек при этом растет в сторону младшего адреса. Для контроля за переполнением и исчерпанием системного стека служат регистры STKOV и STKUN.

Регистры-указатели контроллера событий PEC

Во внутреннем ОЗУ по адресам 00FCE0h…00FCFEh расположены 16 двухбайтовых регистров-указателей, предназначенных для хранения адресов источников и приемников контроллера событий PEC. Каждому из восьми каналов PEC контроллера соответствуют расположенные последовательно регистр источника SRCPx и приемника DSTPx (х = 0…7).

Во время работы PEC контроллера регистры SRCPx и DSTPx задают соответствующие адреса регистров источников и приемников независимо от содержимого регистра DPP0…DPP3.

В том случае, когда пользовательская программа не использует PEC-контроллер, регистры источника и приемника могут использоваться для хранения данных.

Рис. 5. Расположение PEC-указателей C167

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

Регистры общего назначения GPR занимают во внутреннем ОЗУ блок из шестнадцати последовательно размещенных слов. Расположение блока во внутренней памяти определяется содержимым указателя контекста CP, в котором хранится адрес первого слова блока GPR.

Каждый блок GPR может содержать до 16-ти двухбайтовых регистров (R0, R1, …, R15) и (или) до 16-ти байтных регистров (RL0, RH0, …, RL7, RH7).

Регистры блока GPR доступны в режимах короткой 2-, 4-, или 8-битовой адресации, в которых регистр-указатель контекста CP используется в качестве базового адреса. Независимо от положения блока GPR во внутренней памяти, все его регистры бит-адресуемы.

Важным достоинством микроконтроллера C16X является возможность быстрой смены текущего блока GPR (контекста), при записи в регистр CP другого значения базового адреса. Во внутреннем ОЗУ одновременно может быть организовано несколько блоков GPR, однако текущим будет только тот из них, адрес начала которого хранится в регистре CP.

Для быстрой смены контекста может исполльзоваться команда установки контекста (Switch Context SCXT), которая пересылает из регистра CP на системный стек адрес текущего блока GPR, затем записывает в регистр CP адрес того блока GPR, который необходимо сделать текущим.

Возможность быстрой смены контекста целесообразно использовать в подпрограммах обработки прерываний. Каждому прерыванию или группе прерываний может быть назначен один из блоков GPR.

Адрес во внутреннем ОЗУОднобайтовые регистрыДвухбайтовые регистры
<CP> + 1EHR15
<CP> + 1CHR14
<CP> + 1AHR13
<CP> + 18HR12
<CP> + 16HR11
<CP> + 14HR10
<CP> + 12HR9
<CP> + 10HR8
<CP> + 0EHRH7 RL7R7
<CP> + 0CHRH6 RL6R6
<CP> + 0AHRH5 RL5R5
<CP> + 08HRH4 RL4R4
<CP> + 06HRH3 RL3R3
<CP> + 04HRH2 RL2R2
<CP> + 02HRH1 RL1R1
<CP> + 00HRH0 RL0R0

Регистры специального назначения (SFR/ESFR)

Область регистров специального назначения (SFR и ESFR), так же как и область внутреннего ОЗУ, располагается в третьей странице данных нулевого сегмента. В нее включены порты ввода-вывода, периферийные устройства и регистры, обслуживающие интерфейс внешней шины. Область регистров специального назначения разделена на два равных блока по 512 байт в каждом. Первый блок SFR находится непосредственно за внутренним ОЗУ (0FE00h…0FFFFh). Второй блок ESFR (Extended SFR) расположен в области памяти (0F000h .. 0F1FFh).

Доступ к регистрам SFR и ESFR осуществляется через 16-битовые косвенные или прямые режимы адресации. В режиме короткой 8-битовой адресации обеспечивается доступ к словам и младшим байтам блока SFR. Однако этот тип адресации (при байтовой адресации) не обеспечивает доступ к старшим байтам соответствующих слов.

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

В режиме доступа к регистрам ESFR при использовании 8-битовой адресации и прямой битовой адресации, предварительно необходимо использовать команду EXTR для переключения режима короткой адресации со стандартного SFR пространства на расширенное ESFR пространство. Этого не требуется в режимах 16-битовой и косвенной адресации. Регистры R15…R0 доступны в обоих блоках регистров через адрес длиной 2, 4 или 8 бит.

Внешняя память

Адресное пространство, не занятое внутренней памятью микроконтроллера, может быть использовано для доступа к внешним устройствам памяти. Доступ осуществляется через интерфес внешней шины.

Рис. 6. Область On-chip XRAM

Микроконтроллер C167 поддерживает четыре режима доступа к внешней памяти в зависимости от ее размера:

  • Несегментный режим. Размер внешней памяти до 64 Кбайт. Вывод шины адреса А15…А0 организован через Порт 0 или Порт 1.
  • Двухбитовый сегментный режим. Размер внешней памяти до 256 Кбайт. Вывод старших разрядов шины адреса А17 и А16 организован через Порт 4, младших разрядов (А0…А15) — Порт 0 или Порт 1.
  • Четырехбитовый сегментный режим. Размер внешней памяти до 1 Мбайта. Вывод старших разрядов шины адреса А19…А16 организован через Порт 4, младших разрядов (А0…А15) — Порт 0 или Порт 1.
  • Восьмибитовый сегментный режим. Размер внешней памяти до 16 Мбайт. Вывод старших разрядов шины адреса А23…А16 организован через Порт 4, младших разрядов (А0…А15) — Порт 0 или Порт 1.

Пять выводов Порта 6 (CS0-CS4) могут быть запрограммированы для выборки внешних устройств, что позволяет легко расширять память микроконтроллера внешними устройствами памяти.

Интерфейс внешней шины обеспечивает четыре различных режима:

  • мультиплексная 16-битовая шина. Шина адреса и данных мультиплексируются через Порт 0.
  • мультиплексная 8-битовая шина. Шина адреса и данных мультиплексируются через Порт 0.
  • немультиплексная 16-битовая шина. Шина адреса — Порт 1, шина данных — Порт 0.
  • немультиплексная 8-битовая шина. Шина адреса — Порт 1, шина данных — младшая часть Порта 0.

Доступ к данным, расположенным во внешней памяти, может выполняться только в режиме косвенной или полной 16-битовой адресации с использованием одного из четырех регистров DPP, а также с помощью команд EXTP, EXTS.

Контроллер событий РЕС выполняет передачу данных в пределах нулевого сегмента памяти независимо от значений регистров DPP по адресам, указанным в регистрах-указателях источника и приемника.

Доступ к внешней памяти в режиме битовой или короткой адресации невозможен.

Центральное процессорное устройство

Центральное процессорное устройство (ЦПУ или центральный процессор ЦП) является ядром микроконтроллера С167, которое обеспечивает выборку исполняемых команд из памяти, их дешифрацию, пересылку операндов в арифметико-логическое устройство (АЛУ), выполнение соответствующих арифметических операций, сохранение полученных результатов в памяти или в регистрах.

Рис. 7. Схема ЦПУ

В основу работы ЦПУ положена конвейерная организация выполнения команд. Благодаря этому для выполнения большинства из них требуется 100 наносекунд при тактовой частоте микроконтроллера 20 МГц.

ЦПУ непосредственнo связано с внутренней памятью микроконтроллера через 32-разрядную шину. Доступ к внешним устройствам осуществляется с помощью контроллера внешней шины (External Bus Controller — EBC).

Внутренние периферийные устройства микроконтроллера работают независимо от ЦПУ, регистры управления которыми объединены в областях памяти SFR (Special Funсtion Registers — регистры специального назначения) и ESFR (дополнительные регистры SFR).

Периферийные устройства могут изменять работу ЦПУ, вырабатывая запросы прерываний. Контроллер прерываний сравнивает уровни приоритетов устройств, одновременно запросивших прерывание, и выбирает то из них, приоритет которого окажется наибольшим.

Обработка прерываний в микроконтроллере выполняется тремя способами:

  • при поступлении прерывания осуществляется переход на программу обработки прерывания по адресу, который хранится в таблице векторов прерываний.
  • при поступлении прерывания выполняется пересылка данных с помощью PEC контроллера.
  • при выполнении команды TRAP.

Наивысшим приоритетом обладают внешнее немаскируемое прерывание и прерывания, генерируемые при обработке системных ошибок (прерывания-ловушки).

Во время работы центральный процессор находится в тесном взаимодействии со сторожевым таймером (WatchDog Timer). Если работа сторожевого таймера разрешена, то его содержимое необходимо обновлять через определенные промежутки времени, в противном случае произойдет его исчерпание (таймер декрементируется), что вызовет системный сброс микроконтроллера.

Сторожевой таймер позволяет предотвратить длительное «зависание» микроконтроллера из-за ошибок выполнения программы или непредусмотренной комбинации внешних сигналов.

Помимо нормального режима работы ЦПУ может находиться в одном из следующих состояний:

  • Состояние системного сброса, в которое ЦПУ переводится после аппаратного или программного сброса, а также при исчерпании сторожевого таймера.
  • Состояние ожидания, в котором подача импульсов тактового генератора к центральному процессору прекращена и осуществляется только к периферийным устройствам.
  • Состояние пониженного энергопотребления, в котором прекращается подача тактовых импульсов ко всем устройствам микроконтроллера.

Перевод ЦПУ в одно из перечисленных состояний производится при помощи специальных команд. Обратный переход из состояния ожидания в режим нормальной работы происходит при возникновении прерывания, а из состояния пониженного энергопотребления — при поступлении сигнала системного сброса.

Управление режимами работы центрального процессора микроконтроллера обеспечивается следующими регистрами:

SYSCONрегистр системной конфигурации;
PSWрегистр управления и индикации
  состояния ЦПУ;
IP, СSPрегистры-указатели команд;
DPP0..DPP3регистры-указатели страниц данных;
CPрегистр-указатель контекста;
SP, STKUN, STKOVрегистры системного стека;

Для уменьшения времени выполнения команд центральным процессором в микроконтроллере используется четырехступенчатый конвейер, который позволяет сократить время выполнения команды до 100 нс (для большинства инструкций) при тактовой частоте микроконтроллера 20 МГц.

Битовые операции

Микроконтроллер обладает гибкой системой команд, обеспечивающей битовые операции с регистрами специального назначения (SFR), c регистрами управления портами микроконтроллера, с регистром флагов, а также с бит-адресуемой областью внутренней памяти.

Инструкции BSET, BCLR, BAND, BOR, BXOR, BMOV, BMOVN позволяют устанавливать или сбрасывать соответствующие биты. Команды BFLD и BFLDH обеспечивают доступ к группе битов (до 8-ми). Инструкция JNBC устанавливает, а JBC сбрасывает заданные биты во время выполнения команды перехода. Команды JB и JNB осуществляют переход в зависимости от состояния заданных битов.

Верхние 256 байт регистров специального назначения (SFR), расширенная область регистров специального назначения (ESFR), а также область регистров общего назначения (GPR) — являются бит-адресуемыми.

При чтении бита в адресном пространстве, которое не является бит-адресуемым, результатом чтения всегда будет 0.

Регистры специального назначения центрального процессора

Для обслуживания работы центрального процессора в микроконтроллере предусмотрено несколько специальных регистров. С их помощью устанавливается системная конфигурация, выполняется умножение и деление операндов, осуществляется доступ к сегментам кода, страницам данных, вершине стека, а также регистрам общего назначения. Эти регистры располагаются в области памяти регистров специального назначения (SFR). Доступ к ним осуществляется так же, как и к другим, расположенным в этой области регистрам. Исключение составляют регистры-указатели команды IP и сегмента кода CSP. Для предотвращения нарушений в работе микроконтроллера их изменение возможно только косвенно с помощью команд перехода.

Содержимое регистров PSW, SP и MDC может изменяться программно (прямая запись в регистры) или аппаратно во время работы центрального процессора.

Регистр системной конфигурации SYSCON

Регистр SYSCON определяет конфигурацию центрального процессора и контроллера внешней шины. Во время выполнения системного сброса состояние регистра SYSCON определяется значением, считанным из порта 0.

Рис. 8. Регистр системной конфигурации
БитФункция
XPER-SHAREДоступ внешних устройств к перифе­рий­ным устройствам шины X-BUS
0: запрещено
1: разрешено
VISIBLEДоступ к периферийным устройствам X-BUS
0: цикл шины внутри контроллера
1: цикл шины обрабатывается периферией
XPENДоступ к внутренним периферийным устройствам X-BUS
0: запрещен
1: разрешен
WRCFGКонфигурация выводов WR и BHE
0: выводы WR и BHE выполняют их основную функцию
1: вывод WR устанавливается как WRL,
BHE устанавливается как WRH
CLKENНастройка порта P3.15 для вывода сигнала CLKOUT
0: CLKOUT запрещен. P3.15 может использоваться как порт ввода-вывода
1: CLKOUT разрешен
BYTDISНастройка порта P3.12 для вывода сигнала BHE
0: BHE разрешен
1: BHE запрещен
ROMENИспользование внутреннего ПЗУ микроконтроллера
0: ПЗУ запрещено.
Область ПЗУ во внешней памяти
1: ПЗУ разрешено
SGTDISУправление режимом сегментации памяти
0: разрешена.
PSW, IP и CSP запоминаются/восстанавливаются во время входа/выхода из прерывания
1:запрещена.
Только IP и PSW запоминаются/восстанавливаются
ROMS1Размещение области внутреннего ПЗУ (32 Кбайта)
0: в сегменте кода 0 (000000h…007FFFh)
1: в сегменте кода 1 (010000h…017FFFh )
STKSZУправление размером системного стека (во внутреннем ОЗУ) от 32 до 1024 слов

Порт вывода сигнала тактового генератора CLKOUT (CLKEN)

Выход сигнала тактового генератора микроконтроллера CLKOUT разрешается установкой бита CLKEN регистра SYSCON. Если бит CLKEN установлен в состояние лог.1, порт P3.15 выдает сигнал тактового генератора с частотой Fout = Fcpu (коэффициент заполнения 50%). При установке бита CLKEN в состояние лог.0 направление порта переключается на вывод независимо от предыдущего состояния. После системного сброса бит CLKEN всегда очищен, а вывод сигнала запрещен.

Разрешение или запрет сегментации (SGTDIS)

Бит SGTDIS регистра SYSCON устанавливает режим сегментации памяти. Если бит SGTDIS =1, при выполнении команд TRAP и RETI только значение регистра IP и PSW автоматически сохраняется на стеке (-*снимается при выполнении команды RETI). В случае если бит SGTDIS=0, значение регистров CSP, PSW и IP автоматически сохраняется на стеке при выполнении команды TRAP и снимается со стека при выполнении команды RETI.

Установка размера системного стека (STKSZ)

Поле битов STKSZ определяет размер (от 32 до 512 слов) системного стека, расположенного во внутреннем ОЗУ.

Регистр состояния процессора PSW

Бит-адресуемый регистр PSW отображает текущее состояние микроконтроллера С167. Часть битов регистра PSW соответствует состоянию ЦПУ, другая часть — АЛУ. Бит USR0 выполняет функцию пользовательского флага.

Рис. 9. Регистр состояния процессора PSW
БитФункция
NФлаг отрицательного знака при выполнении операции. Устанавливается, если при выполнении операции в АЛУ в результате получается отрицательное число.
CФлаг переноса. Устанавливается, если при выполнении операции в АЛУ был установлен бит переноса.
VФлаг переполнения. Устанавливается, если при выполнении операции в АЛУ имело место переполнение.
ZФлаг равенства результата нулю. Устанавливается, если результатом выполнения последней операции в АЛУ является ноль.
EФлаг конца таблицы. Устанавливается, если операнд-источник команды имел значение 8000h (слово) или 80h (байт).
MULIPФлаг прерывания операций деления и умножения. Устанавливается, если во время обработки прерывания выполнение этих операций было прервано.
0: нет прерывания операции деления или умножения
1: операция умножения или деления была прервана
USR0Пользовательский флаг. Может устанавливаться или сбрасываться программным обеспечением пользователя.
ILVL,HLDEN,IENБиты, управляющие прерываниямии арбитражем внешней шины.

Статус АЛУ (флаги N, C, V, Z, E, MULIP)

Флаги регистра PSW N, C, V, Z, и E отражают текущее состояние АЛУ. Их значение изменяется в процессе работы АЛУ микроконтроллера. Во время непосредственного изменения состояния регистра PSW (запись или прямая установка) результат установки PSW предыдущей операцией аннулируется. После выполнения системного сброса биты статуса имеют нулевое значение.

Регистр-указатель команды IP

Регистр IP содержит 16-битовый адрес, по значению которого выполняется выборка команды из области памяти, установленной регистром CSP. Программный доступ к содержимому регистра IP может быть осуществлен только косвенно, при помощи команд перехода или вызова подпрограмм.

Во время работы центрального процессора содержимое регистра IP изменяется автоматически после выполнения выборки команды из памяти.

Регистр-указатель сегмента кода CSP

Регистр CSP содержит 8-битовый адрес сегмента (256 сегментов по 64 Кбайт в каждом), определяющий область памяти, из которой выполняется выборка команды. Если сегментация разрешена, полный адрес определяется содержимым регистров IP (адрес команды) и CSP (сегмент). При запрещенной сегментации адрес определяется содержимым регистра IP в нулевом сегменте.

Программный доступ к содержимому регистра CSP может быть осуществлен только косвенно, при помощи команд JMPS, CALLS или RETS, RETI или при помощи MOV, ADD, но только в режиме чтения.

Рис. 10. Адресация через указатель кодового сегмента

Регистр-указатели страниц данных DPPx

В командах доступа к памяти в режиме длинной адресации два старших бита 16-битового адреса указывают на один из 4-х регистров (DDP0, DDP1, DDP2, DDP3), в которых содержится старшая часть (страница данных) 18/20/24-разрядного адреса. Младшие 10 бит каждого регистра DDP позволяют адресовать 1024 страницы, каждая из которых имеет объем 16 Кбайт. Старшие 6 бит зарезервированы для следующих модификаций микроконтроллера. Таким образом, физический адрес формируется из 14-битового адреса и 10-битового смещения, хранящегося в одном из регистров DDP, относительно которого указывается адрес. После сброса регистр DDP0 содержит значение 00, DDP1 — 01, DDP1 — 02, DDP1 — 03, что позволяет формировать полный 16 разрядный адрес и обеспечивает доступ к данным объемом 64 Кбайт в нулевом сегменте.

Рис. 11. Адресация через указатели страниц данных

Регистр-указатель контекста CP

Регистр CP предназначен для хранения адреса начала текущего банка регистров общего назначения (GPR). Область банков (GPR) располагается в диапазоне адресов внутреннего ОЗУ (F600h…FDFEh) по четным адресам.

При создании банков необходимо следить за тем, чтобы все регистры GPR располагались в пределах внутреннего ОЗУ микроконтроллера. Регистр CP не является бит-адресуемым.

Для быстрой смены контекста с одновременным сохранением прежнего значения на стеке в системе команд микроконтроллера предусмотрена команда SCXT. Ее удобно использовать в программах обработки прерываний для быстрой смены текущего банка GPR.

Рис. 12. Выбор банка регистров с помощью установки регистра CP

Режим короткой четырехбитовой адресации регистров GPR

Режим короткой четырехбитовой адресации регистров GPR (мнемоническое обозначение: Rw и Rb) определяет адрес регистра GPR относительно базового адреса, находящегося в регистре CP. В зависимости от типа операнда (слово Rw или байт Rb) четырех битовое значение адреса GPR перед сложением со значением, хранящимся в указателе контекста, умножается на 2 при адресации к 2-байтовому регистру или берется без изменения при адресации к байтовому регистру.

Режим короткой восьмибитовой адресации регистров GPR

Режим короткой восьмибитовой адресации регистров GPR (мнемоническое обозначение: reg или bitoff) в диапазоне от F0h до FFh четыре младших бита адресуют регистр GPR как показано выше.

Регистр-указатель вершины стека SP

Регистр SP предназначен для хранения текущего адреса вершины системного стека ЦПУ. При пересылке данных на стек значение регистра SP уменьшается, а при снятии их со стека — увеличивается. Таким образом, своей вершиной стек располагается в сторону уменьшения адреса.

Биты 0, 12, 13, 14, 15-й регистра SP не могут быть изменены при записи, при этом младший бит регистра SP установлен в состояние лог.0, биты 12-15-й в состояние лог.1, что обеспечивает расположение стека в диапазоне адресов F000h…FFFЕh внутреннего ОЗУ.

Регистр SP доступен для операций чтения и записи в режиме непосредственной адресации, но не имеет доступа к битам в режиме битовой адресации.

Регистр-указатель переполнения стека STKOV

Значение регистра STKOV во время выполнения операций со стеком сравнивается со значением регистра SP. Если содержимое регистра SP меньше содержимого регистра STKOV, генерируется прерывание переполнения стека.

Биты 0, 12-15-й регистра STKOV не могут быть изменены при записи, при этом младший бит регистра STKOV установлен в состояние лог.0, биты 12-15-й в состояние лог.1, что обеспечивает расположение границы стека в диапазоне адресов F000h…FFFЕh внутреннего ОЗУ.

Регистр STKOV доступен для операций чтения и записи в режиме непосредственной адресации, но не является бит-адресуемым.

Регистр-указатель дна стека STKUN

Значение регистра STKUN во время выполнения операций со стеком сравнивается со значением регистра SP. Если содержимое регистра SP больше содержимого регистра STKUN, генерируется прерывание исчерпания стека.

Биты 0, 12-15-й регистра STKUN не могут быть изменены при записи, при этом младший бит регистра STKUN установлен в состояние лог.0, биты 12-15-й в состояние лог.1, что обеспечивает расположение дна стека в диапазоне адресов F000h…FFFЕh внутреннего ОЗУ.

Регистр STKUN доступен для операций чтения и записи в режиме непосредственной адресации, но не имеет доступа к битам в режимах битовой адресации.

Регистр умножения/деления MDH

Регистр MDH представляет собой старшую часть 32-битового регистра, предназначенного для выполнения операций умножения и деления. После выполнения операции умножения в регистре MDH хранятся 16 старших разрядов результата.

При выполнении деления 32-битового числа на 16-битовое в регистр MDH помещается старшая 16-битовая часть делимого. После выполнения операции деления в этом регистре хранится 16-битовое значение остатка.

Регистр умножения/деления MDL

Регистр MDL представляет собой младшую часть 32-битового регистра, предназначенного для выполнения операций умножения и деления. После выполнения операции умножения в регистре MDL хранятся 16 младших разрядов результата.

При выполнении деления 32-битового числа на 16-битовое в регистр MDL помещается младшая 16-битовая часть делимого. После выполнения операции деления в этом регистре хранится значение 16-битовое значение частного.

Регистр MDC

MDC — бит-адресуемый регистр, содержит вспомогательную информацию, необходимую при выполнении операций умножения и деления. Значение регистра MDC изменяется во время выполнения операции деления или умножения.

Рис. 13. Структурная схема микропроцессора C167