МЧ
Мария Черных

Помогите с ассемблером

Хочу начать учить. посоветуйте какой лучше MASM,TASM? Литературу нашел, там вроде написано примеры для NASM . Синтаксис в этих трех ассемблерах одинаковый или нужно искать под каждый свою литературу?

Александр Юдин
Александр Юдин

Синтаксис у MASM, TASM и NASM разный. TASM поддерживает синтаксис MASM, если работает в устанавливаемом по-умолчанию режиме masm, но только если писать программы для MS DOS. В программах для Windows синтаксис уже различается: TASM не поддерживает многие макросы MASM, так как у него для тех же целей используются другие макросы.

Если у вас нет никакого опыта программирования на Ассемблере, то советую начать с FASM. Основа его синтаксиса режим ideal TASM плюс макросы MASM. В FASM нужно явно заключать адресуемые переменные в квадратные скобки, что дисциплинирует. В MASM же возможность пропускать квадратные скобки при обращении к содержимому переменных наоборот расхолаживает и ведёт к появлению труднонаходимых ошибок при недостаточном опыте. Кстати, обязательно ставить квадратные скобки в этом случае и в TASM в режиме ideal, и в NASM, и в YASM.
Так же преимущество FASM для новичков в том, что для получения работающей программы не нужно пользоваться командной строкой и знать о линковщиках. Весь процесс компиляции и сборки происходит по одному клику мыши в меню его IDE. К тому же FASM кроссплатформенный. Ещё у него очень мощный язык макросов, что позволяет писать программы на ассемблере, почти как на языках высокого уровня.
Начните с DOS-программ, затем переходите к программированию под Windows и постепенно "раскручивайте" макросы, в первую очередь invoke и его родственников, чтобы понять, как же происходит вызов подпрограмм при различных соглашениях о вызове.

Если после этого решите дальше заниматься ассемблером, то обязательно познакомьтесь с командной строкой, запуском из неё трансляторов и линковщиков. И переходите к MASM, потому что FASM на этом этапе уже начнёт вас тормозить.

Если всё же вам больше приглянулся NASM, то советую использовать не его, а YASM - более расширенный вариант НАСМа, правда при этом придётся пользоваться насмовской документацией.

Если придётся программировать под Linux, то там выбор невелик: FASM можно даже не рассматривать (у него в Linux нет больших преимуществ, как в Windows), GAS или YASM. Последние два поддерживают оба варианта синтаксиса: Intel и AT&T.

По литературе: MASM и TASM в режиме masm для программ под DOS - практически одинаковый синтаксис. NASM и YASM - одна и таже документация с очень небольшими нюансами. MASM и JWASM - практически одно и тоже. TASM в режиме ideal и LZASM - небольшие отличия, пока дело не доходит до расширенной системы команд MMX, SSE, SSE2.

НБ
Надежда Бочарова

2. нужно искать литературу
1. пиши под nasm

Ан
Антон

есть русский ресурс по ассемблеру набери в гугл
"Открытие фронтальной части запланировано на 12/01/2014" форум работает много материалов . линк не могу написать из за лимитов

Похожие вопросы
Ассемблер. помогите решить!!!
Люди, помогите с Ассемблером!!!
Помогите с ассемблером
Помогите, что не так? прога в ассемблере
Помогите решить задачу по ассемблеру
помогите написать программу в с++ или на ассемблере
Помогите на ассемблера надо сделать задачу.
Помогите откомментировать программу на ассемблере....
Ассемблер
Помогите по ассемблеру