Цифровые устройства и микропроцессорные системы. Задачи и упражнения: Учебное пособие (Представление чисел и арифметические операции в цифровых устройствах. Микропроцессорные устройства и системы на базе МП КР580ВМ80), страница 97

JMP     FILTER           ;Переход к вычислению следующего                     10

;значения уn

ST:                  xn                                                       ;

ST + 2             xn – 1                             ;

ST + 4:            xn – 2                             ;           Отсчеты сигнала

………………………………………;

ST + 2(N – 1):xn – (N – 1)

Длительность вычисления выходного сигнала уn

.

При fт = 2 МГц и N=4 tф=120мкс.

Следовательно, максимальная частота дискретизации сигнала

fд = 1/tФ = 8,3 кГц

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

Р8.26. В обоих случаях — как после команды RST, так и после команды CALL — нарушается естественный порядок выполнения команд и осуществляется переход к подпрограмме адресом, указанным в командах RST и CALL, причем адрес возврата запоминается в стеке, но команда RST подается от внешнего устройства (например, от контроллера прерываний) “аппаратным” путем, а команда CALL содержится в программе, хранящейся в ЗУ.

Р8.27. Команда RST подается в МП по ШД от внешнего устройства (контроллера прерываний или блока приоритетных прерываний), обеспечивает прерывание и запоминание в стеке прерванного процесса, а также определение в МП начального адреса подпрограммы обслуживания прерываний. Схема работы МП в режиме прерываний после получения команды RST показана на рис. 8.6.

Команда RST содержит в третьем — пятом битах один из восьми возможных «уровней» прерывания n = N5N4N3 соответствующий одной из восьми возможных подпрограмм обслуживания прерываний. В счетчике команд фиксируется адрес 8n, который можно было бы использовать как начальный адрес подпрограммы, однако, поскольку интервал между адресами 8n и 8(n+1) составляет всего восемь ячеек памяти, а подпрограмма занимает, как правило, больший объем, по адресу 8n обычно располагается команда безусловного перехода JMP В2В3, которая и содержит начальный адрес подпрограммы áВ3ñ áВ2ñ = m.

Возврат к основной программе после выполнения подпрограммы происходит по команде RET; при этом используется адрес, сохраненный в стеке при выполнении команды RS1

Р8.28. Команды EI и DI соответственно разрешают и запрещают прерывания; их включают в различные точки основной программы и подпрограммы обслуживания прерываний в соответствии с алгоритмом решаемой задачи (см. рис. 8.6).

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

Команды PUSH позволяют сохранить в стеке содержимое аккумулятора, РОНов и регистра признаков при переходе к обслуживанию прерываний, а команды POP — восстановив их содержимое перед возвратом к основной программе. Каждая из этих команд позволяет оперировать сразу двумя байтами (содержимым регистровой пары). В подпрограмме обслуживания прерываний целесообразно сохранять и восстанавливать содержимое только тех регистров, которые используются и в ней, и в основной программе.

Во время исполнения команд PUSH и POP должен обеспечиваться запрет прерываний.

Р8.29. Подпрограмма обработки прерываний:

DЕТ:               РUSН  РSW                ;Сохранение в стеке содержимого аккумулятора и

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

IN        05                    ;Ввод числа из порта 05

АNI     80                    ;Выделение знака (старшего бита) числа

JNZ     М1                  ;Проверка знака числа, обход вывода при

;отрицательном знаке

OUТ    07                    ;Вывод числа в порт 07