Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Белош_Лекции_4_курс_2010г.doc
Скачиваний:
27
Добавлен:
16.07.2019
Размер:
2.92 Mб
Скачать

5.Команды ввода/вывода. Эта группа команд весьма разнообразна и очень существенно зависит от архитектуры конкретной эвм. В учебных целях рассматривается команда вывода output и команда ввода input.

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

По команде ввода данные из регистра данных внешнего устройства передаются по шине ввода/вывода в аккумулятор. Перед тем чтобы прочитать слово из регистра данных внешнего устройства процессор должен указать, когда внешнее устройство приготовит эти данные в своем регистре. Внешнее устройство в своем контроллере кроме регистра данных имеет еще регистр команд и состояний. В случае предыдущей команды вывода процессор после запроса выводимых данных в регистре данных записывает в регистр команд и состояний внешнего устройства команду записи. В случае ввода информации с внешнего устройства процессор может читать бит готовности в регистре команд и состояний внешнего устройства . Как только передаваемая информация появится в регистре данных внешнего устройства , соответствующий разряд готовности в регистре команд будет установлен в «1» и процессор может прочитать данный вид внешнего устройства. Этот способ называется «Чтение по готовности» и не очень удобен, так как процессор будет занят постоянным опросом готовности внешнего устройства. Существует 2 способ чтения информации из внешнего устройства по прерыванию. Процессор предварительно записывает в регистр команд и состояний внешнего устройства разрешение на прерывание и уходит выполнять свою основную программу. Когда переданная информация появится в регистре данных внешнего устройства, будет автоматически установлен в «1» бит готовности и в совокупности с разрешением прерывания от этого бита готовности возникает прерывание основной программы и процессор уйдет на чтение данных из внешнего устройства.

Способы адресации

Для того чтобы выполнить ту или иную команду, процессор должен узнать следующее: какую именно команду надо выполнить, где находятся первый и второй операнды и куда нужно поместить результат. Информация по всем этим вопросам содержится в команде когда она находится в регистре команд.

Команда содержит в общем виде следующие поля:

В каждом конкретном случае той или иной ЭВМ назначение разрядов команды может несколько меняться, но общий принцип остается. Код операции имеет столько разрядов, сколько необходимо для кодирования всех операций которые может выполнять АЛУ. В данном разделе нас интересует 2 других сегмента команды а именно признак адресации и адресное поле. Совместное использование двух этих полей позволяет определить адреса операндов и адрес результата. Поскольку в команде кол-во разрядов ограничено, а хочется адресовать как можно большее пространство памяти, то разработчики архитектуры ЭВМ изобрели несколько способов определения адресов операндов с помощью двух этих полей команды. Основными способами адресации являются следующие :

1.Прямая адресация

2.косвенная адресация

3.Относительная адресация

4.Непосредственная адресация

  1. ПРЯМАЯ адресация В этом случае адресное поле команды содержит адрес операнда, с которым нужно выполнить операцию.

  2. КОСВЕННАЯ адресация этот способ адресации введен для того чтобы расширить возможности по адресации операндов в поле памяти, поскольку вся команда 16-ричная, то адресное поле получается <16. В случае косвенной адресации в адресном поле команда указывает всего лишь адрес ячейки, в которой находится адрес операнда. Это позволяет адресовать операнды всей шириной ячейки, т.е. использовать для адресации все 16 разрядов, что существенно увеличивает адресуемое поле.

  3. ОТНОСИТЕЛЬНАЯ. Рассмотренные выше способы жестко привязаны к абсолютным адресам ячеек памяти. Это очень ограничивает возможности по программированию и не позволяет размещать блоки программ в соответствии с текущим ходом выполнения программы. В случае относительной адресации ячейки адресуется относительно какого-либо регистра или счетчика команд. Если адресация выполняется относительно счетчика команд, то она называется относительной . Если относительно одного из регистров общего назначения-то она называется индексной, а используемый для этого регистр называется индексом.

  4. ИНДЕКСНАЯ АДРЕСАЦИЯ в этом случае используется индексный регистр, т.е.один из регистров общего назначения. Для нахождения адреса операнда содержимое индексного регистра складывается с величиной смещения, которая находится в адресном поле команды.

