Quantum С П А С И Б О!!!!!!!!!!! Объясни почему именно так??? Я только начал изучать FASM,Стоит его изучать???Что лучше FASM или Masm???
не знаю, у меня не получилось. посмотри здесь: http://www.vortex.masmcode.com/files/Scan346.zip там есть пара примеров fasm + polink... но это всё равно не то - там не используются объектные файлы от masm-a.
Beginer01 Что тебе говорил линкер масма? - Он говорил, что не может найти символ _demo@0. А как он его мог найти, если в фасмовом исходнике этот символ назывался просто demo (без знака подчёркивания в начале и без суффикса @0)? Поэтому решение напрашивается само собой - поменять имя символа на то, которое требует линкер масма. Для этого можно использовать расширенный синтаксис директивы public, которая позволяет "переименовать" символ в обьектнике. Всё это описано в документации. Лучше бы ты спросил почему линкер масма требует символы со столь странными именами. Причиной тому demo PROTO Т.к. в самом начале исходника указано, что используется соглашение stdcall (см. .model flat, stdcall), PROTO адаптирует имя символа demo под это самое соглашение. stdcall требует, чтобы имена символов начинались со знака подчёркивания и заканчивались суффиксов @X, где X - размер параметров данной функции в байтах. Если параметров нет, как в случае demo, их размер равен нулю. Если параметр только один и имеет 32-битный размер, то суффиксом будет @4, т.е. 4 байта. И т.д. Таким образом, при использовании соглашения stdcall можно по имени символа угадать примерное кол-во параметров в данной функции. Кроме формата имени соглашение stdcall диктует ещё много интересных правил, затрагивающих использование и сохранение регистров общего назначения и т.д. Обо всём этом можно почитать в документации масма. Чтобы PROTO не "переименовывал" символ demo в данном случае можно просто явно указать другое соглашение, которое не использует подчёркивания и @X: demo PROTO SYSCALL
shoo там не используются объектные файлы от masm-a объектные файлы от Fasm-a %папка в которой установленный Fasm%\Examples\MSCOFF\MSCOFF.obj make library: masm32\bin\lib MSCOFF.obj /out:MSCOFF.lib link example file: \masm32\bin\ml /c /coff "test.asm" \masm32\bin\Link /SUBSYSTEM:WINDOWS "test.obj" Делаем library на Fasm-e & подключаем к Masm-y
Beginer01 я не видел ответа Quantuma, когда постил. "там не используется" я имел в виду примеры к scan.