MASM - это инструмент Microsoft Macro Assembler для преобразования языка ассемблера в объектный код. Он обрабатывает инструкции x86 и псевдо-инструкции, написанные в "синтаксисе Intel". MASM - это стандартный низкоуровневый язык для всех сред MSDOS и Windows, который в настоящее время поддерживается в 32-битной и 64-битной версиях.

Этот тег предназначен для вопросов, касающихся конкретно MASM. Общие вопросы о языке ассемблера должны быть помечены как ассемблер или ассемблер. Вопросы, конкретно касающиеся ЦП, должны быть помечены как x86 8086 x86-64 i386 и / или sse. Кроме того, вопросы о masm32 SDK и IDE также должны быть помечены соответствующим образом. Среди других конкурирующих ассемблеров - tasm gas и nasm: проверьте документацию на соответствующее программное обеспечение, чтобы проверить степень совместимости с исходным кодом, специфичным для MASM.

MASM был доступен с MSDOS 1.0 в 1981 году и был отдельным продуктом примерно до 1999 года; с тех пор он был упакован с другими инструментами, в первую очередь с Visual Studio. Хотя самая последняя версия больше не доступна для загрузки, она предоставляется вместе с Visual C++ и доступна через командную строку.

MASM содержит мощные возможности макросов, препроцессор с доступом к программным символам и может манипулировать строками, условной сборкой и некоторыми C-подобный синтаксис (if...elseif...else...endif, while..endw, а также repeat..until). Другие функции включают набор переменных, приведение типов и проверку типов аргументов.

Большая часть сложности использования MASM связана со сложностью и неортогональностью архитектуры процессора Intel. Благодаря достижениям в технологии процессоров язык ассемблера также расширился и усовершенствовался, хотя иногда и случайно. Например,LOOP а также REP инструкции неявно могут использовать только регистр CX (или ECX в 32-битном режиме), что связано с дизайном набора команд.

Ожидайте, что потребуется обширное предварительное планирование и исследования на уровне выпускников, чтобы использование MASM было плодотворным.

Ресурсы: