Чому Асемблер краще

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

У машинних кодах це буде 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 і все готове.

Блокнот: (класика). Також нагоді довідник по API функцій. Бажано із комплекту MS SDK. Повна версія важить 24 МБ (майже всі апі), є урізані версії вагою 12 МВ. українські версії вагою