Звоните! 
 (926)274-88-54 
 Бесплатная доставка. 
 Бесплатная сборка. 
Ассортимент тканей

График работы:
Ежедневно. С 8-00 до 20-00.
Почта: soft_hous@mail.ru
Читальный зал -->  Полупроводниковая схемотехнология 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 [ 125 ] 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168

Операция

Мнемоника

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

Комментарии

Загрузка в стек

PSH А

1 Msp,

SP - 1 SP

PSH В

в Msp, SP - 1 - SP

Извлечение из стека

PUL А PUL В

32 33

SP + 1 - SP, [Msp] A SP + 1 - SP,

[Msp] -* в

Загрузка указателя стека

M] SPh, + 1] SPl

Запоминание содержимого ука-

зателя стека

SPh M,

\

SPl M + 1

Увежчение содержимого указа-*

теля стека

SP + 1 SP

Уменьшение содержимого ука-

зателя стека

SP - 1 SP

Пересылка содержимого указа-

теля стека в индексный регистр

SP + 1 X

Пересылка содержимого ин-

ккного регистра в указатель

пека

Y - 1 SP

в отжчие от длины слова адреса составляет всего 8 бит.

С помощью команд PUL А или PUL В данные извлекаются из стека. Ясно, что данные, которые были подвергнуты промежуточному запоминанию в стеке, должны быть снова возвращены в ту же подпрограмму, так как в противном случае адреса юзврата и данные перемешаются.

Прерывания

Прерывающая программа представляет собой особую форму подпрограммы. Она отличается от обычных подпрограмм тем, что выход из текущей программы осуществляется не с помощью команды перехода, которая находится в определенном месте программы, а произвольно по запросу внешнего управляющего сигнала. Этот управляющий сигнал необходимо подать

на вход прерываний IRQ (Interrupt Request) ЦПЭ.

Начальный адрес прерывающей программы запоминается в специальных ячейках, находящихся за пределами программы. Для этой цели в микропроцессоре МС 6800 выделены ячейки FFF 8 (старший байт) и FFF9 (младший байт).

Так как выход может произойти в любом месте текущей программы, то необходимо позаботиться о том, чтобы эта программа безошибочно могла продолжить свою работу после возврата из прерывающей программы. Для этого нужно восстановить первоначальные данные в рабочих регистрах ЦПЭ. С этой целью при прерывании содержимое регистров аккумуляторов А и в, индексного регистра и регистра признаков запоминается в стеке. По команде RTI (Return from Interrupt) эта информация возвращается в ЦПЭ. В качестве



Адрес

Стек

07FF

Адрес Возврата (младший байт)

07FE

Адрес возврата (старший байт)

07РП

Аккумулятор А

07FC

Аккумулятор В

07FB

Адрес возврата (младший байт)

07FA

Адрес возврата (старший байт)

07F9

Адрес возврата (млаЛиий байт)

07F8

Адрес Возврата (старший бай4

07F7

Индексный регистр (младший байф

07F6

Индексный региапр (старший бот)

07F5

Аккумулятор А

07F4

Аккумулятор В

07F3

Регистр признаков

Указатель* 07FZ

стека :

Первая подщюграмма

PSH А PSH В

Вторая подпрограмма

Прерывание

Рис. 21.4. Пример содержимого стека.

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

После окончания прерывающей программы осуществляется возврат во вторую подпрограмму, а из нее-в первую подпрограмму. В приведенном примере обе команды PSH необходимо затем дополнить соответствующими командами PUL, которые обеспечат возврат в основную программу. В этом состоянии указатель стека снова задает старший адрес стека (например: 07EF).

Маска прерываний

С помощью признака прерывании / в регистре признаков можно блокировать вход прерываний IRQ. Переход к прерывающей программе происходит только в том случае, если сигнал IRQ подается в ЦПЭ и признак / установлен в исходное состояние. Поэтому этот признак называется также маской прерываний. Ее можно установить или сбросить с помощью соответствующих команд SEI и CLI, указанных в табл. 21.6. При переходе к преры-

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

По управляющей шине NMI (Non maskable Interrupt) можно переходить ко второй прерывающей программе, начальный адрес которой записан в ячейках FFFC (старший байт) и FFFD (младший байт). При этом способе прерываний маска прерываний не опрашивается, поэтому обе прерывающие программы тоже можно вложить друг в друга.

Третья прерывающая программа может начинаться командой SWI (Software Interrupt). Ее начальный адрес тоже будет записан не в программе, а в ячейках FFFA и FFFB. При этом преимущество (по отношению к обычной команде перехода) состоит в том, что содержимое рабочих регистров без дополнительных команд временно запоминается в стеке. Возврат происходит по команде RTI. Маска прерываний не контролируется.

Повторный пуск

Дополнительную возможность для вмешательства в выполняемую программу с помощью управляющего сигнала предо-



Следующая команда

Содержимое рабочих рееистроб

Адрес бозврата

из ЦПЭ

8 стек

Положить 1=7

Программный счетчик Ha[FFF8][FFf9]


Следующая команда

Положить 1 = 0

Рис. 21.5. Блок-схема обработки прерывания IRQ, и возврата RTI.

сгавляет вход Reset на ЦПЭ. Этот вход используется для пуска машины. Если управляющий сигнал Reset воспринят ЦПЭ, то он загружает программный счетчик адресом повторного пуска. Этот адрес должен быть постоянно записан в ячейках

Содержимое рабочих регистров из стека - в ЦНЭ Программный счетчик на адрес Возврата

FFFE и FFFF. Перечень различных начальных адресов приведен на рис. 21.6.

После повторного пуска в указателе стека может быть записано случайное число. Поэтому в начале программы с помощью команды LDS необходимо загру-

Рнс. 21.6. Заполнение ячеек памяти начальными адресами прерывающей программы.

Адрес FFFF FFFE FFFD FFFC

FFF8 FFFA

FFF9 FFF8

Содержимое памяти

Начальный адрес (младший байт)

Начальный адрес (старший байт)

Начальный адрес (младший байт)

Начальный адрес (старший байт)

Начальный адрес (младший байт)

Начальный адрес (старший байт)

Начальный афес (младший байт)

Начальный адрес ( старший байт)

Условие перехода Пуск

Вход Reset

Повторный пуск

Немаскируемое g д прерывание

Программное прерывание

Запрос прерывания

Команда SWI

Вход IRQ



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 [ 125 ] 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168



ООО «Мягкий Дом» - это Отечественный производитель мебели. Наша профильная продукция - это диваны еврокнижка. Каждый диван можем изготовить в соответствии с Вашими пожеланияи (размер, ткань и материал). Осуществляем бесплатную доставку и сборку.



Звоните! Ежедневно!
 (926)274-88-54 
Продажа и изготовление мебели.


Копирование контента сайта запрещено.
Авторские права защищаются адвокатской коллегией г. Москвы
.