русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Регистровый стек модуля обработки операций с плавающей точкой


Дата добавления: 2015-06-12; просмотров: 766; Нарушение авторских прав


Регистровый стек модуля обработки операций с плавающей точкой показан на Рисунке 15-1. Каждый из восьми числовых регистров в стеке имеет размер 80 битов и разбит на поля соответственно расширенному вещественному типу данных процессора i486.

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

Многие числовые команды имеют различные режимы адресации, которые позволяют программисту неявно обращаться к вершине стека или явно оперировать определенными регистрами относительно вершины стека TOP. Ассемблер ASM386/486 поддерживает эти режимы адресации регистров, используя выражение ST(0) или просто ST для того, чтобы обращаться к текущей вершине стека, и ST(i) для того, чтобы определять i-тый регистр от вершины стека TOP (0 <= i <= 7). Например, если TOP содержит число 011B (регистр 3 - вершина стека), то следующий оператор добавляет содержимое двух регистров в стек (регистры 3 и 5):

FADD ST, ST(2) +---------------------------------------------------------------+| || || РЕГИСТРЫ ДАННЫХ FPU ПОЛЕ || ПРИЗНАКА || || 79 78 64 63 0 1 0 || +-------------------------------------------------+ +--+ || R0 | ЗНАК | ПОРЯДОК | МАНТИССА | | | || +------+---------+--------------------------------| +--| || R1 | | | | | | || +------+---------+--------------------------------| +--| || R2 | | | | | | || +------+---------+--------------------------------| +--| || R3 | | | | | | || +------+---------+--------------------------------| +--| || R4 | | | | | | || +------+---------+--------------------------------| +--| || R5 | | | | | | || +------+---------+--------------------------------| +--| || R6 | | | | | | || +------+---------+--------------------------------| +--| || R7 | | | | | | || +-------------------------------------------------+ +--+ || || 15 0 47 0 || +--------------------+ +-------------------------------+ || | РЕГИСТР УПРАВЛЕНИЯ | | УКАЗАТЕЛЬ ОПЕРАЦИИ | || +--------------------| +-------------------------------| || | РЕГИСТР СОСТОЯНИЯ | | УКАЗАТЕЛЬ ДАННЫХ | || +--------------------| +-------------------------------+ || | СЛОВО ПРИЗНАКА | || +--------------------+ || |+---------------------------------------------------------------+ Рисунок 15-1. Набор Регистров FPU Процессора i486

Организация стека и адресация относительно вершины числовых регистров значительно упрощает процедурное программирование, так как позволяет процедурам передавать параметры через регистровый стек. За счет использования стека для передачи параметров, а не специально "посвященных" этому регистров, вызываемые процедуры получают большую гибкость в использовании стека. Пока стек не полон, каждая программа просто загружает параметры в стек перед тем, как вызвать какую-либо подпрограмму для обработки численных расчетов. Затем подпрограмма адресует эти параметры как ST, ST(1) и так далее. При этом TOP, например, может даже ссылаться на физический регистр 3 в одном вызове и на физический регистр 5 в другом.





<== предыдущая лекция | следующая лекция ==>
Программный интерфейс | Слово состояния модуля обработки операций с плавающей точкой


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.007 сек.