Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив1 / docx53 / ПЗ (2).docx
Скачиваний:
52
Добавлен:
01.08.2013
Размер:
293.08 Кб
Скачать

5.8 Алгоритмы выполнения операций с ву

Команда записи в ВУ (рисунок приложения 8.1) выполняется следующим образом. Для формата RR выставляется на шину данных содержимое регистра, номер которого указан в команде. Для формата AS на шину адреса выставляется значение поля S из регистра команд RgI. По этому адресу происходит выборка из памяти 16ти битов на шину данных. Содержимое шины данных записывается в регистр внешнего устройства RgED.

При чтении из ВУ (рисунок приложения 8.2) выполняются следующие действия. С регистра внешнего устройства RgED данные выставляются на ШД. Для формата RR с шины данных информация записывается в регистр, номер которого указан в команде, для формата АS на шину адреса выставляется значение поля S из регистра команд RgI, начиная с этого адреса данные с ШД записываются в ОЗУ.

5.9 Алгоритмы системных операций

По командам запрещения и разрешения прерываний выполняется сброс или установка флага IF соответственно (рисунок приложения 9.1, 9.2).

По команде останова сбрасывается флаг WF регистра флагов RgF (рисунок приложения 9.3).

По команде выхода из прерывания (рисунок приложения 9.4) сначала необходимо извлечь из стека по адресу в SP сохраненное значение регистра флагов RgF. Затем увеличить значение SP на 1 и извлечь из стека сохраненное значение программного счетчика РС, которое храниться в двух соседних ячейках памяти.Далее, устанавливаем требуемое значение флага IF в РС копируем сформированный на ШД адрес.

Команда загрузка регистра базы (рисунок приложения 9.5) происходит в таком порядке. Для формата RR выставляется на шину данных содержимое регистра, номер которого указан в команде. Считать в регистр базы B значение 10 бит, начиная с младших с ШД. Для формата АS на шину адреса выставляется значение поля S из регистра команд RgI. Из ячейки памяти с этим адресов выставляем данные на ШД. Так как ОЗУ по заданию 8 разрядное, на ШД получаются 8 бит, которые мы заносим в регистр базы B. Но B имеет разрядность 11. Оставшиеся 3 бита считываем на ШД из следующей ячейки памяти, ее адрес определяется увеличение на 1 значения РгА. Считанные биты заносятся в старшие разряды B.

Команда загрузка регистра указателя стека происходит аналогично загрузки регистра базы. (рисунок приложения 9.6). Для формата RR выставляется на шину данных содержимое регистра, номер которого указан в команде. Считать в SP значение 10 бит, начиная с младших с ШД. Для формата АS на шину адреса выставляется значение поля S из регистра команд RgI. Из ячейки памяти с этим адресов выставляем данные на ШД. полученные 8 бит мы заносим в регистр SP. Оставшиеся 3 бита считываем на ШД из следующей ячейки памяти, ее адрес определяется увеличение на 1 значения РгА. Считанные биты заносятся в старшие разряды SP.

5.10 Алгоритм выполнения операции записи в озу

Выполнение записи в ЗУ происходит по алгоритму, показанному на рисунке приложения 10.1. Вначале определяем тип формата команды, если AS, то одним операндом будет поле ячейки памяти S , далее определим тип адресации этого операнда. Если адресация прямая адрес ячейки ОЗУ берётся из кода команды и выставляется на шину адреса. При косвенной адресации из кода команды на шину адреса выставляется адрес, по которому из ОЗУ выбирается ячейка памяти, и данные из этой ячейки считываются на ШД. Так как ОЗУ 8-разрядное, то считывание происходит в два этапа, сначала записываем в РгД младшие биты и отправляем их на ШД, затем 3 старших. Далее аналогичным образом копируем их в буферный регистр RgBuf, начиная с младших разрядов. И от туда пересылаем в РгА. При относительной адресации на шину адреса выставляется сумма значений адресов из кода команды и регистра базы RB.

Для формата команды «регистр-регистр» сначала из кода команды номер регистра, в котором хранится адрес операнда. Этот номер выставляем на ША, далее на ШД записываем адрес, хранящийся в этом регистре. Оттуда отправляем его в РгД, затем в RgBuff и, наконец, в регистр адреса. Это процедура происходит в два этапа, т.к. РгД и RgBuff 8-ми разрядные, а РгА 11-ти. Определяем тип адресации. При косвенной адресации из ОЗУ по адресу хранимому на ША считываем адрес ячейки памяти, в которой хранится операнд. Считывание адреса происходит в 2 этапа, сначала считываются младшие 8 бит, затем старшие 3. Адрес с шины даных передаем через буферный регистр в регистр адреса аналогичным образом в два этапа. При относительной адресации в регистр адреса выставляется сумма значений адресов из регистра адреса и регистра базы B.

Далее в зависимости от формата команды мы выставляем на шину данных или значение аккумулятора А (для AS), или выбираем значение из регистра, номер которого указан в регистре команды (для RR). Начиная с адреса, выставленного на ША, копируем данные с ШД в память.

Соседние файлы в папке docx53