Рассмотренные выше 2 способа адресации – относительная и индексная позволяют адресовать удобным способом массивы данных. В индексном регистре задается адрес начала массива, а адресная часть команды каждый раз задает положение искомого операнда внутри этого массива. Меняя значение смещения в адресном поле команды, мы можем перебирать все массивы.

  1. НЕПОСРЕДСТВЕННАЯ. В этом случае в адресной части команды непосредственно содержится сам операнд. Это самая короткая по циклу операция по циклу операция, поскольку нет необходимости обращаться к ячейкам памяти в поисках операнда.

ADD непосред. А, 032

До выполн. А: 022+032=054

А: 054

Система команд и способы адресации

PDP-11

Первоначально ЭВМ имели структуру, в которой к процессору подключается память, УВВ – т.н. радиальная структура.

Существенным переворотом в развитие архитектур ЭВМ внесли разработчики мини ЭВМ PDP-11. Они предложили подключить все устройства друг к другу единым образом и все элементы ЭВМ подключаются на многопроводную шину, которая называется «общая шина»

В этом случае, как у процессора, так и у памяти, внешних устройств, существует единый стандартный интерфейс общей шины.

Другое замечательное свойство этой архитектуры заключается в том что как элементы памяти, так и внешние устройства адресуются на внешней шине единым образом. Каждое внешнее устройство имеет в своем составе регистр данных и регистр команд и состояний. Регистр команд и состояний является управляющим регистром устройства. В него записывается соответствующая команда для внешнего устройства (Ввод или вывод, запись или чтение), а соответствующие разряды этого регистра содержат флажки, которые характеризуют состояние внешнего устройства (готовность к записи данных во внешнее устройство или наличие данных, т.е. готовность для чтения). Архитектура этой ЭВМ получается настолько удачной, что все мини и микро ЭВМ строятся до сих пор на этой архитектуре.

Рассмотрим более подробно систему команд ЭВМ PDP 11.

На сегодняшний день это целый ряд программно совместимых микро ЭВМ. Фирма DEC продолжает развивать мощные 64-разрядные системы VAX и микропроцессорные наборы системы Alpha Т.к. PDP-11 имело 11 разрядов, то максимальное количество памяти, которую можно было адресовать ОЗУ=2^16=64 Кбайта= 32 Кслова. Эта микро ЭВМ позволяла обращаться как к словам так и к байту. Структура адресации ОЗУ была следующая:

Слова адресовали четными линиями. Слова в поле памяти адресутся четными числами при адресации байта четный адрес указывает на младший байт, а нечетный на старший.

Регистры Д и РК и с внешнего устройств располагаются в верхней области памяти, для работы программистов является доступными 8 регистров общего назначения (РОН), из них 2-особые.

Внутри процессора имеется еще один регистр, который называется регистр словосостояния процессора или процессор статус (PS)

Распределение разрядов этого регистра.

Младшие разряды в разрядной сетке этой машины находится справа.

Текущий и последующий режимы характеризуют взаимодействие пользователя с системой.

Биты с 5 по 7 задают приоритет с которым процессор может иметь 8 уровней приоритета. Это позволяет гибко программировать взаимодействие процессора, выполняющего текущую программу с подпрограммой требующей прерывание, эта подпрограмма, чтобы получить возможность обслуживания, должна выставить запрос на прерывание с уровнем выше текущего уровня программы.

Биты с 0 по 4 являются флагами и при включенном бите Т и после выполнения каждой команды производится процедура прерывания.

N – результат в аккумуляторе отрицателен

Z – результат в аккумуляторе нулевой

V – (объем) – переполнение

C – перенос в старший разряд.

С помощью этих флажков можно организовать циклы в программах и производить ветвления.