Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Шумахер У. Полупроводниковая электроника

.pdf
Скачиваний:
203
Добавлен:
28.03.2015
Размер:
8.01 Mб
Скачать

INFSEMI_2-Text.fm, стр. 262 из 589 (September 3, 2010, 17:05)

 

 

 

 

262 7. Микроконтроллеры

 

 

 

 

 

 

Интерфейс между внешней системой разработки программ и микроконтроллером

SYSCON

 

RESET

RSYSCON

 

 

 

__

EH-IC

 

PCON

 

EA

RPCON

 

 

 

 

 

 

 

TCON

 

ALE

RTCON

 

 

 

 

____

 

 

 

Микроконтроллер

PSEN

Схема интерфейса системы

 

семейства С500

Порт 0

отладки Enchanced Hooks

 

 

 

 

 

 

Опциональные

 

Порт 2

 

 

 

 

 

 

 

 

 

 

порты

 

 

 

 

___

_____

ввода/вывода

Порт 3

Порт 1

Порт 2

Порт 0

TEA TALE

TPSEN

. . .

 

 

 

 

 

 

 

Целевой системный интерфейс

 

 

Рис. 7.5. Стандартная конфигурация системы на основе микроконтроллера C500 при реализации концепции Enhanced Hooks.

лучения сведений о внутренних операциях в микроконтроллерах семейства С500 (Рис. 7.5). Она также позволяет эмулировать программы, записанные во внутреннем ПЗУ микроконтроллера.

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

Реализация Enhanced Hooks Technology™ требует введения в схему микроконтроллера С500 ряда дополнительных элементов. Производитель гарантирует, что такой С500, совместно с дополнительной интерфейсной микросхемой, будет работать так же, как внешний эмуляционный кристалл. За счёт этого облегчается процесс проектирования и сокращается стоимость среды разработки программ (ICE). Наличие подобной среды разработки в сочетании с использованием интерфейсной микросхемы и соответствующего микроконтроллера семейства С500 даёт возможность эмулировать любые режимы работы всех микроконтроллеров этой серии: из внутреннего ПЗУ, из внутреннего ПЗУ с перекрытием кодов и без ПЗУ. Также могут быть реализованы пошаговый режим работы

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

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

7.2.5.Основные принципы обработки прерываний

Все микроконтроллеры семейства С500 поддерживают работу от нескольких источников прерываний. Прерывания запускаются либо внешними событиями, либо сигналами от внутренних периферийных устройств. Когда процессор получает сигнал прерывания, он останавливает исполнение любой из запущенных на этот момент программ и осуществляет переход по вектору прерывания (адресу, «привязанному» к соответствующему источнику прерывания), начиная с которого расположена програм- ма-обработчик прерывания. После исполнения команды возвращения из прерывания (RETI — последняя команда в программе обработки прерывания) исполнение прерванной основной программы продолжается с той точки, в которой она была прервана. На Рис. 7.6 представлена диаграмма

INFSEMI_2-Text.fm, стр. 263 из 589 (September 3, 2010, 17:05)

7.2. Восьмибитные микроконтроллеры 263

распределения адресов векторов прерыва-

3. В текущий момент выполняется команда

ний для микроконтроллера С501. Обычно

 

 

RETI или другая команда, осуществляю-

векторы прерываний расположены в облас-

 

 

щая запись в регистры приоритета или в

ти ПЗУ, начинающейся с адреса 0003h. Ми-

 

 

иные

активизируемые

по

прерыванию

нимальный интервал между двумя последо-

 

 

регистры.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

вательными векторами прерывания состав-

 

 

Если как минимум одно из этих условий

ляет 8 байт, следовательно, вектора преры-

имеет место, то команда LCALL, вызываю-

ваний могут располагаться по адресам

щая процедуру обработки прерывания, не

0003h, 000Bh, 0013h, 001Bh, 0023h, 002Bh,

будет запущена. Условие 2 гарантирует, что

0033h, …00FBh.

 

 

 

 

выполнение текущей команды будет полно-

 

 

 

 

 

 

 

 

стью завершено до того, как микроконтрол-

FFFFh

Память

 

 

 

лер переключится на процедуру обработки

 

 

 

 

 

 

прерывания. Условие 3

обеспечивает

ис-

 

 

 

программ

 

 

 

полнение как минимум одной команды (из

 

 

 

 

 

 

 

 

 

 

 

Прерывание

 

 

 

основного тела программы) до переключе-

002Bh

 

 

от Таймера 2

 

 

 

ния на следующую программу обработки

 

 

 

 

 

 

 

 

 

 

Прерывание от последо-

 

 

прерывания. Эта задержка даёт возмож-

0023h

вательного порта

 

 

 

ность контроллеру прерываний обнаружи-

 

 

 

 

 

 

 

 

Прерывание

 

 

 

вать изменения в текущем приоритете пре-

001Bh

 

 

от Таймера 1

 

 

 

рывания.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Внешнее

 

 

 

 

 

Опрос флага прерывания повторяется в

0013h

 

прерывание 1

 

 

 

каждом машинном цикле. При этом обра-

 

 

 

 

 

 

 

 

 

Прерывание

 

 

8 байт

батывается значение флага, зафиксирован-

