Помогите с ассемблером
Хочу начать учить. посоветуйте какой лучше MASM,TASM? Литературу нашел, там вроде написано примеры для NASM . Синтаксис в этих трех ассемблерах одинаковый или нужно искать под каждый свою литературу?
Хочу начать учить. посоветуйте какой лучше 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" форум работает много материалов . линк не могу написать из за лимитов