Суббота, 18.05.2024, 18:24
Добро пожаловать! ГлавнаяРегистрацияВход
Приветствую Вас Гость | RSS
Меню сайта
Категории раздела
Cтатьи [23]
}I{ack [13]
Мои статьи [1]
MASM [14]
Наш опрос
Оцените мой сайт
Всего ответов: 110
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
 Каталог статей 
Главная » Статьи » MASM

Почему Ассемблер лучше
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 даже не читайте.
Категория: MASM | Добавил: TERMINATOR (11.06.2011)
Просмотров: 1018 | Комментарии: 1 | Рейтинг: 5.0/1
Всего комментариев: 1
1 Сват  
0
Хм... а теперь рассмотрим огромные минусы асемблера:
1. Полное отсутствие портируемости, даже на другую ОС (для этого необходимо написать второй экземпляр программы, на другом ассемблере, а они разные, под конкретную ОС)
2. Отсутствие защищенного и управляемого кода (1-й есть в низкоуровневом Cyclone, оба типа в Java)
3. Производительность современных ПК, настолько высока, что разницы между 3Кб и 222Кб компьютер не видит и т.д. короче эпоха DOS прошла!

пара плюсов которые есть у asm это:
1. иногда незаменимость, если речь идет о написании OS на Java (низкоуровневые части пишутся на специальном asm)
2. незаменимость при использовании методов обратного программирования
на этом все его достоинства заканчиваются! Verilog получается более низкоуровневый чем asm (бо язык разработки архитектуры проца)

Имя *:
Email *:
Код *:
Поиск
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Copyright MyCorp © 2024Конструктор сайтов - uCoz