Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Теоретические сведения. Лабораторная работа № 3

Читайте также:
  1. I. КРАТКИЕ СВЕДЕНИЯ ИЗ ТЕОРИИ
  2. I. Общие сведения
  3. I. ОБЩИЕ СВЕДЕНИЯ
  4. I. Общие сведения о пациенте с травмой, ранением или хирургическим заболеванием
  5. I. Основные сведения
  6. I. Основные сведения
  7. I. Теоретические основы геоботаники

Лабораторная работа № 3

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

 

Цель работы

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

Теоретические сведения

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

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

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

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

3.2.1 Стековая память

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

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

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

 

Рисунок 3.1 - Стековая память

 

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

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

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

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

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

ab + cd + * efg squ - * (3.2).

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

Адрес a
Адрес b
+
Адрес c
Адрес d
+
*
Адрес e
Адрес f
Адрес g
Извлечение корня
-
*
:

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

 

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

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

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

 


Дата добавления: 2015-07-08; просмотров: 401 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Тестовые задания| Формирование адреса в процессорах Intel

mybiblioteka.su - 2015-2024 год. (0.007 сек.)