Книги
чёрным по белому
Главное меню
Главная О нас Добавить материал Поиск по сайту Карта книг Карта сайта
Книги
Археология Архитектура Бизнес Биология Ветеринария Военная промышленность География Геология Гороскоп Дизайн Журналы Инженерия Информационные ресурсы Искусство История Компьютерная литература Криптология Кулинария Культура Лингвистика Математика Медицина Менеджмент Металлургия Минералогия Музыка Научная литература Нумизматика Образование Охота Педагогика Политика Промышленные производства Психология Путеводители Религия Рыбалка Садоводство Саморазвитие Семиотика Социология Спорт Столярное дело Строительство Техника Туризм Фантастика Физика Футурология Химия Художественная литература Экология Экономика Электроника Энергетика Этика Юриспруденция
Новые книги
Цуканов Б.И. "Время в психике человека" (Медицина)

Суворов С. "Танк Т-64. Первенец танков 2-го поколения " (Военная промышленность)

Нестеров В.А. "Основы проэктирования ракет класса воздух- воздух и авиационных катапульных установок для них" (Военная промышленность)

Фогль Б. "101 вопрос, который задала бы ваша кошка своему ветеринару если бы умела говорить" (Ветеринария)

Яблоков Н.П. "Криминалистика" (Юриспруденция)
Реклама

Использование ассемблера для оптимизации программ на С++ - Магда Ю.С.

Магда Ю.С. Использование ассемблера для оптимизации программ на С++ — БХВ-Петербург , 2004. — 496 c.
ISBN 5-94157-414-2
Скачать (прямая ссылка): ispolzovaniyaassemblera2004.djvu
Предыдущая << 1 .. 5 6 7 8 9 10 < 11 > 12 13 14 15 16 17 .. 127 >> Следующая

В последнее время ситуация изменились благодаря появлению принципиально новых и эффективных средств быстрой разработки на языке ассемблера. Специально для этого были разработаны мощные средства быстрого проектирования (Rapid Application Development — RAD), такие как MASM32, Visual Assembler, RADASM. Размер и быстродействие оконного приложения SDI (single-document interface), написанного на ассемблере, просто впечатляет!
Такие средства разработки имеют, как правило, компиляторы ресурсов, большие библиотеки готовых к Использованию функций и мощные средства отладки. Можно смело утверждать, что разработка программ на ассемблере стала столь же легкой, как и на языках высокого уровня.
Основная причина, по которой ассемблер не применялся массово для разработки программ, — отсутствие средств быстрого проектирования — исчезла. Какие приложения можно проектировать на ассемблере? Проще ответить на другой вопрос — что не следует писать на ассемблере. Небольшие и средние по объему 32-разрядньге приложения для Windows можно целиком написать на ассемблере. Однако при разработке сложной программы, требующей применения самых современных технологий, лучше использовать языки высокого уровня с последующей оптимизацией отдельных участков кода на ассемблере.
Существует еще одна проблема использования ассемблера, связанная с тем, что этот язык рассчитан на разработку процедурно-ориентированных приложений и не использует методы объектно-ориентированного программирования (ООП). Именно это приводит к некоторым ограничениям при использовании ассемблера. Тем не Менее, это никак не мешает применять язык ассемблера для написания классических Windows-приложений процедурно-ориентированного типа.
Современные средства разработки программ на ассемблере не только позволяют создать графический интерфейс пользователя, но и сохраняют фундаментальное преимущество ассемблера: фантастически малый размер исполняемого модуля. Короткие быстрые приложения на ассемблере находят применение там, где размеры кода и его быстродействие являются критическими параметрами. Сферами применения таких приложений являются системы реального времени, системные утилиты и программы, а также драйверы устройств.
Программы на ассемблере управляют как периферийным оборудованием персонального компьютера (ПК), так и нестандартными устройствами, при-
22
Введение
соединенными к ПК. Минимальные размеры программного кода обеспечивают высокое быстродействие работы таких устройств. Приложения реального времени используются повсеместно в системах управления в промышленности, научных и лабораторных исследованиях, в военных разработках.
Особенность системных программ и утилит состоит в том, что они очень тесно взаимодействуют с операционной системой, и скорость выполнения таких приложений может существенно повлиять на общую производительность всей системы. Это в значительной степени относится и к разработке драйверов периферийных устройств компьютера и системных служб.
Средства разработки на ассемблере позволяют создавать и быстрые утилиты командной строки (консольные приложения). Использование в таких утилитах системных вызовов Windows позволяет выполнить очень многие сложные функции (копирование файлов, функции поиска и сортировки, обработка и анализ математических выражений и т. д.) с очень высоким быстродействием.
Другой важной областью применения ассемблера является разработка драйверов нестандартных и специализированных устройств, управляемых при помощи ПК. В таких случаях использование программ на языке ассемблера будет очень эффективным. Можно привести много примеров такого использования ассемблера. Это и системы обработки данных на базе ПК с использованием выносных устройств, одноплатные компьютеры с флэш-памятью, системы диагностики и тестирования различного оборудования.
Необходимо также упомянуть еще об одном аспекте применения языка ассемблера, достаточно экзотическом, но, тем не менее, используемом. Основная программа пишется на ассемблере, а вспомогательные модули — на любом другом языке, например, на C++. При этом основная программа использует, как правило, мощные библиотечные функции языка высокого уровня, например, математические или строковые. Кроме того, если для разработки интерфейса используются вызовы WIN API (Application Programming Interface), то программа получается очень мощной. Конечно, написание таких программ требует от программиста незаурядных знаний ассемблера и языков высокого уровня.
Мы рассмотрели далеко не все методы улучшения качества программного обеспечения. Существует масса трюков и ухищрений, которыми пользуются опытные программисты для улучшения показателей производительности.
Оптимизация программ, как я уже упоминал, процесс творческий, и каждый программист весьма индивидуален в выборе методики отладки своих программ.
ЧАСТЬ I
Основы ЭФФЕКТИВНОГО
ПРОГРАММИРОВАНИЯ НА АССЕМБЛЕРЕ
Глава 1
Оптимизация ассемблерного кода для процессоров Pentium
Применение языка ассемблера — это одно из наиболее действенных средств оптимизации программ, и во многом методы, используемые для повышения производительности, схожи с теми, что используются в языках высокого уровня. Однако язык ассемблера предоставляет программисту и ряд дополнительных возможностей. Я не буду повторять то, что уже сказано в контексте оптимизации с использованием языков высокого уровня, а выделю методы, свойственные только ассемблеру.
Предыдущая << 1 .. 5 6 7 8 9 10 < 11 > 12 13 14 15 16 17 .. 127 >> Следующая