Использование Ассемблера для разработки Windows-приложений




Содержание

Содержание.. 1

Введение.. 2

Глава 1. Теоретическая часть. 3

Использование Ассемблера для разработки Windows-приложений. 3

Глава 2. Практическая часть.. 6

Исходный код программы.. 7

Выводы... 13

Список использованных источников.. 14

 


 

Введение

Эволюция средств проектирования программ в течение последних десятиле­тий способна удивить любого человека, занимающегося разработкой про­граммного обеспечения. Особенно это касается написания программ для операционных систем семейства Windows. Современные инструментальные средства настолько развиты, что разработчик программного обеспечения может получить готовую программу с помощью нескольких щелчков мы­шью. Огромное количество книг, статей и исходных текстов программного кода посвящено проектированию программ на С, Pascal, Basic и других языках программирования. Язык низкого уровня — язык ассемблера — по­сле "смерти" MS-DOS, казалось, доживает последние дни. Но вопреки про­гнозам он не сошел с арены и продолжает весьма широко использоваться при разработке программ. В чем же секрет живучести этого языка?

Ответ довольно прост и может быть сформулирован одним предложением: язык ассемблера — это язык, на котором "говорит" процессор, и исчезнуть он может только вместе с исчезновением процессоров! По этой же причине ассемблер имеет одно фундаментальное преимущество перед языками высо­кого уровня: он самый быстрый. Большинство приложений, работающих в режиме реального времени, либо написаны на ассемблере, либо используют в критических участках кода ассемблерные модули.

Нередко можно слышать утверждения о том, что процесс разработки про­грамм на языке ассемблера слишком трудоемок и отнимает массу времени. Еще одним препятствием для работы с ассемблером считают его сложность. И, наконец, в качестве аргумента приводится утверждение, что разработка приложений на ассемблере сильно затруднена из-за отсутствия современных инструментальных средств для проектирования и отладки.

Такие утверждения, вообще-то, не соответствуют действительности. Язык ассемблера не сложнее других языков программирования и довольно легко осваивается как опытными, так и начинающими программистами. Кроме того, в последние годы появились очень мощные инструментальные средст­ва разработки программ на ассемблере, и это вынуждает по-другому взгля­нуть на процесс разработки программ на этом языке. Среди таких инстру­ментальных средств проектирования можно назвать макроассемблер MASM32, AsmStudio и NASM. Эти и другие аналогичные инструменты про­ектирования сочетают в себе гибкость и быстроту ассемблера и современ­ный графический интерфейс. Многочисленные библиотеки функций, раз­работанные для ассемблера, приблизили этот язык по своим функциональным возможностям к средствам проектирования приложений на языках высокого уровня. Поэтому в настоящее время противопоставле­ние ассемблера языкам высокого уровня не имеет под собой реальных ос­нований.

 

Глава 1. Теоретическая часть

Использование Ассемблера для разработки Windows-приложений

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

До сих пор существует некий стереотип, касающийся разработки приложе­ний на ассемблере. Среди многих программистов, пишущих на языках вы­сокого уровня, бытует мнение о сложности ассемблера, плохой структури­руемости программного обеспечения и плохой переносимости кода при переходе на другие платформы. Возможно, многие помнят разработку про­грамм на ассемблере в MS-DOS, что действительно требовало немалых уси­лий. Кроме того, отсутствие в то время современных средств программиро­вания на ассемблере замедляло разработку сложных проектов.

В последнее время ситуация изменились благодаря появлению принципи­ально новых и эффективных средств быстрой разработки на языке ассемб­лера. Специально для этого были разработаны мощные средства быстрого проектирования (Rapid Application Development — RAD), такие как MASM32, Visual Assembler, RADASM. Размер и быстродействие оконного приложения SDI (single-document interface), написанного на ассемблере, просто впечатляет.

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

Основная причина, по которой ассемблер не применялся массово для раз­работки программ, — отсутствие средств быстрого проектирования — ис­чезла. Какие приложения можно проектировать на ассемблере? Проще от­ветить на другой вопрос — что не следует писать на ассемблере? Небольшие и средние по объему 32-разрядные приложения для Windows можно цели­ком написать на ассемблере. Однако если разрабатывать сложную програм­му, требующую применения самых современных технологии, то лучше ис­пользовать языки высокого уровня с последующей оптимизацией отдельных участков кода на ассемблере.

Существует еще одна проблема использования ассемблера, связанная с тем, что этот язык рассчитан на разработку процедурно-ориентированных прило­жений и не использует методы объектно-ориентированного программирова­ния (ООП). Именно это приводит к некоторым ограничениям при исполь­зовании ассемблера. Тем не менее это никак не мешает применять язык ассемблера для написания классических Windows-приложений процедурно- ориентированного типа.

Современные средства разработки программ на ассемблере не только по­зволяют создать графический интерфейс пользователя, но и сохраняют фундаментальное преимущество ассемблера: фантастически малый размер исполняемого модуля. Короткие быстрые приложения на ассемблере нахо­дят применение там, где размеры кода и его быстродействие являются кри­тическими параметрами. Сферами применения таких приложений являются системы реального времени, системные утилиты и программы, а также драйверы устройств.

Программы на ассемблере управляют как периферийным оборудованием персонального компьютера (ПК), так и нестандартными устройствами, при­соединенными к ПК. Минимальные размеры программного кода обеспе­чивают высокое быстродействие работы таких устройств. Приложения реального времени используются повсеместно в системах управления в промышленности, научных и лабораторных исследованиях, в военных раз­работках.

Особенность системных программ и утилит состоит в том, что они очень тесно взаимодействуют с операционной системой, и скорость выполнения таких приложений может существенно повлиять на общую производитель­ность всей системы. Это в значительной степени относится и к разработке драйверов периферийных устройств компьютера и системных служб. Средства разработки на ассемблере позволяют создавать и быстрые утилиты командной строки (консольные приложения). Использование в таких утили­тах системных вызовов Windows позволяет выполнить очень многие слож­ные функции (копирование файлов, функции поиска и сортировки, обра­ботка и анализ математических выражений и т.д.) с очень высоким быстродействием.

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

Необходимо также упомянуть еще об одном аспекте применения языка ас­семблера, достаточно экзотическом, но тем не менее используемом. Основ­ная программа пишется на ассемблере, а вспомогательные модули — на лю­бом другом языке, например на С++ или Pascal. При этом основная программа использует, как правило, мощные библиотечные функции языка высокого уровня, например математические или строковые. Кроме того, если для разработки интерфейса используются вызовы WIN API (Application Programming Interface), то программа получится очень мощной. Конечно, написание таких программ требует от программиста незаурядных знаний ассемблера и языков высокого уровня.

 


 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2021-04-20 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: