Обучающие курсы:

Обучение профессии "Разработчик C#" + стажировка в Mail.ru
Обучение профессии "Разработчик Python" + трудоустройство
Обучение профессии "Веб-разработчик" + стажировка в Mail.ru


Главная страница
Библиотека (скачать книги)
Скачать софт
Введение в программирование
Стандарты для 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.


 
 
 

Библиотека программиста. 2009.
Администратор: admin@programmer-lib.ru