Читайте также: |
|
Лабораторная работа № 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 |