Главная                Новости                Услуги                Портфолио                Библиотека                Контакты

Assembler - учебник по ассемблеру



В этом туториале я расскажу вам, что такое ассемблер и с чем его едят. Чем же примечателен этот туториал. Этот туториал примечателен тем, что я расскажу вам про ассемблер под Win32 системы, конечно, есть много учебников и книг про ассемблер, но и все писались под DOS, а ДОС это 16 разрядный отстой. Программирование под ДОС, очень сложно, но чтобы программировать под Win32 можно вообще ничего не знать про DOS. Короче забудьте про ДОС. По ходу этого туториала, я буду немного возвращаться к нему, но только для того чтобы пояснить, чем Win32 лучше DOS.

Assembler - это произведение искусства. Ниже чем ассемблер только машинные коды. Ассемблер создан как замена двоичному коду, который понимает процессор. При написании программы на ассемблере вы просто пишете команды процессора, которые процессор последовательно выполняет. Пример команды:

MOV EAX, EBX

В машинных кодах это будет 8BC3 (шестнадцатеричный код, теперь всё будет шестнадцатеричным, ПРИВЫКАЙТЕ). Процессор смотрит на эти циферки и делает то, что они обозначают. Любая программа, написанная на языке высокого уровня (исключая .NET), преобразовывается в ассемблерный код. А почему же ассемблер лучше, чем С++ и др.. Дело в том, что программу, написанную на языке высокого уровня надо перевести на ассемблер, а это очень трудно, потом надо его оптимизировать, современные компиляторы очень плохо с этим справляются. Я провел эксперимент, написал программу (обычное окно с одной кнопкой в центре, которая закрывает его) на разных языках высокого уровня и после компиляции получил вот такие размеры этой самой программы:

C++ Builder 4 - 22 kb
Delphi 5 - 291 kb
Delphi 5 + библиотека KOL - 26 kb
Ассемблер MASM - около 3 kb

Так, что смотрите и делайте выводы, что лучше использовать. Есть другое различие с некоторыми языками высокого уровня, это использование runtime DLL библиотек для их функций. Visual Basic даже не преобразовывает свой язык в ассемблер (хотя версия 5 и выше делают это частично, но не полностью), это сильно зависит от msvbvm50.dll, виртуальной машины Visual Basic. Exe файл, который создан VB, состоит из простых частей кода и многих вызовов этой DLL. Вот почему VB очень медленный. Ассемблер это и есть самый быстрый язык. Он использует только системные DLL: kernel32.dll, user32.dll, и т.д.

Теперь приступим к тому, где именно мы будем писать наши программы на ассмеблере. Компиляция состоит из 2 стадий:
  1. Проверка синтаксиса, создание объектного файла и файла листинга
  2. Линковка, т.е. компоновка.
Вы, наверное, все привыкли к тому, что запускаете Microsoft Visual C++, пишете программу, нажимаете на F7 и всё готово. На ассемблере вам придётся всё делать всё вручную. У ассемблера нет такой среды разработки. Вам придётся писать программу в блокноте, сохранять его в *.asm файл. И из командной строки вызывать ассемблер и линковщик. Потом я вам всё объясню. Теперь смотрим инструменты.

Связки ассемблер-линковщик: 

MASM32 v9.0 (ml.exe, link.exe)
TASM32 v5.0 (tasm32.exe, tlink32.exe)
Также можно FASM, но он только для спецов, примечателен тем, что у него есть своя оболочка не надо никаких объектных файлов т.д., нажимаешь F9 и всё готово.

Текстовые редакторы:

EmEditor Professional Version 4.13 (вне конкуренции)
UltraEdit v*.*.*.* (тоже хороший не я им не пользуюсь) 
Блокнот : (классика).
Также пригодится справочник по API функциям. Желательно из комплекта MS SDK. Полная версия весит 24 MB (почти все апи), есть урезанные версии весом 12 МВ. Русские версии весом ~400 KB даже не читайте.

Думаю, хватит для введения. Ну, как? Ещё не отбило желания изучить ассемблер.

Обсудить на форуме программистов





Подписаться на рассылку:
Средcтва продвижения сайтов в интернете
Аппаратура и программное обеспечение рекламных плееров
Наверное, не секрет, что на сегодняшний день уже нет смысла устанавливать отдельный персональный компьютер для воспроизведения рекламного контента в людных местах. Для этого сейчас начали применять совсем другие специальные компактные устройства, которые
Подробнее »


Накрутка подписчиков в инстаграм
Накрутка – под данным термином стоит понимать приобретение подписчиков и лайков через специальные компании, фрилансеров либо сервисов.
Подробнее »






||