Создание проекта на языке ассемблера в Microsoft Visual Studio Express 2010

Язык ассемблера / Создание проекта на языке ассемблера в Microsoft Visual Studio Express 2010

 

Создание проекта консольного или оконного Windows-приложения не отличается от рассмотренного для языков программирования Си и C++.

После того, как в Visual Studio появилось окно проекта (в левой части появившегося окна отображается Обозреватель решений), для добавления нового файла программы в проект выбираем по правой кнопке мыши на папке Файлы исходного кода меню Добавить->Создать элемент.
Microsoft Bisual StudioВ появившемся окне выбираем Файл C++ (.cpp), задаем имя файла и вручную добавляем к нему расширение asm. Нажимаем кнопку Добавить.
Проект на языке ассемблера в Visual Studio

В появившемся окне набираем текст программы. В качестве примера можно использовать следующий текст:

.686P
.MODEL FLAT, STDCALL
.STACK 4096
.DATA
MB_OK    EQU 0
STR1     DB «Моя первая программа»,0
STR2     DB «Привет всем!»,0
HW       DD ?
EXTERN MessageBoxA@16:NEAR
.CODE
START:
PUSH     MB_OK
PUSH     OFFSET STR1
PUSH     OFFSET STR2
PUSH     HW
CALL     MessageBoxA@16
RET
END START

Добавление

Далее необходимо сообщить среде разработки, что данный файл является программой на языке ассемблера, и для корректного включения его в проект требуется использовать Microsoft Macro Assembler. Для этого выбираем для проекта (по правой клавише мыши) опцию Настройки построения.

Настройки построения

В появившемся окне ставим галочку для masm (Microsoft Macro Assembler) и нажимаем OK.
Microsoft Macro AssemblerТеперь нужно проверить, что для файла на языке ассемблера установился соответствующий инструмент сборки. По правой кнопке мыши для файла с расширением .asm выбираем опцию Свойства.

Свойства проектаВ появившемся окне для выбранного файла отмечаем инструмент сборки Microsoft Macro Assembler.

Инструмент сборкиДля построения проекта выбираем меню Отладка->Построить решение.

Построить решениеВ случае успешного построения в нижней части окна отображается Построение: успешно 1.

Построить решение

Для запуска приложения выбираем меню Отладка->Начать отладку.

Запуск приложения на выполнение

Результат выполнения программы:
Результат выполнения

Изменить тип приложения с консольного на оконное

Чтобы убрать консоль (поменять тип приложения с консольного на оконное, или наоборот) необходимо обратиться к меню Свойства проекта, вызванного по правой кнопке мыши.
Изменение платформы приложенияВ появившемся окне выбрать раздел Компоновщик->Система, и в разделе Подсистема поменять тип с Консоль на Windows (или наоборот).

Выбор консольного или оконного приложения

Повторная сборка и запуск программы на выполнения выдадут следующий результат (консоли нет):
Запуск оконного приложения

Подсветка синтаксиса языка ассемблера

Для того, чтобы включить подсветку синтаксиса языка ассемблера в Microsoft Visual Studio Express 2010 необходимо загрузить файл usertype и распаковать его в папку

C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE

Для подключения подсветки синтаксиса выбираем меню Сервис->Параметры

Подсветка синтаксиса ассемблераВ появившемся окне выбрать Текстовый редактор->Расширение файла и вручную добавляем расширение asm. Нажимаем кнопку Добавить, затем — OK.

Добавление расширения файла asmРасширение файла asmПосле перезапуска Microsoft  Visual Studio Express 2010 подсветка синтаксиса языка ассемблера будет активна.

Назад


Назад: Язык ассемблера

Комментариев к записи: 23

  • У меня Visual studio 2010 стоит на виртуальной машине Vmware 16 проект не компилируется в первой стоке .686P считает ошибкой "Требуется объявление" ну заодно символ @ считает неверной лексемой но это наверное из-за первой


      • Василий
        Елена, большое Вам спасибо за этот очень полезный и прекрасно организованный материал. У меня та же проблема, что и пользователя Шурик. В точности такое сообщение. Тестирую в Visual studio 2013, Windows 7, не на виртуальной машине. Посмотрел, внутри USERTYPE.DAT действительно нет лексем "@" и ".686P". Но если заменить на, скажем, ".686"(лексема есть в файле) то тоже не работает. Попытался вручную вписать лексемы "@" и ".686P" в файл USERTYPE.DAT, но это не помогло. Если не подключать плагин подсветки синтаксиса, то все прекрасно работает. Поскажите, пожалуйста, в какую сторону посмотреть.

        • Елена Вставская
          Данный плагин проверялся в VS 2010. С тех пор много воды утекло. И я уже очень давно не использовала ассемблер. Насколько я знаю, сейчас есть современные средства подсветки синтаксиса типа AsmDude. Но сама не устанавливала.


  • Станислав
    Класс!То,что надо!Елена, вопрос по размеру программы-можно  ее как-то уменьшить?Дело в том,что на си такая  весит  два-три килобайта

    • Елена Вставская
      Сложный вопрос. Можно скомпилировать Release-версию вместо Debug. Но у меня на ассемблере Release-версия этой программы занимает 4кБ, а Debug-версия - 10кБ. Компилятор - Visual Studio 2017. В Си - другие цифры: Release - 9кБ, Debug - 37кБ.

  • Елена! А как в вижуале вывести на экран десятичное число? В турбо асме это делалось через прерывания дос, а как в масме через вижуал? Или проще передавать в модуль на яву (например с++), откуда выводить стандартными функциями? Может есть способ как-то попроще, типа того как Вы выводите здесь строки? Спасибо.

    • Елена Вставская
      Когда требовалось - переводила в строковое представление, а затем выводила стандартными функциями.

  • Боже, как здорово! Я долго искал именно как в Вижуал Студии на асме прогать. Спасибо огроооомное, друг!

  • Статья супер!) а у Вас нету самоучителя хорошего по синтаксису ассемблера? или расшифровка что делает каждая строка кода?

    • Спасибо за отзыв, Сергей! Есть целый конспект по программированию на ассемблере. Скачивайте! Сейчас, к сожалению, указанный курс снят, а конспекты остались.  



    • Да, в Visual Studio 2013 тоже работает. Только там меню Настройки построения... называется Зависимости сборки -> Настройки сборки.




Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *