Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
18
Добавлен:
16.04.2013
Размер:
142.03 Кб
Скачать

100А move.B #247,d7 установка функции ввода символа с

клавиатуры

CLR.L D0 очистка регистра D0

TRAP #14 ввести символ в D0

CMPI.B #$D,D0 нажат Enter?

BEQ $103С если Да, то перейти к проверке на

размерность

CMPI.B #'0',D0 введенный символ меньше '0'?

BLT $100A если Да, то это не цифра - повторить ввод

CMPI.B #'F',D0 введенный символ больше 'F'?

BGT $100A если Да, то это не цифра - повторить ввод

CMPI.B #'@',D0 введенный символ '@'?

BEQ $100A если Да, то повторить ввод

MOVE.B #248,D7 отображение введенного символа на экран

TRAP #14

MOVE.B #235,D7 выбор функции преобразования ASCII символа

в шестнадцатиричную цифру.

TRAP #14 младшие 4 бита регистра D0 соответствуют

введенной цифре

LSL.L #4,D2 умножаем содержимое регистра D2 на 16

ADD.L D0,D2 прибавляем новую цифру

BRA $100A ввод следующей цифры

103С chk d1,d2 проверка размерности

1100 LEA $1200,A5 адрес начала строки

LEA $1210,A6 адрес конца строки

1108 Cmpa.L a5,a6 конец строки?

BNE $110E åñëè Äà, òî

RTE возврат из подпрограммы,

110E BTST #2,$FF0003 иначе проверяем готов терминал к выводу

символа

BEQ $110E если Нет, то ожидаем готовности,

MOVE.B (A5)+,$FF0007 иначе выводим символ

BRA $1108 вывод следующего символа

1200 DC.W $0D20

DC.W 'OU'

DC.W 'T '

DC.W 'OF'

DC.W ' R'

DC.W 'AN'

DC.W 'GE'

DC.W 00

Введите программу по адресам, указанным в листинге. Установите точку останова по адресу $103E, а затем запустите программу командой G 1000. После запуска программа будет ожидать ввода шестнадцатиричного числа, не более длинного слова (необходимо обратить внимание, что CHK проверяет только младшее слово указанных в команде регистров, т.е если вы введете число больше FFFF, то не смотря на это сравниваться будут только младшие 16 бит), ввод заканчивается нажатием клавиши Enter. Затем программа с помощью команды CHK проверяет размерность введенного числа, и, если оно меньше нуля или больше числа, хранящегося в регистре D1, то выдается сообщение 'OUT OF RANGE' и необходимо заново ввести число.

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

Вопросы:

1. В чем состоит различие между прерываниями и исключительными ситуациями?

2. Какие данные сохраняются в стеке при генерации ИС "ошибка шины" и "ошибка адреса"?

3. Какова стандартная последовательность обработки ИС?

4. В чем разница в обработке прерываний с автовектором и с неавтоматическим вектором?

5. После генерации ИС "ошибка адреса" старшее слово стека было равно $E521. Объясните назначение этого слова и значение его содержимого?

6. Можно ли в подпрограмме обработки ИС "нарушение привилегированности команды" использовать команду TRAP #14?

7. Объясните принцип вложенности ИС?

8. Для чего служит маска прерываний в системном байте регистра статуса?

9. Пусть одновременно поступил запрос на прерывание от внешнего устройства с приоритетом, равным 7, и ИС "ошибка шины". Объясните действия процессора.

10. Будет ли выполнятся прерывание с приоритетом равным 5, если маска приоритета также равна 5?

11. Будет ли выполнятся прерывание с приоритетом равным 5, если в это время обрабатывается ИС "деление на ноль"?

12. Какие действия выполняет процессор при получении запроса на прерывание от внешнего устроуства?

13. Какое прерывание называют немаскируемым, и в чем его отличие от других?

14. Какая из перечисленных ИС имеет наивысший приоретет при одновременном возникновении, а какая низший:

·ошибка шины;

·немаскируемое прерывание;

·TRAP #14;

·команда эмулятора?

15. Объясните отличие в выполнение ИС reset от стандартной схемы обработки ИС?

16. Как можно перейти из пользовательского режима в режим супервизора?

17. Какие виды ИС вам известны?

18. Какие ИС относятся к внутренним?

19. Какие ИС относятся к внешним?

20. Как вычисляется вектор ИС?

21. Какую область памяти отводят для таблицы векторов ИС?

22. Какие команды являются привилегированными?

23. Как обрабатывается ИС "ошибка адреса"?

24. Как обрабатывается ИС "ошибка шины"?

25. Для чего служат ИС:

·команда TRAP

·эмулятор

·команда CHK

Задания

Соседние файлы в папке Motorola - Описание лаб