Главная Случайная страница


Полезное:

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


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Листинг 18.2. Функции библиотеки системы с фиксированной запятой (FIX.C)





// ВКЛЮЧАЕМЫЕ ФАЙЛЫ ///////////////////////////////

#include <math.h>

#include <stdio.h>

// определим наш новый тип чисел с фиксированной запятой

typedef long fixed;

//ФУНКЦИИ ///////////////////////////////////////////

fixed Assign_Integer(long integer)

{

return((fixed)integer << 8);

} // конец функции присваивания целочисленного значения ////////////////////////////////////////////////////////////

fixed Assign_Float(float number)

{

return((fixed)(number * 256)};

} // конец функции присваивания значения с плавающей запятой ////////////////////////////////////////////////////////////

fixed Mul_Fixed(fixed fl,fixed f2)

{

return ((fl*f2) >> 8);

} //конец функции умножения ////////////////////////////////////////////////////////////

fixed Add_Fixed(fixed fl,fixed f2)

{

return(f1+f2);

} // конец функции сложения ////////////////////////////////////////////////////////////

Print_Fixed(fixed fl)

{

printf("%ld.%ld", f1>>8, 100*(unsigned long) (f1 & 0x00ff)/256);

} // конец функции вывода числа с фиксированной запятой

// ОСНОВНАЯ ПРОГРАММА //////////////////////////////////////

main(}

{

fixed f1,f2,f3;

fl = Assign_Float(15);

f2 = Assign_Float(233.45);

f3 = Mul_Fixed(f1,f2);

printf("\nf1:");

Print_Fixed(f);

printf("\nf2:");

Print_Fixed(f2);

printf("\nf3:");

Print_Fixed(f3);

} // конец функции main

 

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

Теперь перейдем к встроенному ассемблеру.

 

Встроенный ассемблер

 

Ассемблировать или не ассемблировать: вот в чем вопрос. Почти шекспировская задача и нам ее сейчас предстоит разрешить.

Как я говорил ранее, вы должны использовать MASM и встроенный ассемблер, только если в этом действительно возникает необходимость. Ведь все равно операции, которые вы выполняете, являются машинно-зависимыми по своей природе. Вам не нужен ассемблер ни для чего, кроме создания графики и звука. Ни в коем случае не стоит использовать ассемблер для реализации игровой логики и алгоритмов. Кроме того, если ассемблер вам необходим для увеличения быстродействия, применяйте вместо MASM встроенный ассемблер. Он проще в использовании и его применение отнимает меньше времени при разработке программ. Мы обсудим несколько методов, которые увеличат скорость выполнения ваших программ во много раз.

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

Оптимизация рисования пикселей

Первое, что мы должны сделать, это насколько возможно оптимизировать по быстродействию функцию рисования пикселей. Ведь на ней базируются, все остальные графические построения! Давайте возьмем функцию Plot_Pixel() из Листинга 5.4 (вы найдете ее в пятой главе «Секреты VGA-карт») и поглядим можем ли мы оптимизировать ее дальше. Листинг 18.3 содержит новую функцию.

Date: 2015-09-18; view: 359; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.005 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию