Главная » 2014 » Сентябрь » 23 » Компиляция ассемблерного кода masm32
15:30
Компиляция ассемблерного кода masm32
Есть множество версий разного рода ассемблеров и соответствующих программных компиляторов. Также немало и всевозможной документации по этим вопросам. Но лично мне кажется, что начинать нужно с классики жанра – знаменитого туториала от Iczelion'a и используемого им пакета Masm32.

Пакет Masm32 (на сегодня 10-я версия) на самом деле имеет компилятор макро ассемблера ml.exe от 1999 года. Т.е. он много лет практически не меняется. Возможно это последняя бесплатная версия, ибо более поздние компиляторы ml.exe принадлежат Microsoft и входят в состав продуктов MS Visual Studio, по крайней мере, начиная с 7-й версии (2000 год). Так что, если у вас есть MS VC7 или выше из VS, то вы можете воспользоваться более новой версией ассемблерного компилятора.

В принципе нас устраивает любая версия Masm32, хоть бесплатная, хоть от MS. Поэтому, для чистоты эксперимента будем работать с Masm32 и компилятором от 1999 года.

Вот перечень файлов, которые нам понадобятся. Они (или аналогичные) есть также и в Visual C++ из MS Visual Studio.

Каталог Bin:

ml.exe – компилятор макро ассемблера;
ml.err – пустой текстовый файл, для вывода ошибок компилятора;
link.exe – линковшик;
rc.exe – компилятор ресурсов;
rcdll.dll – библиотека компилятора ресурсов;
cvtres.exe – дополнительный компилятор ресурсов;
mspdb50.dll – общая библиотека поддержки.

Каталог Lib (для наших целей достаточно):

kernel32.lib
shell32.lib
msvcrt.lib

Выше этих каталогов мы будем располагать следующие файлы:

write.asm – полученный с помощью IdaPro ассемблерный листинг программы write.exe;
headers.inc – файл заголовка для write.asm, описан ниже;
write.res – файл ресурсов для write.asm, описан ниже;
asm.bat – командный файл, описан ниже.

Опишем используемые нами дополнительные файлы.

Файл заголовка headers.inc

Поскольку нам нужны будут в обязательном порядке lib-файлы, для используемых в ассемблерном коде функций из системных dll-лек, то сразу вставим строку
   Просмотров: 260

Меню сайта



Поиск

Календарь

«  Сентябрь 2014  »
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
2930

Друзья сайта

Параметры

 
 

Статистика

uCoz Counter
TOPlist TOPlist
Copyright 2009 | Каталог   Хостинг от uCoz |

Free counters