как привыкшему к комфорту сишнику программирующему на Visual Studio знающему множество хоткеев и прекрасно ориентирующемуся во встроенном отладчике также легко программировать на ассемблере пользуясь всеми накопленными знаниями в любимом редакторе со всеми фишками "incremetal search" "run to cursor" и иметь под рукой "зверя" встроенный отладчик который запускается так же легко как при компиляции си программы так же имеется возможность отлаживать по исходным кодам или переключится в режим дизассемблера в режиме отладки ассемблер будем использовать MASM32 с его прекрасными высокоуровневыми макросами (а на этапе изучения асма это очень помогает) сейчас мы с вами будем учить Visual Studio работать как нам надо я буду использовать VS 2008 итак качаем masm32 устанавливаем куда нить теперь создаем новый проект в visual studio file->new->project->general->empty project вводим имя проекта и жмем "ok" теперь solution explorer->source files->add->new item->code выделяем с++ file но ВАЖНО вводим имя файла main.asm ок теперь надо настроить solution explorer->main.asm->properties->custom build step приведу пример с моего проекта command line: C:\masm32\bin\ml.exe /c /coff /nologo /Zi /Fo $(InputDir)$(IntDir)\$(InputName).obj $(InputName).asm description: Assembling... output: $(InputDir)$(IntDir)\$(InputName).obj все понятно ? прописываем путь к асмовскому компилеру все опции узнаете запуском компилятора из командной строки project->properties->linker->optimization->link time code generation: Default все теперь работайте так же как и раньше запускайте отладчик делайте "run to cursor" пересборка и компиляция как и для сишной программы вообщем исходник будет компилиться асмовским компилем ml.exe а вот линкер будет использоваться от студии интересно получается смотриш через peid прога скомпилена через ml.exe а линкер версия стоит 9.0 но это все неважно собственно чего мы добились а вот что работаем в любимом редакторе пользуемся многими его фишками типа "inremental search" "run to cursor" главное имеем под рукой мощного зверя без которого невозможно работать а именно встроенный отладчик которым пользоваться очень удобно не отходя от кассы особенно радует "run to cursor" ну и прочие окна встроенного отладчика доступны вообщем по мне не жизнь а рай теперь качаем AsmHighlighter1_3.msi это аддон добавляет подсветку синтаксиса для .asm файлов ставим и вообще красота получается вот вам пару скринов а теперь тест драйв заходим сюда http://kaimi.ru/2010/09/masm32-часть-3-брутальная-бессердечность/ берем исходник на масме вставляем в свой файл main.asm далее берем файл ресурсов вставляем в свой файл ресурсов жмем ctrl+alt+f7 запускаем вот что запустилось у меня все теперь мы можем писать программы на масме в родной студии и с любимым отладчиком под рукой и любой масмовский код рипнутый как например этот компилить прямо в студии удачи в постигании асма [append] если выполнить следующее tools->options->text editor->file extension в поле extension вводим .asm в поле editor выбираем microsoft visual c++ жмем "ok" перезапускаем студию то станет вообще круто ставиш курсор на имя функции жмеш F1 открывается мсдн с описанием функции так же если подвести курсор к имени переменной типа структуры то раскроется список с внутренними полями (в отладочной сессии) прямо как в сишных исходниках [append] да похоже эти настройки отрубают аддон ну не беда строки и так будут выделяться как сишные строковые литералы а подсветку других ключевых слов мы добавим другим путем создаем в папке C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE файл usertype.dat и пишем туда ключевые слова которые вы бы хотели выделять вот я собрал небольшой списочек Code: REPEAT repeat UNTIL until WHILE while ENDW endw IF if ENDIF endif ELSEIF elseif ELSE else BREAK break CODE code CONST const CONTINUE continue DATA data OFFSET offset SIZEOF sizeof PROC proc ENDP endp PROTO proto STRUCT ENDS ENDSW endsw ADDR addr END end получается довольно симпатично скрин: сохраните и перезапустите студию теперь и структуры разворачиваются и мсдн на нужном месте открывается и подсветка основных ключевых слов есть и отладчик под рукой магический "run to cursor" вообщем получился полный рулез кто еще не программирует на масме ? самое время начать
кстати в прошлый раз подсветка была только ключевых слов синим через файл usertype.dat и только "строк" теперь если поставить VAssistX то с файлом usertype.dat останется все как и раньше а вот дополнительно имена апи функций стандартные типы данных и дефайны тоже будут подвечиваться разными цветами и плюс при этом сохраняется авто разворачивание структур (под отладчиком естественно) вот скрин