Главная страница
Библиотека (скачать книги)
Скачать софт
Введение в программирование
Стандарты для C++
Уроки по C#
Уроки по Python
HTML
Веб-дизайн
Ассемблер в среде Windows
ActiveX
Javascript
Общее о Линукс
Линукс - подробно
Линукс - новое
Delphi
Паскаль для начинающих
Турбопаскаль
Новости
Партнеры
Наши предложения
Архив новостей
|
Для нахождения суммы элементов массива воспользуемся следующим простым
алгоритмом: сперва загрузим в вершину стека первый элемент массива,
после чего будем прибавлять к нему в каждой итерации значение последующего
элемента. Количество итераций, равное размеру массива,
помещаем в регистр ЕСХ. После того, как сумма найдена, помещаем ее в
переменную ISUM командой f istp.
Следующая группа команд, которую мы рассмотрим, — команды умножения/
деления целых и вещественных чисел. Примеры их вызовов можно
представить в виде фрагмента кода:
WORD_INTEGER
SHORT_INTEGER
SHORT_REAL
LONG REAL
LABEL WORD
LABEL DWORD
LABEL DWORD
LABEL QWORD
fmul SHORT_REAL
fimul WORD_INTEGER
fmulp ST (2) , ST(0)
fdiv ST(0), ST(2)
fidiv SHORT_INTEGER
fdivp ST(2), ST(0)
fdivr ST(0), ST(2)
fidivr WORD_INTEGER
fdivrp ST(2), ST(0)
Как и в случае операций сложения и вычитания, в качестве операндов этих
команд используются либо два регистра сопроцессора, либо регистр стека и
ячейка памяти. Показать использование команд сложения/умножения лучше
всего на примере. Программный код этого примера более сложный и
демонстрирует способы применения различных команд сопроцессора. Необходимо
найти числовое значение величины z вещественного типа, определяемой
формулой (х - Y ) / ( x + Y). Фрагмент кода программы приведен
в листинге 2.21.
<< Назад В начало Далее >> |
|