Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
2.23 Mб
Скачать

2.3. Стек і команди роботи зі стеком в однокристальному мп кр580

Стек - це область оперативної пам'яті, яка адресується за допомогою вказівника стека (SР)(І6-розрядного програмне доступного регістра). На початку роботи зі стеком ініціалізується нижня межа стека (рис.7).

При записуванні інформації в стек він зростає в бік молодших адрес. У МП КР580 стекові операції виконуються з 1б-бітними словами. У стек можна записувати тільки вміст регістрових пар і отримувати інформацію зі стека можна лише у регістрові пари. Розглянемо команди роботи зі стеком.

1. Занесення в стек вмісту пари регістрів :

PUSH RP ; RP: В- ВС, D- DE, Н- HL;

((SP)-1)<-(rh);

((SР)-2)<-(rl);

(SP)<-(SP)-2.

Послідовність дій МП при виконанні команди PUSH Н така :

• вміст вказівника стека зменшується на 1: (SP)<-(SP)-1;

  • в комірку пам'яті за адресою ((SP)-l) записується вміст регістра Н;

  • вміст вказівника стека зменшується на 1: (SP)<-(SP)-!;

  • комірку пам'яті за адресою ((SP)-2) записується вміст регістра L : ((SP)-2)<-(L).

2. Зчитування зі стека вмісту пари регістрів.

POP RP ; .

(rl)<-((SP));

(rh)<-((SP)+l);

(SP)<-((SP)+2).

Вміст комірки пам'яті, адреса якої визначається вмістом вказівника стека SP, пересилається в молодший регістр пари регістрів RP. Вміст наступної за зростанням адреси комірки пересилається в старший регістр пари. Вміст вказівника стека збільшується на 2.

3. Обмін вмісту верхівки стека і вмісту пари HL.

XTHL;(L)<->((SP)); (H)<->((SP)+l);

4. Пересилання вмісту регістрів Н і L у вказівник стека.

SPHL; (SP)<--J-- (H)(L).

Вміст регістрів Н і L (16 біт) пересилається у вказівник стека.

5. PCHL; (H)(L)-> (PC)

Карта пам'яті

Адреса

Дані

Hex

Bin

Hex

Dec

Bin

Коментар

200h

0000

0010

0000

0000

11

17

00010001

1-е дане

201h

0000

0010

0000

0001

13

19

00010011

2-е дане

202h

0000

0010

0000

0010

0F

15

00001111

3-е дане

203h

0000

0010

0000

0011

0D

13

00001101

4-е дане

204h

0000

0010

0000

0100

0C

12

00001100

5-е дане

205h

0000

0010

0000

0101

0B

11

00001011

6-е дане