Методы адресации

Код адресации Наименование Символическая запись Содержимое регистра
0R Регистровый R В регистре содержится операнд
1R Косвенно-регистровый (R) В регистре содержится адрес операнда
2R Автоинкрементный (R)+ В регистре содержится адрес операнда. После операции содержимое регистра увеличивается на 1 при работе с байтами и на 2 при работе со словами.
3R Косвенно-автоинкрементный @ (R) + В регистре содержится адрес адреса операнда. После операции содержимое регистра увеличивается на 2
4R Автодекрементный - (R) Содержимое регистра уменьшается на 1 или 2 (байт, слово) и является адресом операнда.
5R Косвенно-автодекрементный @ - (R) Содержимое регистра уменьшается на 2 и является адресом операнда.
6R Индексный А (R) Содержимое регистра +А является адресом операнда.
7R Косвенно-индексный @А(R) Содержимое регистра +А является адресом адреса операнда.
  Непосредственный #A Операнд находится в следующем слове после команды.
  Абсолютный @#A Адрес операнда А находится в следующем слове команды.
  Относительный А Адрес операнда есть величина А, которая следует за командой, плюс содержимое счетчика команд.
  Косвенно-относительный Адрес адреса операнда есть величина А, которая следует за командой, плюс содержимое счетчика команд.

СЛОВО СОСТОЯНИЯ ПРОЦЕССОРА И КОМАНДЫ ВЕТВЛЕНИЯ

ССП содержится в регистре состояния процессора (РСП), формат которого представлен на рис. 2.

* * * T N Z V C


Рис. 2. Регистр состояния процессора

Разряды 0-3 (C, V, Z, N) определяют коды условий ветвления и содержат информацию о результате последней выполненной процессором команды. Кроме того, установка или очистка этих разрядов может быть непосредственно произведена соответствующими командами в программном или пультовом режиме командами терминала. Установка разрядов по результатам операции в состояние "1" выполняется в следующих случаях: Z – результат операции равен 0; V – в результате операции произошло арифметическое переполнение; C – в результате операции произошёл перенос из самого старшего разряда либо при сдвиге вправо или влево из самого старшего или младшего разряда была выдвинута "1"; N – результат операции отрицателен. Состояние разряда 4 (Т) устанавливается при выборке из стека нового содержимого РСП и затем используется в различных отладочных программах для такого режима выполнения отлаживаемой программы, когда выполнение интересующих пользователя команд вызывает прерывание этой программы и переход на программу связи с оператором. Разряды 5, 6, 7 определяют приоритет процессора, более подробно изучаются в лабораторной работе № 7.

Системное программное обеспечение "Электроники 60М" не даёт возможности пользователю непосредственно обращаться к РСП как к регистру общего назначения или к ячейке памяти. Для записи/чтения РСП существуют специальные одноадресные команды MTPS и MFPS. По команде MTPS восемь разрядов указанного операнда замещают содержимое ССП (кроме разряда Т). По команде MFPS восемь разрядов ССП пересылаются по указанному адресу.

Команды ветвления вызывают ветвление по адресу, являющемуся суммой смещения (умноженного на 2) и текущего содержимого счётчика команд (СК), если условие ветвления выполняется.

Смещение показывает, на сколько ячеек нужно перейти относительно текущего содержимого СК в ту или другую сторону. Так как слова имеют чётные адреса, то для получения истинного исполнительного адреса смещения необходимо умножить его на два перед прибавлением к СК, который всегда указывает на слово. Старший разряд смещения (7) является знаковым разрядом. Если он установлен, смещение отрицательное, ветвление происходит в сторону уменьшения адреса (в обратном направлении). Если в разряде 7 содержится 0, смещение положительное и ветвление происходит в сторону увеличения адресов (в прямом направлении).

Алгоритм работы всех команд условного ветвления (приложение 1) следующий: (СК)(СК)+2ХХХ, при выполнении условия, (СК) (СК)+2, если условие не выполняется.

Восьмиразрядное смещение позволяет производить ветвление в обратном направлении максимально на 200 слов от слова, на которое указывает текущее содержимое СК, и на 177 слов в прямом направлении.

