Можно ли скомпилировать ассемблерный код в MSVC ++? - PullRequest
1 голос
/ 03 июня 2009

Можно ли создавать, редактировать, связывать, компилировать (компилировать слово?) И т. Д. Ассемблерный код в MSVC ++?

Кроме того, если это невозможно, как я могу создать .exe из простого текста, то есть: преобразовать текст в любой формат, необходимый для использования кода сборки, а затем превратить код сборки в файл .exe. (Я бы сказал, скомпилировать, но я не думаю, что это правильное слово здесь).

И, наконец, какие есть хорошие места, чтобы начать изучать ассемблерный код? Написано так, что может использовать тот, у кого мало опыта.

Я знаю, что некоторые из этих вопросов, вероятно, очень глупы, но у меня нет абсолютно никакого опыта в ассемблере, и я не совсем уверен, с чего начать.

Ответы [ 6 ]

8 голосов
/ 03 июня 2009

На x86 да. Вы можете использовать ключевое слово __ asm , чтобы встроить сборку в ваши стандартные исходные файлы, и использовать обычные инструменты компиляции / компоновки MS, чтобы собрать все вместе.

В x64 (или x86) вам может потребоваться использовать компиляторы командной строки ML и ML64 для сборки.

3 голосов
/ 03 июня 2009

Visual Studio предоставляет ключевое слово __ asm для компиляции встроенной сборки в c и c ++. Здесь также хорошо обсуждается использование встроенной сборки . Однако, если вы просто говорите о компиляции сборки самостоятельно, я не уверен, что Visual C ++ является правильным инструментом, однако я почти уверен, что Visual Studio поставляется с MASM сборщиком.

1 голос
/ 03 июня 2009

Да, вроде.

C:\Program Files\Microsoft Visual Studio 9.0\vc\bin>ml
Microsoft (R) Macro Assembler Version 9.00.30729.01
Copyright (C) Microsoft Corporation.  All rights reserved.

usage: ML [ options ] filelist [ /link linkoptions]
Run "ML /help" or "ML /?" for more info

Вы бы использовали макро ассемблер. Я не знаю, будет ли Visual Studio автоматически «делать правильные вещи» с файлами .asm, но вы, безусловно, можете отредактировать их вместе с ним и собрать их с помощью ml.exe.

Хорошим местом для начала изучения ассемблера может быть изучение реверс-инжиниринга.

1 голос
/ 03 июня 2009

Вы можете использовать ключевое слово __ asm , чтобы написать встроенную сборку.

pcasm-book (pdf) - хорошее руководство для начала программирования кода сборки.

1 голос
/ 03 июня 2009

Короче, да.

Согласно Википедии , MASM поставляется со всеми версиями Visual C более поздней, чем VC6, а также доступен в комплекте драйверов для Windows. Поддерживаются все версии, поддерживающие 16-битный реальный и защищенный режимы, 32-битный и 64-битный.

0 голосов
/ 03 июня 2009

Найдите информацию о ключевом слове C ++ 'asm'. Это может зависеть от компилятора, но я знаю, что VC ++ поддерживает его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...