Описание тега masm
Этот тег предназначен для вопросов, касающихся конкретно 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 было плодотворным.
Ресурсы: