СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

«способы адресации команд и данных»

Категория: Информатика

Нажмите, чтобы узнать подробности

«СПОСОБЫ АДРЕСАЦИИ КОМАНД И ДАННЫХ»

Просмотр содержимого документа
««способы адресации команд и данных»»

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«БЕЛГОРОДСКИЙ ГОСУДАРСТВЕННЫЙ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ»

(НИУ «БелГУ»)


ИНСТИТУТ ИНЖЕНЕРНЫХ ТЕХНОЛОГИЙ И ЕСТЕСТВЕННЫХ НАУК


КАФЕДРА ИНФОРМАЦИОННЫХ СИСТЕМ





Отчет

по лабораторной работе №2

по дисциплине

«Архитектура ЭВМ и микропроцессорных систем»

на тему:

«СПОСОБЫ АДРЕСАЦИИ КОМАНД И ДАННЫХ»



Студента: Марко Тангуила

фамилия, имя, отчество


кафедры Информационных систем


направления 09.03.02 Информационные системы и технологии

№ и полное наименование


Первый курса группа 07001509





Преподаватель: Шамраев Анатолий Анатольевич, доцент

фамилия, имя, отчество, должность












Белгород 2016

1 Цель работы

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

    1. 2 Порядок выполнения работы

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

2.2 Затем следует перейти в раздел "Моделирование" и выполнить следующие процедуры:

выбрать размер данных – BYTE, размер сегмента – 128 байт;

базовый адрес сегмента рассчитать по формуле:

(N_вар + N_гр * 30) * 16;

эффективный адрес операнда:

ЭА = (N_вар + 1) * 9.

Значения базы, индекса, смещения: произвольные ненулевые, подбираются в соответствии с условиями, приведенными выше. Полученные значения вводятся в окнах Адрес сегмента, Размер сегмента, Смещение и т.д. Для всех девяти методов адресации данных в памяти необходимо построить таблицу.

Таблица 1 – Исходные данные к выполнению задания

Вариант

Режимы адресации


3

Базовый

Базово-индексный с масштабированием

Базово-индексный со смещением



3 Теоретическая часть

      1. 3.1 Непосредственная или литеральная адресация

При непосредственной или литеральной адресации в команде содержится не адрес операнда, а сам операнд. При выполнении такой команды не требуется обращения к памяти для выборки операнда. Непосредственная адресация используется при выполнении арифметических операций, операций сравнения, а также для загрузки констант в регистры. Применение непосредственной адресации позволяет значительно уменьшить время выполнения программ, а также занимаемого ими объема памяти. Учитывая, что частота использования команд с непосредственной адресацией в различных программах колеблется от 17% до 43%, можно сделать вывод об эффективности такого метода адресации.

      1. 3.2 Прямая регистровая адресация

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

      1. 3.3 Базовая адресация

Исполнительный адрес определяется суммой базового адреса Аб и смещения D. Для хранения базовых адресов в процессорах предусмотрены специальные регистры. Для хранения базового адреса используется регистр R1. Кроме того, в адресной части команды выделяется поле, в котором размещается смещение D. Исполнительный адрес формируется: Аи = Аб + D.

Рисунок 1 - Базовая адресация;
а) образование адреса элемента одномерного массива;
б) формирование исполнительного адреса

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

Формирование исполнительного адреса при относительной адресации путем суммирования связано с потерей времени. Поэтому иногда применяется процедура получения исполнительного адреса, получившая название операции конкатенации (совмещения) слова:

РгАОП := [РгВ]\РгК[D],

где \ - символ операции конкатенации.

На рисунке 2 показана процедура получения исполнительного адреса на основе операции конкатенации.

 Рисунок 2 - Формирование исполнительного адреса
методом конкатенации

Учитывая, что базовая адресация для различных программ составляет от 32% до 55%, можно сделать вывод о том, что применение операции совмещения позволяет повысить скорость формирования адреса одного из операндов и производительность процессора в целом.

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

      1. 3.4 Абсолютная адресация

При абсолютной адресации исполнительный адрес совпадает с адресной частью команды, т. е.

РгАОП := 1000; БРгОП := Ячейка ОП[1000].

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

      1. 3.5 Косвенная адресация

При косвенной адресации адресное поле команды указывает адрес ячейки памяти, в которой находится адрес операнда или команды. Таким образом, косвенная адресация может быть определена как "адресация адреса". Наличие косвенной адресации в команде может определяться кодом операции. Кроме того, в некоторых машинах в команде отводится специальный разряд (указатель адресации - УА) и цифра 0 или 1 в нем указывает, является адресная часть команды прямым адресом или косвенным. Процедуру обращения к оперативной памяти за операндом при косвенной адресации можно описать таким образом:

РгАОП := РгК[R1];

считывание: БРгОП := Ячейка ОП[РгАОП];

если УА = 0, то идти к А, иначе РгАОП: = [БРгОП];

считывание: БРгОП := Ячейка ОП[РгАОП];

А: РгАЛУ := [БРгОП].

В этом случае в регистр адреса оперативной памяти заносится содержимое поля R1 команды. Выполняется процедура считывания содержимого ячейки R1 и в буферном регистре ОП размещается один из операндов. Далее проверяется содержимое указателя адреса. Если УА равен 0 (прямая адресация), происходит переход к метке А, и в регистр АЛУ передается код операнда из буферного регистра оперативной памяти. Если же поле УА содержит 1 (косвенная адресация), то содержимое буферного регистра памяти загружается в адресный регистр памяти. Происходит повторное считывание из оперативной памяти (но из другой ячейки) операнда, который передается в регистр АЛУ.

      1. 3.6 Базово-индексная адресация

Является развитием метода базирования, с которым она часто используется совместно. Для выполнения индексации в машину вводятся специальные (индексные) регистры, в качестве которых используются ячейки сверхоперативной памяти. В формате команды выделяется поле Х для указания номера индексного регистра. Исполнительный адрес операнда при индексации формируется путем суммирования содержимого базового, индексного регистров и смещения D (рисунок 3).

Рисунок 3 - Формирование исполнительного адреса при индексации

      1. 3.7 Автоинкрементная и автодекрементная адресации

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

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

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

      1. 3.8 Стековая память

Безадресное задание операндов реализуется посредством стековой памяти, которая является эффективным элементом современной архитектуры компьютеров, начиная персональным компьютером и заканчивая мейнфреймом.

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

Рассмотрим наиболее распространенную организацию стека, при которой он заполняется сверху вниз: первый элемент записывается в самый конец области стека (в ячейку с наибольшим адресом), следующий элемент записывается под ним и т. д. При чтении информации из стека первым извлекается последнее поступившее в него слово. Таким образом, получается, что низ стека всегда фиксирован (это последняя ячейка области стека), а вершина стека все время перемещается. Для задания текущего положения вершины стека используется регистр SP (Stack Pointer – указатель стека). В нем хранится адрес той ячейки, в которой находится элемент, записанный в стек последним. Область памяти, выделяемая под стек, называется сегментом стека. Начало сегмента стека указывается в сегментном регистре BP (Base Pointer). В указателе стека SP устанавливается смещение вершины стека, отсчитанное от начала сегмента стека. Поэтому абсолютный адрес вершины стека задается парой регистров BP и SP (рисунок 2.5).

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

Вычисления с использованием стековой памяти основаны на так называемой бесскобочной записи арифметических выражений (иногда ее называют польской инверсионной записью - ПОЛИЗ). Пусть имеется некоторое выражение:

(a + b)*(с + d):(e*(f - squ g)).

(1)


Запись этого выражения в ПОЛИЗ выполняется следующим образом: будем выписывать в строку, слева направо, операнды в том порядке, как они встречаются в данном выражении. Каждый раз, когда окажется, что операнды, необходимые для выполнения какой-либо операции из данного арифметического выражения, все уже выписаны, запишем знак этой операции; если далее окажется, что уже есть все операнды для следующей операции, запишем ее знак, если нет – будем продолжать выписывать по порядку следующие операнды. Если операндом для некоторой операции является результат какой-нибудь из предыдущих операций, то данный операнд считается имеющимся, если написан знак этой предыдущей операции. Преобразуя по этому правилу приведенное выше выражение, получим:

ab + cd + * efg squ - *.

(2)


В полученной записи арифметического выражения порядок действий определен однозначно, хотя скобки в нем не используются. В стековой памяти последовательность символов в выражении ПОЛИЗ, например (2), может рассматриваться как программа вычисления исходного арифметического выражения (1). На рис. 4 приведена последовательность операндов и операций, записанных в стековую память, для вычисления выражения (1). При этом, в стек заносятся только адреса операндов, содержащиеся в ОП, и коды операций. Коды операций инициируют извлечение из стека одного или двух операндов, выполнение над ними указанной в команде операции и занесение результата в вершину стека.

Адрес a

Адрес b

+

Адрес c

Адрес d

+

*

Адрес e

Адрес f

Адрес g

Извлечение корня

-

*

:

Рисунок 4 - Программа загрузки стека для вычисления выражения 1

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

В архитектуре современных компьютеров стековая адресация широко используется при обработке подпрограмм и в системах прерываний.



Наименование метода адресации

Базовый адрес сегмента

Размер сегмента

База

Индекс

Масштаб

Смещение

Линейный адрес

1

Базово-индексный со смещением


4320

128

32

20


20

0048h

2

Базово-индексный


4320

128

42

30


0

0048h

3

Косвенный регистровый

4320

128

72

0


0

0048h


1).Базово-индексный с масштабированием




2) Базово-индексный

3) Косвенный регистровый