· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.ZEN —› MASM versus FASM

<< . 1 . 2 . 3 . 4 . >>

Посл.отвђт Сообщенiе


Дата: Янв 3, 2004 15:41:59

Что такое masm? ML.exe который по мнению микрософта можно использовать только для написания драйверов.
Ага, вот только слова "только" там нет.

Но я силино сомневаюсь, что можно продать какую-нибудь программу написанную на масме за бугром.
Поверь мне, клиенту начхать на каком ты компиляторе собрал прогу - пусть даже на пиратском делфи.

Кстати, линкер от микрософта добавляет "сигнатуры" к PE файлу. (печать Баала)
А убрать их такая проблема серьезная. Сишный бесплатный академик эдишн тоже имеет сигнатуры - и что?

masm:
- кривой синтаксис (PTR и т.п.)

это субъективное мнение
- плохо документирован
нормально он документирован

- использование - нелегально
- накладывает "печать Баала" на код

с этим понятно все, см. выше :))

- не всегда очевиден код, который он сгенерирует.
например?

- я плохо разобрался с макросами
зря


Дата: Янв 3, 2004 16:08:21

[ S_T_A_S_: Кстати, линкер от микрософта добавляет "сигнатуры" к PE файлу. (печать Баала)]

Я как-то не обращал внимание.., а можно конкретнее какие сигнатуры и в какое место файла он добавляет?


Дата: Янв 3, 2004 16:37:27

В заголовок, перед словов Rich


Дата: Янв 3, 2004 18:23:38

S_T_A_S_
На board.win32asmcommunity я это все видел.
Есть там разные флеймовые топики, особенно где hutch и betov спорили.

Теперь вспомнил! Читал я эти споры. На Хатча вообще все кому не лень нападают, а зря.

но на книжке было написано: "любезно предаставленный фирмой микрософт для использования ТОЛЬКО в образовательных целях"
А кто вас заставляет использовать масм из той дискеты? :-)

Хотя, по-моему, этот вопрос волнует меня горазло меньше, чем вас ;-)
Отнюдь.


Дата: Янв 3, 2004 19:06:37 · Поправил: S_T_A_S_

masquer
Ну вот..

Почему-то за masm никто агументов толком не приводит, только наезжают на меня ;)
Особенно по поводу нелегально (а мне тоже начхать :)

А убрать их такая проблема серьезная
Да я и убрал.. а многие, ведь, и не знали об этом

- не всегда очевиден код, который он сгенерирует.
-например?

Вот простой пример: MOV EAX, foo
Что будет в результате этой операции, сказать можно лишь зная как определена foo.
А можно: label foo или foo equ true

Вот пример по-сложнее: invoke Proc ADDR foo.
Это может быть аналогично invoke Proc OFFSET foo, а может появиться LEA. (про нее тоже не все знают)

По поводу макросов я понимаю, что зря не разобрался с ними как следует.
Но вот проводить опыты как Edmond и искать, что забыла в доках написать микрософт..

Может доки у меня не те?
Но мне кажется дело в том, что у вас опыта на порядок больше и это компенсирует недостатки masm.

По поводу субъективного мнения относительно синтаксиса полностью согласен
У масма он больше к HLL, чем к асму, на мой взгляд.

Думаете у меня с fasmом сейчас все гладко?
Так и хочется иной раз забить :(


Asterix
Я написал выше , где надо линкер поправить ;)


Quantum
Ну куда мне со священными воинами тягаться в Holy War ;-)


Дата: Янв 3, 2004 22:09:33

S_T_A_S_
На вас никто не наезжает, просто пытаемся вступиться за бедного масма :-) Макросы можно и не использовать, коли не нравится HLL-подобный синтаксис. А без макросов масм очень смахивает на любой другой *асм. Зато под масм полно примеров готового кода, библиотек, статей с исходниками. FASM безусловно тоже рулит! Ведь FASM ещё и оптимизирует код, что немаловажно, IMHO.


Дата: Янв 4, 2004 00:17:49