000Bh

 

от Таймера 0

 

 

ное в предыдущем машинном цикле. Надо

 

 

 

 

 

 

 

 

 

 

 

 

 

Внешнее

 

 

 

отметить, что если флаг запроса на преры-

0003h

 

прерывание 0

 

 

 

вание был установлен, но соответствующая

 

 

 

 

 

 

 

 

 

 

Сброс

 

 

 

реакция микроконтроллера была заблоки-

0000h

 

 

 

 

 

рована одним из указанных выше условий и

Рис. 7.6. Источники прерываний и адреса со-

при этом на момент окончания действия

блокирующего

условия

флаг

запроса

на

ответствующих векторов (на примере микро-

прерывание перестал быть активным,

то

 

 

 

контроллера С501).

 

 

 

 

 

прерывание, обработка которого ещё не на-

 

 

 

 

 

 

 

 

Источник прерывания, устанавливая со-

чалась, так и не будет обработано.

 

 

 

 

 

Иными словами, система «не помнит»,

ответствующий флаг, информирует конт-

 

 

что флаг запроса на прерывание был уста-

роллер прерываний о возникновении усло-

новлен, но это прерывание не было обрабо-

вий, требующих

запроса

на

прерывание.

тано; в каждом цикле опроса во внимание

Состояние флага

запроса

на

прерывание

принимаются только активные запросы на

фиксируется в каждом машинном цикле.

прерывание.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

В следующем машинном

цикле произво-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Последовательность действий в цикле

дится опрос его состояния. Если флаг был

 

 

опроса/вызова команды LCALL показана

установлен, то контроллер прерываний сге-

на Рис. 7.7.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

нерирует команду LCALL, которая вызовет

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

переход ЦПУ к программе обработки, рас-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

C1

 

 

 

 

 

C2

 

 

 

 

 

C3

 

 

 

C4

 

 

C5

 

 

 

 

 

положенной по адресу, указанному в соот-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S5P2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ветствующем векторе прерывания. Эта ап-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

паратная команда LCALL может быть за-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

блокирована любым из ниже перечислен-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ных условий:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Преры-

Преры-

 

 

 

Команда

Программа

1. Уже обрабатывается прерывание с рав-

 

 

 

вание

вание

 

 

 

перехода

 

обработки

ным или более высоким приоритетом.

обнару-

опро-

 

 

 

по вектору

прерывания

2. Текущий машинный цикл (опроса) не

 

жено

 

шено

 

 

 

прерывания

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

является последним циклом для коман-

Рис. 7.7. Временная диаграмма процесса обна-

ды, которая исполнялась в момент пос-

ружения прерывания и входа в программу его

тупления запроса на прерывание.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

обработки.

 

 

 

 

 

 

 

 

INFSEMI_2-Text.fm, стр. 264 из 589 (September 3, 2010, 17:05)

264 7. Микроконтроллеры

Надо отметить, что в соответствии с при-

Вызов этой команды сам по себе занимает

ведёнными выше правилами прерывание,

два машинных цикла. Следовательно, меж-

поступившее во время фаз С5 и С6, если

ду моментом обнаружения внешнего пре-

оно обладает высоким приоритетом и ста-

рывания и исполнением первой команды

новится активным перед S5P2 (в машинном

программы обработки прерывания пройдёт

цикле С3 на Рис. 7.7), будет обработано да-

как минимум три полных машинных цикла.

же без исполнения хотя бы одной команды

Более длительное время реакции на вне-

из программы с приоритетом более низкого

шнее прерывание может быть результатом

уровня.

блокирования запроса любым из трёх упо-

Таким образом, процессор реагирует на

мянутых выше условий. Если уже обраба-

прерывание выполнением аппаратной ко-

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

манды LCALL для вызова соответствующей

высоким уровнем приоритета, то длитель-

программы обработки прерывания. В неко-

ность дополнительной задержки будет оп-

торых случаях после этого аппаратно сбра-

ределяться параметрами текущей (уже ис-

сывается флаг запроса прерывания. В ос-

полняемой) программы обработки преры-

тальных случаях флаг сброшен не будет, и

вания. Даже если для завершения команды,

пользовательская программа должна будет

исполняемой на момент обнаружения пре-

сделать это сама.

рывания, требуется какое-то время, то за-

Выполнение программы обработки пре-

держка не может превысить три машинных

рывания продолжается последовательно

цикла, поскольку процесс исполнения даже

вплоть до команды RETI. Команда RETI

самых длинных команд (MUL и DIV) зани-

информирует процессор о том, что про-

мает только четыре машинных цикла. Од-

грамма обработки прерывания закончила

нако если исполняемая в момент обнаруже-

свою работу, и перегружает два верхних

ния прерывания команда является коман-

байта из стека в счётчик команд. Выполне-

дой возврата из обработки прерывания

ние ранее прерванной основной програм-

(RETI), командой записи в регистр разре-

мы возобновляется с того места, в котором

шения прерывания или командой записи в

она была приостановлена. Необходимо от-

регистр приоритетов прерываний, то до-

метить, что команда RETI играет очень

полнительная задержка не превысит пяти

важную роль, поскольку она информирует

машинных циклов (не более чем один ма-

процессор о том, что после возобновления

шинный цикл, который нужен для завер-

основной программы разрешён приём пре-

шения текущей исполняемой команды, и

рываний с текущим уровнем приоритета

максимум четыре машинных цикла, необ-

(т.е. с тем же уровнем приоритета, как и

ходимых для исполнения следующей длин-

только что обработанное прерывание).

ной команды, например команды умноже-

Простая команда RET тоже приводит к

ния или деления (MUL или DIV)).

возобновлению прерванной основной про-

Следовательно, если имеет место оди-

граммы, но контроллер прерываний будет

ночное прерывание, то время реакции на

считать, что текущее прерывание всё ещё

него (с момента обнаружения прерывания

активно. В этом случае никакие новые пре-

до начала выполнения первой команды

рывания с тем же или более низким уров-

программы-обработчика) всегда превышает

нем приоритета не будут восприняты про-

три машинных цикла и всегда меньше, чем

цессором.

девять машинных циклов.

Время реакции на прерывание

7.2.6. Структура портов ввода/вывода

После обнаружения внешнего прерыва-

Цифровые порты ввода/вывода

ния соответствующий ему флаг запроса

Микроконтроллеры семейства С500 поз-

прерывания устанавливается в фазе S5P3

каждого машинного цикла. Значение этого

воляют производить операции ввода/выво-

флага не будет обработано схемой опроса до

да для входных и выходных цифровых сиг-

следующего машинного цикла. Если запрос

налов. Такие операции осуществляются че-

на прерывание активен и нет препятствий к

рез специально предназначенные для этой

его обработке, то следующей исполняемой

цели выводы микроконтроллера, которые

командой будет аппаратная команда пере-

сгруппированы по 8 выводов и образуют

хода к программе обработки прерывания.

8-битные порты. Каждый порт включает в

INFSEMI_2-Text.fm, стр. 265 из 589 (September 3, 2010, 17:05)

себя входное устройство (буфер), триггер-

Чтение

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

VCC

ную защёлку и выходной драйвер.

 

защёлки

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Внутренний

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Управление доступом к порту для записи

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

или считывания данных осуществляется че-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

подтягива-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ющий

рез соответствующий регистр специальных

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

резистор

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Внутренняя

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

функций.

 

 

 

 

 

 

 

D

 

 

 

 

 

Q

 

 

 

 

 

 

 

шина

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Вывод

На Рис. 7.8 в упрощённом виде показа-

микро-

Однобитный

 

 

 

 

 

 

 

 

 

 

 

 

 

 

триггер-

 

 

 

 

 

 

 

 

 

 

 

 

порта

но, как работают однобитная триггерная за-

контроллера

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

защёлка

_

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

щёлка и буфер ввода/вывода («сердце» каж-

 

 

 

 

 

 

 

 

 

порта

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Запись

CLK

 

 

Q

дого порта ввода/вывода). Защёлка порта

в защёлку

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

n1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(один бит в регистре SFR этого порта) пока-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

зана как D-триггер, который по сигналу от

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ЦПУ «запись в защёлку» считывает значе-

Чтение

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ние бита данных с внутренней шины мик-

вывода

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

роконтроллера по фронту сигнала тактовой

порта

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

частоты. Выход Q триггера подключается к

Рис. 7.9. Схема порта (применима ко всем

внутренней шине по сигналу процессора

 

 

портам, кроме порта 0).

«чтение вывода порта». Некоторые из ко-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

манд чтения порта (например, при чтении

мощью внутренних схем на полевых тран-

содержимого SFR-регистров портов P0, P2,

зисторах (см. Рис. 7.9). Каждая из линий

P3) активируют сигнал «чтение защёлки»

ввода/вывода может независимо програм-

(Read Latch), тогда как другие активируют

мироваться для использования в качестве

сигнал «чтение вывода порта» (Read Pin).

ввода или вывода данных. В первом случае

 

 

 

 

 

 

 

 

значение бита, записанного в защёлке порта,

Чтение

 

 

 

 

 

 

 

должно соответствовать логической 1 (т.е. на

 

 

 

 

 

 

 

Рис. 7.9 выходы триггера-защёлки должны

защёлки

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

находиться в следующих состояниях: Q = 1,

 

 

 

 

 

 

 

 

а Q = 0). При этом полевой транзистор n1

Внутренняя

 

 

 

 

 

 

 

выходного драйвера порта будет закрыт. Со-

 

 

Q

 

 

 

шина

D

 

 

 

ответственно, на выводе порта может при-

микро-

 

 

 

 

Вывод

сутствовать ВЫСОКИЙ

уровень (его по

 

 

 

 

 

Схема

контроллера

Защёлка

 

 

 

порта

 

 

 

драйвера

умолчанию обеспечивает наличие внутрен-

 

порта

_

 

 

 

 

 

 

 

 

порта

 

него подтягивающего резистора) либо НИЗ-

Запись

CLK

Q

 

 

 

в защёлку

 

 

 

 

 

КИЙ уровень, задаваемый внешним источ-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ником сигнала. В отличие от состояния ВЫ-

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

СОКОГО уровня на выходе порта, перевод

Чтение

 

 

 

 

 

 

 

его в НИЗКИЙ уровень связан с протекани-

 

 

 

 

 

 

 

ем определённого тока от источника сигна-

вывода

 

 

 

 

 

 

 

порта

 

 

 

 

 

 

 

ла. Поэтому порты такого типа иногда назы-

Рис. 7.8. Типичная структура порта микрокон-

вают квазидвунаправленными.

Архитектура портов некоторых из мик-

троллера семейства С500.

 

 

роконтроллеров семейства С500 обеспечи-

 

 

 

 

 

 

 

 

Выходные драйверы портов 0 и 2 и вход-

вает возможность работы как в квазидву-

направленном

режиме (совместимом со

ные буферы порта 0 используются также

стандартным режимом работы порта про-

для доступа к внешней памяти. В этом слу-

цессора семейства 8051), так и в полностью

чае (при обращении к внешней памяти че-

двунаправленном режиме с входными и вы-

рез порт 0) младший байт адреса мульти-

ходными уровнями напряжений, стандарт-

плексируется

по времени

со считывае-

ными для КМОП.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

мым/записываемым байтом данных. Если

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

адрес шестнадцатибитный, то его старший

Аналоговые входные порты

байт передаётся через порт 2.

 

Некоторые

модификации микроконт-

Выходное напряжение драйверов портов

 

 

 

 

 

 

 

 

7.2. Восьмибитные микроконтроллеры 265

(за исключением драйвера порта 0) «подтя-

роллеров семейства С500 имеют встроен-

ный АЦП с несколькими входными линия-

нуто» к уровню напряжения питания с по-

ми. Соответствующие выводы микроконт-

 

INFSEMI_2-Text.fm, стр. 266 из 589 (September 3, 2010, 17:05)

266 7. Микроконтроллеры

роллера, в зависимости от его модифика-

нератора. Как правило, арифметические и

ции, либо предназначаются исключительно

логические операции реализуются в фазе 1,

для приёма аналоговых сигналов, либо мо-

а пересылка данных между регистрами — в

гут использоваться как в качестве аналого-

фазе 2.

 

 

вых входов, так и в качестве цифровых пор-

Временные диаграммы, приведённые на

тов ввода/вывода (такой вариант является

Рис. 7.10, демонстрируют процесс выборки

стандартным для микроконтроллеров с не-

и исполнения команд микроконтроллера в

большим количеством выводов).

«привязке» к тактам и фазам машинного

Выводы, предназначенные для работы с

цикла.

 

 

аналоговыми сигналами, могут функцио-

Поскольку у пользователя отсутствует

нировать в одном из двух режимов. Когда

возможность непосредственного доступа к

они используются в качестве аналоговых

внутренним тактовым сигналам микрокон-

входов, номер требуемого аналогового ка-

троллера, для получения косвенной инфор-

нала задаётся значением соответствующего

мации о них может быть использован сиг-

битового поля в управляющем регистре

нал ALE (разрешение фиксации адреса в

АЦП. Когда же они используются в качест-

триггерной защёлке). Сигнал ALE обычно

ве цифровых входов, связанный с данным

переводится в активное состояние дважды в

портом регистр специальных функций бу-

течение каждого машинного цикла: это

дет содержать цифровое значение, присут-

происходит сначала в фазах S1P2 и S2P2 и

ствующее на линиях порта. Для того чтобы

повторно в фазах S4P2 и S5P1.

 

это цифровое значение линий порта было

Исполнение команды

длительностью

в

считано в регистр, уровни входных напря-

один машинный цикл начинается в фазе S1P2

жений на них должны находиться в заранее

с записи кода команды в регистр команд.

 

заданных для логического 0 и логической 1

Если исполняемая команда является двух-

границах (VIL/VIH). Таким образом, можно

байтной, то считывание второго байта кода

одновременно использовать

аналоговые

операции (КОП) производится в фазе S4 того

входные порты для приёма аналоговых и

же самого машинного цикла. Если команда

цифровых сигналов.

 

однобайтная, то прочитанный в фазе S4 байт

После сброса микроконтроллера все ана-

(который представляет собой КОП следую-

логовые функции выводов блокируются, и

щей команды) игнорируется (отбрасывает-

они конфигурируются как линии цифровых

ся), и инкрементирования счётчика команд

портов ввода/вывода. Аналоговые функ-

не происходит. Исполнение команды будет

ции могут быть назначены линиям порта

закончено в конце фазы S6P2.

 

только после установки соответствующих

На Рис. 7.10, а, б приведены временные

битов в регистре специальных функций

диаграммы исполнения

однобайтной

и

(SFR) этого порта. Запись логического нуля

двухбайтной команд длительностью в один

в соответствующий бит регистра SFR кон-

машинный цикл.

 

 

фигурирует данный вход как аналоговый.

Большинство команд микроконтролле-

Неиспользуемые аналоговые

входы могут

ров семейства С500 исполняются за один

по-прежнему использоваться как линии

машинный цикл. Только команды MUL

цифрового порта ввода/вывода.

(умножение) и DIV (деление) требуют более

7.2.7. Тактовые сигналы ЦПУ

двух машинных циклов (а точнее, требуется

четыре цикла). Обычно в каждом машин-

Основной тактовый сигнал

 

ном цикле из памяти считываются два бай-

 

та кода операции (КОП). Единственным

 

 

Машинный цикл состоит из шести так-

исключением из данного правила является

тов. Каждый из этих тактов разделён на две

исполнение команды MOVX. Эта команда

фазы: фаза 1 и фаза 2. Соответственно,

доступа к внешней памяти данных является

один машинный цикл содержит фазы, на-

однобайтной и выполняется за 2 машинных

чиная с S1P1 (первый такт, первая фаза) и

цикла. Во втором машинного цикле вместо

заканчивая S6P2 (шестой такт, вторая

двух операций чтения КОП осуществляется

фаза).

 

адресация внешней памяти данных и счи-

В зависимости от версии микроконтрол-

тывание данных из неё. На Рис. 7.10, в, г

лера семейства С500, каждый такт длится

показаны временные диаграммы исполне-

один или два периода сигнала тактового ге-

ния обычной однобайтной команды, зани-

INFSEMI_2-Text.fm, стр. 267 из 589 (September 3, 2010, 17:05)

7.2. Восьмибитные микроконтроллеры 267

S1

S2

S3

S4

S5

S6

S1

S2

S3

S4

S5

S6

P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2

ALE

 

 

 

 

Чтение

 

 

 

Чтение кода

 

следующего КОП

 

 

 

(игнорируется)

 

 

операции

 

Повторное чтение

 

 

 

 

 

(КОП)

 

 

 

 

следующего КОП

S1

S2

S3

S4

S5

S6

 

а) Однобайтная команда, исполняемая за 1 машинный цикл, например INC A

 

Чтение кода

 

Чтение второго

 

 

 

байта команды

 

 

операции

 

Повторное чтение

 

 

 

 

 

(КОП)

 

 

 

 

следующего КОП

S1

S2

S3

S4

S5

S6

 

б) Двухбайтная команда, исполняемая за 1 машинный цикл, например ADD A,#Data

Повторное чтение

 

 

 

Чтение кода

 

 

Чтение следующего КОП

следующего КОП

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

операции

 

 

 

(игнорируется)

 

 

 

 

 

 

 

 

 

 

(КОП)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S1

S2

 

S3

 

S4

S5

 

S6

S1

S2

 

S3

S4

S5

S6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

в) Однобайтная команда, исполняемая за 2 машинных цикла, например INC DPTR

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Повторное чтение

 

 

 

 

 

 

 

 

 

 

 

Чтение

 

 

 

 

 

 

следующего КОП

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Чтение кода

 

 

 

следующего

 

 

Нет выборки

 

 

 

Нет

 

 

 

 

 

 

 

 

 

КОП

 

 

 

КОП

 

 

 

 

 

 

 

 

 

 

 

операции

 

 

 

 

 

 

 

 

 

 

 

выборки

 

 

 

 

 

 

 

(игнорируется)

 

 

 

Нет сигнала

 

 

 

 

 

 

(MOVX)

 

 

 

 

 

 

 

 

 

 

КОП

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ALE

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

S1

S2

 

S3

 

S4

 

S5

S6

S1

 

 

S2

S3

 

S4

S5

S6

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Адрес Данные

Доступ к внешней памяти г) Исполнение команды MOVX (1 байт, 2 машинных цикла)

Рис. 7.10. Последовательность операций при выборке/исполнении команды микроконтроллера.

мающей два машинных цикла, и команды MOVX.

7.2.8. Обращение к внешней памяти

Существует два типа обращений к внешней памяти микроконтроллера: обращение к внешней памяти программ и обращение к внешней памяти данных. В первом случае в качестве сигнала разрешения считывания данных из внешней памяти программ используется сигнал PSEN (Program Store Enable), в то время как во втором слу- чае используются стандартные сигналы RD и WR (они передаются по назначенным на выполнение соответствующих альтернативных функций линиям P3.7 и P3.6 порта 3).

При чтении кода команд из внешней памяти программ всегда используется 16-бит- ная адресация. При обращении к внешней памяти данных может применяться как 16-битная (MOVX @DPTR), так и 8-битная адресация (MOVX @Ri).

Если используется 16-битный адрес, то его старший байт выводится через линии порта 2 и удерживается на них в течение цикла записи или чтения данных.

При 8-битной адресации (MOVX @Ri) содержимому SFR-регистра порта 2 (т.е. байту адреса) соответствуют значения, которые удерживаются на выводах порта 2 в течение всего цикла обращения к внешней памяти. Таким образом, выводы порта 2 ис-

INFSEMI_2-Text.fm, стр. 268 из 589 (September 3, 2010, 17:05)

268 7. Микроконтроллеры

пользуются для обращения к внешней памяти данных.

