Микропроцессоры с изменяемой (наращиваемой) разрядностью слова и микропрограммным управлением (секционные микропроцессоры) на примере микропроцессора К1804, страница 4

Перед выполнением пpогpаммы на вершине стека находились  байты 001 и 010 в ячейках  201 и 200 соответственно. В результате работы пpогpаммы по адресу 200 был записан байт 000,  а по адресу 201 - байт 011.

Команды PUSH записывает в стек слово по адресам (SP-1) и (SP-2). Команда POP считывает из стека слово по адресам (SP+1) и (SP). Указатель стека содержит адрес верхнего слова в стеке,  таким  образом, команда POP извлекает верхнее слово из стека, а команда PUSH - записывает следующее слово в стек.

Извлечение данных из стека в регистровую пару происходит в сторону увеличения адресов, а занесение идет в сторону уменьшения. При включении микроЭВМ указатель стека указывает на адрес начала стека, что и обуславливает необходимость инициализации стека.

Программа 4: Сложение содержимого регистра и содержимого ячейки памяти

Таблица №4

Адрес

Команда

Мнемоника

Комментарий

000

041

LXI Н

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

001

200

B2

Младший байт адреса

002

000

B3

Старший. байт адреса

003

076

MVI A

Загрузка А одним из слагаемых

004

010

B2

Байт данных слагаемого

005

206

ADD M

Сложение А с памятью

006

167

MOV M,A

Запоминание в стеке регистровой пары BC

007

166

HLT

Останов

В паре HL устанавливается адрес 000 200,  по которому записано число 100. В регистр А загружается число 010.

Это число складывается с числом из указанной ячейки памяти. После этого содержимое А опять записывается в память.

Результат выполнения программы:

Адрес        Содержимое

000  200          110        

При замене команды по адресу 005 ADD М ( код 206 ) командой  ADC М ( код 216 ) получили результат:

Адрес        Содержимое

000  200          120

Отличие ADD M от ADC M в том, что во второй  к регистру А (аккумулятору) добавляется флаг переноса ‘с’.