Patron, хитро!
Спасибо!
Значит, программа перейдёт на 000 000 с адресом возврата и PSW в стеке
Patron, хитро!
Спасибо!
Значит, программа перейдёт на 000 000 с адресом возврата и PSW в стеке
Нет ничего более вечного чем то, что обмотано синей изолентой
Опять вопрос:
- в каком случае может возникнуть прерывание 000 360 ?
Нет ничего более вечного чем то, что обмотано синей изолентой
Это вектор приёмника порта 176560 ( резервный адрес последовательного порта на плате ДВК ).
Последовательный порт ДВК может быть настроен или на основной адрес 177560 ( вектор 60 ), или на резервный адрес 176560 ( вектор 360 ). Настройка на резервный адрес осуществляется для совместимости с КЦГД, который занимает основной адрес/вектор терминала ДВК.
Бр-р-р! Ничего не понял
Думалось мне, что это происходит так:
1. по сигналу VIRQ происходит векторное прерывание.
2. если прерывание разрешено, то на шину выдаётся вектор. Например 360.
3. процессор идёт выполнять программу, адрес которой лежит в ячейке 360.
Как-то так.
Нет ничего более вечного чем то, что обмотано синей изолентой
Значит, на вопрос: "В каком случае может возникнуть прерывание 360 ?" - правильным ответом будет: "Когда устройство, пославшее сигнал VIRQ, выставляет на шину вектор 360".
Мне известно только одно устройство, использующее вектор 360 - это приёмник последовательного порта 176560. Но в принципе - любое устройство, пославшее сигнал VIRQ, может выдать на шину любой вектор.
Сорри за корявый вопрос.
Просто я подумал - а вдруг за этим номером жёстко что-нибудь закреплено в самой структуре процессора.
По типу как есть свои номера прерываний по случаю аварии питания или прихода сигнала IRQ и прочее...
Тогда другой вопрос:
Возможно ли занять область памяти, предназначенную для векторов прерываний, какими-нибудь сторонними процедурами?
Если точно известно, что прерываний с такими векторами не возникнет?
Просто в штатном чипе очень мало свободного места. И прерываний используется всего ничего... а в самом начале свободные ячейки пустуют...
Последний раз редактировалось darkstar; 31.01.2014 в 07:13.
Нет ничего более вечного чем то, что обмотано синей изолентой
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Записал команды в таблицу векторов.
Работает
Нет ничего более вечного чем то, что обмотано синей изолентой
Процессор PDP-11 ничего не знает про "таблицу векторов", точно также как и про "память" или "регистры устройств" - для него это совершенно однотипные адреса на шине.
Если у какого-то устройства на шине достаточно много регистров с последовательными адресами - можно записать код небольшой программы прямо в эти регистры и передать туда управление.
Такой вопрос. Есть команда:
CMPB R0,(R3)+
после выполнения этой команды куда укажет R3?
У меня есть два варианта:
А. Как во всех других командах R3 = R3 + 2, поскольку адреса команд бывают только чётные
или
Б. R3 = R3 + 1, поскольку команда байтовая.
Какой вариант верный?
Интуитивно склоняюсь к Б
Последний раз редактировалось darkstar; 19.02.2014 в 11:24.
Нет ничего более вечного чем то, что обмотано синей изолентой
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)