2013-02-14 5 views
1

Поддерживает ли Visual Studio автозаполнение кода для языка ассемблера x86? Я обнаружил, что автозаполнение полезно при работе с языками программирования высокого уровня, такими как Java и C++, и я хочу знать, доступна ли аналогичная функция для языка ассемблера в Visual Studio (например, ввод m может предоставить mov в качестве предложение и ввод текста j предоставили бы j1 в качестве предложения).Автозаполнение кода для языка ассемблера x86

+0

Я считаю, что трудно запомнить каждое ключевое слово для ассемблера x86, поэтому некоторая функция автозаполнения будет очень полезна (если она существует). Можно ли реализовать функцию автозаполнения кода для языка ассемблера, по крайней мере теоретически? –

+2

Вам не нужно запоминать каждую инструкцию или ключевое слово. Вы очень быстро запомните наиболее простые и полезные (например, 'mov',' add', 'ret',' jz' и т. Д.). –

+0

@AlexeyFrunze Тем не менее, автозаполнение может облегчить изучение каждой из этих основных инструкций (вместе с целью каждой инструкции). Было бы также полезно, если документация для каждого ключевого слова может быть отображена на клавиатуре, что является особенностью IDE для некоторых других языков. –

ответ

-1

Я не знаю, предоставит ли это автозаполнение, но как насчет использования REPL для X86? http://en.wikipedia.org/wiki/Read–eval–print_loop

Существует один на GitHub https://github.com/rfw/ex86

+0

Существует также [RadasM] (http://www.oby.ro/rad_asm/), который, по-видимому, поддерживает автозаполнение. –

+1

Как REPL относится к вопросу? –

2

Насколько я знаю, только Иды, которые обеспечивают некоторое автодополнение для ассемблера являются те, которые предназначен специально для ассемблера.

RADASM - один из примеров такой IDE.

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

В больших проектах сборки могут быть тысячи ярлыков, поэтому быстрая навигация внутри этого набора действительно очень полезна.

Один из самых современных двигателей автозавершения реализован в Fresh IDE.

Это мой проект, но я думаю, что я беспристрастен в этой оценке.

Большинство IDE-модулей сборки используют фиксированные списки меток API и иногда просматривают исходные файлы, чтобы создавать списки обнаруженных меток. Они вынуждены использовать такие трюки, потому что, как правило, они являются универсальными IDE, которые должны поддерживать несколько разных сборщиков и компиляторы HLL.

Fresh IDE отличается - он выполняет реальную компиляцию с использованием ассемблера FASM для сбора набора идентификаторов, обнаруженных ассемблером после компиляции. Таким образом, все метки распознаются должным образом, даже те, которые генерируются макросами во время процесса сборки, вместе со своими значениями, типами и иерархической структурой.

Это решение было принудительно, поскольку FASM имеет очень сложную и гибкую макросистему, которая делает любой другой механизм обнаружения ненадежным.

Использование фиксированных списков API также невозможно, поскольку Fresh IDE не привязана к определенному API, но предназначена для программирования приложений для нескольких поддерживаемых ОС и даже для разработки ОС.

+0

Может ли Fresh IDE использоваться с MASM, а также с FASM? –

+0

Нет - к сожалению, единственный способ получить действительно хорошую IDE - это очень тесно интегрировать его с целевым компилятором. Я не работаю с HLL, но AFAIK, FASM можно использовать вместе с C/C++-программами. Вы можете скомпилировать в формат объекта COFF, а затем соединить все. – johnfound

Смежные вопросы