Преодолеть это ограничение позволяет команда JMP – безусловный переход. Она обеспечивает возможность перехода на любую ячейку памяти с использованием всех режимов адресации, за исключением регистрового. При этом адрес перехода равен адресу операнда.

Лекция 4.

Внешние устройства СУ. Программирование операций ввода-вывода. Режим прерывания.

Каждое медленное внешнее устройство микроЭВМ “Электроника 60М” имеет два регистра - регистр состояния (РС) и регистр данных (РД). Типовая структура РС приводится на рис.3.

                               


Рис.3. Структура РС

Разряд 06 - “Разрешение прерывания” - состояние разряда устанавливается ЦП для управления работой в режиме прерывания по готовности. Доступен ЦП по записи и чтению.

Разряд 07 - “Сделано”, если ВУ является передатчиком информации в ЭВМ, - устанавливается схемой в состояние “1”, если прием информации закончен и РД заполнен, обнуление разряда производится после считывания РД или сигналом канала магистрали Сброс; “Готов”, если ВУ является приёмником информации из ЭВМ, - устанавливается в состояние “1”, если РД свободен от информации, сбрасывается в нуль после загрузки РД и вновь устанавливается сразу после начала передачи. Доступен ЦП только по считыванию. Содержимое разряда устанавливается сигналом Сброс.

Разряд 15 - ”Ошибка” - устанавливается в состояние “1”, если ВУ не исправно.

Кроме перечисленных выше разрядов в РС могут находиться и другие значащие разряды, назначение которых зависит от типа конкретного ВУ.

ПРОГРАММИРОВАНИЕ ВВОДА-ВЫВОДА ИНФОРМАЦИИ ПО ОПРОСУ ГОТОВНОСТИ

Примеры простейших программ приведены в табл.3-5.

Таблица 3

Язык Ассемблера Адрес Машинный код
M: TSTB @#177560 BPL M MOV @#177562,R0 HALT   105737 177560 013700 177562

В табл.2 приведён пример ввода символа с клавиатуры.

Таблица 4

Язык Ассемблера Адрес Машинный код
M: TSTB @#177564 BPL M MOV R0,@#177566 HALT   105737 177564 010037 177566

В табл.3 приведён пример вывода символа на экран.

Таблица 5

Язык Ассемблера Адрес Машинный код
M: TSTB @#177560 BPL M M1: TSTB @#177564 BPL M1 MOV@#177562,@#177566 BR M   105737 177560 105737 177564 013737 177562 177566

В табл.4 приведёна программа ввода символа с клавиатуры в «эхо-режиме».

СИСТЕМА ПРЕРЫВАНИЙ МИКРОЭВМ “ЭЛЕКТРОНИКА 60М”

Прерывание программы - это временное прекращение текущей программы и переход к выполнению программы обслуживания устройства, требующего прерывания. Каждое внешнее устройство, способное вызвать прерывание, должно иметь регистр состояния, содержащий разряд разрешения прерывания. Этот разряд должен быть программно установлен в состояние <1>, если устройству разрешается прерывание программы. Кроме того, центральный процессор (ЦП) будет предоставлять прерывание и, следовательно, выполнять программу обслуживания устройства только в том случае, если уровень приоритета ЦП ниже, чем уровень приоритета внешнего устройства, требующего прерывания.

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

Для выполнения процесса внешнего прерывания, порожденного одним или несколькими устройствами ввода/вывода, должны быть предприняты следующие шаги.

1. Устройство ввода/вывода выставляет сигнал требования прерывания к ЦП.

2. Происходит проверка приоритетного ранга прерывания.

3. Если устройство имеет более высокий уровень приоритета, чем ЦП, то ЦП формирует сигнал “предоставление прерывания”.

4. ЦП выполняет до конца текущую команду, проталкивает в стек содержимое регистра состояния процессора и счетчика команд.

5. Внешнее устройство выставляет на магистраль код вектора прерывания.

6. ЦП переходит к выполнению программы обслуживания устройства.

7. ЦП возвращается к главной программе, выталкивая назад из стека старое содержимое регистра состояния процессора и счетчика команд.

Адреса векторов прерывания некоторых устройств приведены в табл. 6.

Таблица 6. Вектора прерывания и приоритеты внешних устройств

Внешнее устройство Адрес вектора Приоритет
Клавиатура Экран Сетевой таймер Печать    

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: