На главную  Программирование на Ассемблере в Fasm  Операционные Системы  Написать Автору  Полезные ссылки



Для поиска введите икомое слово в текстовое поле и нажмите Enter:


Что такое Ассемблер?

Я думаю вам известо что PC не понимает слов,предложений и т.п.Всё что понятно этой замечательной машине - это наборы единиц и нолей(пример:0110 ).Зато люди двоичную систему не сильно любят(за исключением некоторых странных личностей).Поэтому когда первым програмистам надоело писать программы в двоичных кодах и вводить при помощи перфорированых карт они быстро замутили hex(шестнадцатиричный) редактор(пример простой  дос программы выводящей сообщение: b409ba0901cd21cd2048656c6c6f20776f726c642124).
Написать программу стало легче,но мастера древности решили что этого мало и изобрели Ассемблер.Теперь команды процессора можно было записать на понятном людям языке(каждой дали название.пример простой  дос программы выводящей сообщение:

; fasm example of writing 16-bit COM program

        org     100h    ;код стартует со смещения 100h
        use16           ;используем 16-битный код


;Вывод текста = 9

 mov     ah,9;Помещаем в регистр ah значение Вывод текста
 mov     dx,hello;Помещаем в dx адресс нащего текста
 int     21h ;Вызываем 21 прерывание
 int     20h ;Вызываем 21 прерывание-Выходим из программы


hello db 'Hello world!',24h;текст  нашего  сообщения
)

.Вот тот же пример на C++:

#include <iostream.h>
int main()
{
   
cout << "Hello World!\n" ;
   
return 0;
}

Затем стали появлятся новые языки. Они развивались,приобретали популярность и умирали забытые всеми,а Ассемблер сколько не пытались похоронить,каждый раз выживал .В чём его секрет?Зачем он вообще нужен?

Зачем он нужен.

Вроде бы есть столько языков-зачем нам нужен этот Ассемблер?Я думаю так думает основная масса тех кто собрался учить новый язык.И начинают учить C,С++,Delphi и т.д.То что "легче".На самом деле лёгкого языка.Что привлекает людей в C,C++?Это масса халявы.Вам тут и куча библиотек где за вас уже накатали 80 процентов программы,и гора справочных материалов,и примеры в изобилии.Тебе поручили создать какуюто прогу-нет проблем.Порылся на свалках исходников,кое-что переделал под себя(попросту испортил) и вот он наш шедевр,бежим за заслуженым гонорором(или отметкой если вы студент).
Однако задумайтесь вот над чем.Те кто пользуется FreeBSD знают что загрузчик(та фича с которой начинается загрузка ОС) этой замечательной ОС помещается в загрузочном секторе(это крохотные 512 байт).Как вы думаете  на чём он написан?Конечно на C!Ведь все UNIX'оиды пишутся на C.-Скажете вы.И сильно ошибётесь.Такой маленький загрузчик может быть написан только на Ассемблере.Вот реальный пример:

1.Программа на Fasm написаная под DOS(*.COM)

 22 байт

2.Программа на Fasm написаная под DOS(*.EXE)

59 байт

3.Программа на С++ написаная под DOS(*.EXE)

23 160 байт

Кстати C не намного лучще.Если вы хотите получить маленькую и шуструю программу-вам необходим Ассемблер.Вот для чего он используется:

  • все, что требует максимальной скорости выполнения: основные компоненты компьютерных игр, ядра операционных систем реального времени и просто критические участки программ;
  • все, что взаимодействует с внешними устройствами: драйверы, программы, работающие напрямую с портами, звуковыми и видеоплатами;
  • все, что использует полностью возможности процессора: ядра многозадачных операционных систем, DPMI-серверы и вообще любые программы, переводящие процессор в защищенный режим;
  • все, что полностью использует возможности операционной системы: вирусы и антивирусы, защиты от несанкционированного доступа, программы, обходящие эти защиты, и программы, защищающиеся от этих программ;
  • и многое другое.

Между прочем уже есть Операционные системы полностью написаные на Ассемблере(MenuetOS,SolarOS,Miraculix и др.).Они быстро развиваются и в будущем продемонстрируют миру на что способен Ассемблер.Кроме того программ написаных на Ассемблере стаёт больше с каждым днём.Появились среды разработки(IDE),библиотеки для облегчения написания программ,Сайты посвященные написанию программ на Asm в различных ОС(Windows,DOS,Linux,FreeBsd и др.)Если вы хотите написать первокласную программу,операционную сиситему,драйвер,антивирус,классный вирус,кряк,патч,или keygen вам Ассемблер необходим(но и про С/C++ не забывайте).
Я думаю с этим ясно,переходим к тому что нам будет нужно для изучения этого великого и могучего богатыря.

Что мы будем изучать?

Я думаю не секрет что  новичок всегда хочет  получить программу не затрачивая больших усилий.Поэтому мы будем изучать Win32 програмирование на Fasm.
В ближайщее время мы узнаем:
1.Как вывести MessageBox.Стили MessageBox.
2.Создаём  обыкновенное окно.(прога будет иметь свою иконку).
3.Создаём диалоговое окно.
5.Выводим надпись(используя нужный нам шрифт).
4.Выводим картинку(используя BitBlt,StrechBlt и TransparentBlt).
5.Получаем время и выводим его на окно.
6.Проигрываем MP3,WAV,MIDI файлы.
7.Создаём непрямоугольные окна.
Пока я не решил что будем изучать дальше,но в скором времени определюсь и
с этим.Ещё я научу вас писать программы отображающие XP стили.

Наверх
Сайт управляется системой uCoz