Если кому-то есть что добавить..
Хотелось бы услышать мнение тех, кто работает с FASMом


Мне FASM нравиться очень сильно, потому что:
1. Можно писать все: Windows, Dos, Linux, No OS, (My OS :) )
2. Не нужен линкер.
3. GUI версия. Ну не люблю я писать в конзоли. :) Даже в ДОС-е не любил а пользовал всякие IDE.
4. Скоро сделаем и Fresh. ( http://fresh.flatassembler.net ) - ето специально для визуальное RAD програмирование.
5. И наконец, есть какая то прелесть работать на ассемблер которой может скомпилировать сам собой.


Дата: Янв 4, 2004 12:20:12 · Поправил: 1990

S_T_A_S_
Простите за offtopic, но можно вопрос: а как сваою stub программу при компиляции прикрутить или я сильно неправ и всегда это нужно делать ручками через пе-редактор? А где взять образце "хорошей" стуб?
(Исправился ;)
1990


Дата: Янв 4, 2004 13:03:36

1990

Очевидно, под "студом" имелся в виду стаб. ;)

У фасма он прописывается параметром ON в директиве format. Типа этого:

Format PE GUI 4.0 on 'dosstub.exe'

У масма он указывается линкеру ключом /STUB


Дата: Янв 4, 2004 13:12:05 · Поправил: S_T_A_S_

Quantum
Макросы можно и не использовать
Да из-за них и пытаюсь fasm освоить.. Например, не нравятся мне stack frame с использованием EBP. И так регистров мало..
На masme я ничего лучше, чем использовать конструкции, вроде
invoke TextOut, [ESP+(2+4)*DWORD], 0, EAX, [ESP+(0+1)*DWORD], CON_X (почему в скобочках 2 цифры ? ;)
не придумал (поскольку, по простоте душевной с макросами пытался самостоятельно разобраться).
На fasme есть макросы, которые сильно облегчают здесь жизнь..

А HLL.. так они тоже сильно жизнь упрощает.. Но имхо, лучше знать какие опкоды получатся в результате компильции.

Еще о неочевидности генерируемого кода
FASM позволяет быстрее получить более четкое представление о структуре PE файла, правда не всем это интересно..



Хотя про masm я совсем забыл написать одну "фичу", которая мне много времени сохранила..
Беру *.H, прогоняю ее через h2inc.exe, потом правлю в ручную пару строк.
И делаю что-то вроде "c:\masm32\bin\ml /c /Flerrors /Sn /Ta DX_errors.inc"
Таким образом получаю за пару минут файл с описанием и кодами ошибок, который потом в runtime моя прога при необходимости парсит и мне нужную инфу показывает :-)

А в книжках делают постоянно:
invoke SomeProc
cmp EAX, SomeErrorCode
jz Error
Конечно, можно написать какой-нибудь скрипт, но я лучше masm буду использовать ;-)


johnfound
I just simple KGB agent ;-)) Sorry to know you're still using K6/2-500 :(


1990
Посмотрите на этом сайте архив assembler.ru


Дата: Янв 4, 2004 20:07:32

Quantum

Что-то я стал поглядывать в сторону fasm'а ;-)


Дата: Янв 4, 2004 21:21:27

Ну и я скачал fasm. $-)


Дата: Янв 4, 2004 21:38:06

Да, извиняюсь за безграмотность. Действительно STUB. ;) У меня вопрос несколько иного свойства: как свою STUB добавить в большой екзе, т.е. заменить первую часть в любом коде, т.к. известно, что в любой программе под windows есть две части - файл екзе в обчыном дос формате и приложение для Windows? Может быть это невозможно сделать при компиляции, т.е. возможно только сделать руками?


Дата: Янв 5, 2004 08:05:48

1990
Я же выше написал, где взять инфу. Там все подробно написано.


Дата: Янв 5, 2004 08:42:02

S_T_A_S_
ХМ! Там только про создание собственного STUB, не про компиляцию с большими экзе или я что-то не въехал.

<< . 1 . 2 . 3 . 4 . >>


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.044