В обоих рассмотренных случаях младший байт адреса, мультиплексированный по времени с байтом данных, передаётся по линиям порта 0. Сигнал ADRESS/DATA управляет обоими полевыми транзисторами каждого из выходных буферов указанного порта. Вследствие этого в режиме работы с внешней шиной выводы порта 0 не являются выходами с открытым стоком и к ним не требуется подключать внешние подтягивающие резисторы. Сигнал ALE должен использоваться как стробирующий сигнал фиксации байта адреса во внешней триггерной защёлке. Выборка адреса производится по спадающему фронту сигнала ALE (т.е. при переходе из ВЫСОКОГО уровня в НИЗКИЙ). Если осуществляется цикл записи, то записываемый байт данных появляется на выводах порта 0 незадолго до перехода сигнала WR в активное состояние (логического 0) и удерживается на этих выводах вплоть до снятия сигнала WR. В цикле чтения входящий байт данных будет считан с выводов порта 0 незадолго до снятия сигнала чтения RD.

При любом обращении к внешней памяти ЦПУ записывает в защёлку порта 0 (т.е. в связанный с ним регистр специальных функций) значение FFh, тем самым стирая ранее записанную в данном регистре SFR информацию. Следует также отметить, что команда MOV P0 не может использоваться во время обращения к внешней памяти. Если пользовательская программа попытается осуществить запись в порт 0 в процессе считывания данных из внешней памяти, то это может вызвать ошибку считывания данных. Поэтому во время цикла обращения к внешней памяти любые операции записи в порт 0 должны быть запрещены.

для внутреннего ПЗУ объёмом 8 Кбайт или 3FFFh для внутреннего ПЗУ объёмом 16 Кбайт).

Поэтому для тех модификаций микроконтроллеров семейства C500, у которых внутреннее ПЗУ отсутствует, необходимо всегда подключать вывод EA к отрицательной шине питания (VSS), чтобы выборка первых 8, 16 или 32 Кбайт программного кода производилась из внешней памяти.

Фазы

 

S1

 

S2

 

S3

 

S4

 

S5

 

S6

 

S1

 

S2

 

 

 

 

 

 

 

 

 

 

 

 

машин-

 

 

 

 

 

 

 

 

 

 

ного

 

P1 P2

 

P1 P2

 

P1 P2

 

P1 P2

 

P1 P2

 

P1 P2

 

P1 P2

 

P1 P2

 

 

цикла

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ALE

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

_____

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

PSEN

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Интервал

 

Интервал

 

Интервал

 

 

 

 

 

 

считывания

 

считывания

 

считывания

 

 

 

 

 

 

данных

 

данных

 

данных

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P0

 

 

 

 

 

 

 

 

Мл.

 

 

 

 

 

 

 

 

Мл.

 

 

 

 

 

 

Мл.

 

 

 

 

байт PC

 

 

 

 

 

 

байт PC

 

 

 

 

 

 

байт PC

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

P2

Ст. байт PC

Ст. байт PC

Ст. байт PC

Рис. 7.11. Временная диаграмма цикла обращения к внешней памяти программ.

Когда микроконтроллер исполняет программу, расположенную во внешней памяти программ (см. временную диаграмму, приведённую на Рис. 7.11), все восемь битов порта 2 резервируются под шину адреса и не могут быть использованы для функций ввода/вывода общего назначения. При вызовах внешней программы линии порта 2 используются для вывода старшего байта счетчика команд (PC); при этом биты, значение которых должно соответствовать логической 1, устанавливаются в ВЫСОКИЙ уровень с помощью выходных драйверов порта и подтягивающих резисторов.

Работа с внешним ПЗУ

Обращение к внешней памяти программ микроконтроллера осуществляется в одном из двух случаев:

1.Если сигнал EA активен (имеет НИЗКИЙ логический уровень) или

2.Если сигнал EA не активен (имеет ВЫСОКИЙ логический уровень), но текущее значение адреса, содержащегося в счётчике команд (PC), выходит за верхнюю границу адресного пространства внутреннего ПЗУ, (т.е. больше чем 1FFFh

Обращение к внешней памяти данных

В случае, когда при обращении к внешней памяти данных те или иные биты адреса должны принимать значение логической 1, уровни напряжения на соответствующих выводах порта 2 задаются с помощью подтягивающих резисторов. Такое, например, происходит при вызове внешней программы в процессе выполнения команды MOVX@DPTR. В это время защёлки линий порта 2 (т.е. соответствующие биты регист-

INFSEMI_2-Text.fm, стр. 269 из 589 (September 3, 2010, 17:05)

7.2. Восьмибитные микроконтроллеры 269

Фазы

 

S4

 

S5

 

S6

 

S1

 

S2

 

S3

 

S4

 

S5

 

 

 

 

 

 

 

 

 

 

машинного

 

 

 

 

 

 

 

 

 

 

P1

P2

 

P1

P2

 

P1

P2

 

P1

P2

 

P1

P2

 

P1

P2

 

P1

P2

 

P1

P2

 

цикла

 

 

 

 

 

 

 

 

 

ALE

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

__

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

RD

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Интервал считывания данных

 

 

 

 

 

 

 

 

 

 

 

Высоко-

 

 

 

 

импедансное

 

 

 

 

состояние

P0

 

Мл. байт

 

 

 

 

 

 

DP или Ri

 

 

 

 

 

 

 

 

Мл. байт PC при выполнении программы из внешнего ПЗУ

Высоко-

импедансное

состояние

P2

Ст. байт

PC или значение

Ст. байт DP или значение

Ст. байт PC

или значение

SFR-регистра порта P2

SFR-регистра порта P2

SFR-регистра порта P2

 

 

 

 

 

 

 

Рис. 7.12. Временная диаграмма цикла чтения из внешней памяти данных.

Фазы

машинного

цикла

ALE

__

WR

P0

S4

S5

S6

S1

S2

S3

S4

S5

P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2 P1 P2

Мл. байт PC при выполнении программы из внешнего ПЗУ

 

Мл. байт

Вывод данных

 

 

 

DP или Ri

 

 

 

 

 

 

 

 

 

 

 

Мл. байт PC

P2

Ст. байт

PC или значение

Ст. байт DP или значение

Ст. байт PC

или значение

SFR-

регистра порта P2

SFR-регистра порта P2

SFR-регистра порта P2

 

 

 

 

 

 

 

Рис. 7.13. Временная диаграмма цикла записи во внешнюю память данных.

ра специальных функций порта 2) не долж-

двухбайтные и 17 — трёхбайтные. Формат

ны содержать логических 1; при этом содер-

мнемонической записи команды включает

жимое SFR порта 2 не меняется. Таким об-

в себя псевдокод операции, за которым сле-

разом, даже если за текущим циклом обра-

дует поле операндов «операнд назначения,

щения к внешней памяти данных непос-

операнд-источник». Это поле используется

редственно не следует другой такой цикл,

для определения типа данных и метода ад-

содержимое регистра SFR порта 2 сохраня-

ресации.

ется и вновь появляется на выводах порта с

Набор команд микроконтроллеров се-

началом нового цикла обращения к внеш-

мейства С500 совпадает с набором команд

ней памяти.

всех остальных представителей семейства

На Рис. 7.12 и Рис. 7.13 представлены

8051 и, соответственно, с набором команд

подробные временные диаграммы для цик-

микроконтроллера SAB8051 — устройства,

лов чтения и записи данных во внешнюю

на основе которого и было разработано се-

память данных.

мейство С500.

7.2.9. Обзор команд микроконтроллера

Отсюда следует, что микроконтроллеры

семейства С500 на 100% программно-сов-

C500

местимы с SAB8051, и для их программиро-

Система команд 8-битных микроконт-

вания могут использоваться как язык ас-

семблера микроконтроллера 8051, так и

роллеров семейства С500 содержит 111 ко-

языки высокого уровня.

манд, из которых 49 — однобайтные, 45 —

 

INFSEMI_2-Text.fm, стр. 270 из 589 (September 3, 2010, 17:05)

270 7. Микроконтроллеры

Таблица 7.2. Способы адресации и соответствующие им области памяти

Способ адресации

Соответствующая область памяти

 

 

Регистровая адресация

R0…R7 в активном банке регистров, ACC, B, CY

 

(бит), DPTR

 

 

Прямая адресация

Младшие 128 байт внутреннего ОЗУ, регистры

 

специальных функций

 

 

Непосредственная адресация

Память программ

 

 

Косвенная адресация через регистр

Внутреннее ОЗУ (@R1, @R0, SP), внешняя память

 

данных (@R1, @R0, @DPTR)

 

 

Косвенная адресация с использованием базового

Память программ (@A + DPTR, @A + PC)

и индексного регистров

 

 

 

Способы адресации микроконтроллера C500

Впроцессе работы с микроконтроллером С500 могут использоваться пять способов адресации:

1.Регистровая.

2.Прямая.

3.Непосредственная.

4.Косвенная через регистр.

5.Косвенная с использованием базового и индексного регистров.

ВТабл. 7.2 приведены области памяти, к которым может быть выполнено обращение с помощью того или иного способа адресации.

Регистровая адресация

Регистровая адресация обеспечивает доступ к восьми рабочим регистрам (R0…R7) активного в настоящий момент банка регистров.

Младшие значащие биты операционного кода команды определяют, какой из регистров будет адресован. Данный способ адресации применим также к регистрам ACC (аккумулятор), B, DPTR и CY (аккумулятор логического процессора).

Прямая адресация

Прямая адресация — это единственный возможный способ адресации регистров специальных функций (SFR). Может быть также использована для адресации младших 128 байт внутреннего ОЗУ.

Непосредственная адресация

Непосредственная адресация позволяет размещать константы в памяти программ.

Косвенная адресация через регистр

При косвенной адресации через регистр

число, записанное в регистр R0 или R1 (принадлежащий к выбранному банку регистров), рассматривается как адрес ячейки памяти, которая входит в состав 256-байт- ного блока. Это может быть либо 256-байт- ный блок внутреннего ОЗУ, либо младшие 256 байт внешней памяти данных. Следует отметить, что адресация регистров специальных функций не может осуществляться данным способом.

Обращение к верхней половине внутреннего ОЗУ может быть выполнено лишь путём косвенной адресации. Доступ ко всем 64 Кбайт адресного пространства внешней памяти данных обеспечивается с помощью 16-битного указателя данных (DPTR).

В процессе выполнения команд PUSH и POP также используется косвенная адресация через регистр. Это позволяет располагать стек в любом удобном месте внутреннего ОЗУ.

Индексная адресация

Адресация с использованием базового и индексного регистров, делает возможным косвенное обращение к ячейке ПЗУ, адрес которой является суммой значений базового регистра (DPTR или PC) и индексного регистра (ACC). Такой способ адресации облегчает работу с переменными, хранящимися в памяти в табличной форме.

Битовый процессор

Битовый (логический) процессор — это процессор, встроенный в микроконтроллеры семейства С500, предназначенный для обработки битовых переменных. Он имеет свой набор команд, аккумулятор (с флагом переноса), побитно адресуемое ОЗУ и устройство ввода/вывода данных.

INFSEMI_2-Text.fm, стр. 271 из 589 (September 3, 2010, 17:05)

 

 

 

 

 

 

7.2. Восьмибитные микроконтроллеры

271

 

 

 

 

 

 

 

 

 

Команды для работы с битовыми пере-

 

Команды обмена с аккумулятором:

 

 

менными позволяют:

 

 

 

Команда XCH осуществляет обмен бай-

установить бит в 1;

 

 

 

 

тами между операндом-источником и

сбросить бит в 0;

 

 

 

 

регистром A (аккумулятором).

 

 

сформировать побитовое дополнение до

Команда

XCHD

осуществляет

обмен

 

двух;

 

 

 

 

между младшим полубайтом байта, со-

выполнить команду перехода, если бит

 

держащегося в операнде-источнике, и

 

был установлен в 1;

 

 

 

младшим полубайтом регистра-аккуму-

выполнить команду перехода, если бит

 

лятора A.

 

 

 

 

 

был сброшен в 0;

 

 

 

Команда MOVX пересылает байт из вне-

выполнить команду перехода, если бит

 

шней памяти данных в аккумулятор. Ад-

 

 

был установлен в 1, с последующей запи-

 

рес ячейки внешней памяти может быть

 

 

сью 0 в этот бит;

 

 

 

 

задан как через регистр DPTR (16-бит-

переписать значение бита в/из флага пе-

 

ный), так и с использованием регистров

 

 

реноса.

 

 

 

 

R0 или R1 (8-битных).

 

 

 

 

Адресуемые биты или их дополнения мо-

Команда MOVC пересылает байт из па-

гут быть объединены по И или по ИЛИ с

 

мяти программ в аккумулятор. Значение

флагом переноса. Результат операции будет

 

операнда, находящегося в аккумуляторе,

записан во флаг переноса.

 

 

 

используется в качестве индекса для

Типы команд

 

 

 

 

256-байтной таблицы, выбор которой

 

 

 

 

осуществляется через значение базового

 

 

 

 

 

 

 

 

 

Команды микроконтроллера можно раз-

 

регистра (DPTR или PC). Содержимое

делить на четыре подгруппы:

 

 

указанной таким образом ячейки памяти

 

команды обмена данными;

 

 

программ (байт) пересылается в аккуму-

 

арифметические;

 

 

 

 

лятор.

 

 

 

 

 

логические;

 

 

 

 

Команды пересылки объектного адреса:

 

команды передачи управления.

 

 

Команда MOV DPTR, #data16 загружает

Команды обмена данными

 

 

 

16-битное слово данных (адрес объекта),

 

 

 

указанное

непосредственно в качестве

 

 

 

 

 

 

 

 

 

Команды обмена данными, в свою оче-

 

операнда,

в

регистровую

пару

редь, делятся на три подгруппы:

 

 

DPH/DPL.

 

 

 

 

общего назначения;

 

 

Арифметические команды

 

 

 

обмена с аккумулятором;

 

 

 

 

 

 

 

 

 

 

 

пересылки объектного адреса.

 

 

Микроконтроллеры семейства С500 ис-

 

 

За исключением команд извлечения дан-

пользуют четыре базовые арифметические

ных из стека (POP) или пересылки данных

операции. Непосредственно поддержива-

непосредственно

в

регистр

PSW

ются только 8-битные операции с беззнако-

(MOV PSW), ни одна из этих команд не

выми переменными. Однако благодаря на-

влияет на текущее состояние флагов в ре-

личию флага переполнения можно произ-

гистре слова состояния (PSW).

 

водить сложение и вычитание как для це-

 

 

Команды обмена данными общего назначе-

лых чисел со знаком, так и для целых чисел

ния:

 

 

 

без знака. Арифметические операции также

Команда MOV пересылает бит или байт

могут производиться

непосредственно с

 

 

из операнда-источника в операнд назна-

числами в двоично-десятичном формате.

 

чения.

 

 

 

 

Сложение:

 

 

 

 

Команда PUSH инкрементирует указа-

 

Команда INC (инкрементирование) до-

 

 

тель стека и после этого передаёт байт из

 

бавляет единицу к операнду-источнику и

 

 

операнда-источника по адресу, заданно-

 

помещает результат в операнд-источник

 

 

му указателем стека.

 

 

 

(при этом состояние флагов в регистре

Команда POP пересылает байт операнда

 

PSW не изменяется).

 

 

 

 

из ячейки памяти, адрес которой задан

 

Команда ADD суммирует значение ре-

 

 

указателем стека, в операнд назначения,

 

гистра А (аккумулятора) с операндом-

 

 

после чего декрементирует указатель

 

источником и помещает результат в А

 

 

стека.

 

 

 

 

(аккумулятор).

 

 

 

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]