|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Апр 22, 2003 10:14:36 И что ето ваще такое? Чем он так выделяется и стоит ли на него переходить с MASM32, который я все-равно знаю плоховато... |
|
|
Дата: Апр 22, 2003 13:18:04 Это довольно молодой, но быстро развивающийся, маленький, мультиплатформенный, удобный компилятор ассемблера. переходить стоит. |
|
|
Дата: Апр 22, 2003 16:17:02 Скачай пакет фасма с этого сайта и почитай мануал к нему, там всё подробно описывается и даже есть примеры... |
|
|
Дата: Апр 22, 2003 23:43:21 Компиляция проще, с помощью макросов можно сдела почти всё что угодно. Говорят язык макросов более гибкий чем у MASM. |
|
|
Дата: Апр 23, 2003 03:23:14 Достотаточно поюзав и Fasm и Masm я пришел к следующим выводам: Fasm приемущества: !!! - более гибкая работа с переменными/константами: значения могут присваеваться в несколько проходов; возможность переопределять любые макросы, директивы, константы итп -плоскабельность -скорость компиляции -дополнительные директивы, типа virtual Masm32 приемущества: !!! - макросы (как ни странно): возможность работы с параметрами как со строкой; макросы выполняются в любом месте кода; условия внутри [IF FALSE] даже не пытаются выполниться в отличие от fasm'а -контроль типов недостатки: -зарезервированных слов дофига, их нельзя переопределять (например, invoke глючит(не правильно обрабатывает параметры типа байт) - приходиться делать stdnvk и cnvk; или переменную с именем type называть _type) -глюки разные Говорят язык макросов более гибкий чем у MASM. на самом деле именно язык макросов у fasma беднее, гибкость заключается в работе с внутренними переменными В итоге вывод: нада нового компилятора писать или fasm доделывать P.S. все приемущества/недостатки обоих asmoв нельзя исправить с помощью тех-же макросов, по моему |
|
|
Дата: Апр 23, 2003 06:50:19 FASM ещё в разработке, так что рано судит его недостатки - они могут быть доделаны, в отличие от MASM'а. |
|
|
Дата: Апр 23, 2003 15:01:10 А почему бы и не написать новый компилятор, основой которого будут всемогущие макросы. Разумеется со временем можно будет добавить и встроенные команды/директивы для повышения скорости компиляции. А потом написать набор макросов, для добавления в код Сишных вставок :) и поддержкой Сишных инклудов. |
|
|
Дата: Апр 23, 2003 15:04:06 А почему бы и не написать новый компилятор, основой которого будут всемогущие макросы. Разумеется со временем можно будет добавить и встроенные команды/директивы для повышения скорости компиляции. Уже есть такой, называется FASM :). |
|
|
Дата: Апр 23, 2003 20:08:52 только больно не бейте, но я собираюсь к лету начать баальшой проект, чтоб летом им заниматься ..когда учёба мучить не будет... буду делать что-то похожее на компилятор... именно похожее....пока ещё совсем не знаю что это будет, но идеи свои пока записываю на бумажку...:))))))) Пока в голову лезет такое название "asm++" |
|
|
Дата: Апр 23, 2003 20:29:24 spaces А меня, вроде как, на третьем курсе учили заниматься всей этой батвой: конечные автоматы и все такое Aquila Такой пример: Пытался я как-то написать макрос определяющий свободен регитр или нет (на МАSМЕ можно даже не пытаться это сделать): Для простоты пока только ecx и только в командах mov ; reg=ecx, result=1 - ecx is free macro askfor reg,result { local ..askfor.ecx.result askfor.ecx.result equ ..askfor.ecx.result result = askfor.ecx.result askfor.ecx=1 } ;upgrade mov and jmp macro mov x,y { mov x,y if x in <ecx> if askfor.#x askfor.#x#.result=1 ;free askfor.#x=0 end if end if if y in <ecx> if askfor.#y askfor.#y#.result=0 ;in use askfor.#y=0 end if end if } macro jmp l { jmp l if askfor.ecx askfor.ecx.result = l#.askfor.ecx.result askfor.ecx=0 end if } ;and downgrade label macro label l { label l askfor ecx,l#.askfor.ecx.result } askfor.ecx=0 Конечно пользоваться таким ... никто не будет, но оно работает, если не пользоваться метками типа mylabel: была бы поддержка InStr и т.п. или т.п., то директива label могла бы и сохранить свои свойства P.S. а чтобы все это работало без label, мне вообще понадобились бы массивы :) может кто знает как сделать проще P.S.S. с контролем типов тоже запариться можно |
|
|
Дата: Апр 23, 2003 20:30:33 P.P.P.S. я за FASM! |
|
|
Дата: Апр 26, 2003 09:32:28 Вперёд к победе FASM'а! |
|
|
Дата: Апр 26, 2003 22:19:39 Давайте писать макросы к фасму и выкладывать куданибудь.... Они потом войдут в мой пакет Асм++, пока он весь под фасм, но вообще, как я уже писал, хочется сделать что-то своё...всмысле компилятор... |
|
|
Дата: Апр 27, 2003 08:56:07 Написать новый компилятор это круто конечно я тоже вот на бумажку записываю всякую муть буду тоже летом этим заниматься. Только вот с тем что базой языка должны быть макросы я не согласен. И ничего хорошего в том что все в Фасме почти состоит из макросов я не вижу. На мой взгляд почти идеальный набор команд и служебных слов представлен в Тасме. В масме действительно много ключевых слов, но это не длжно пугать. Главным недостатком Масма я считаю отсутствие более или менее строгой структуры языка чсе слишком хаотично. По этому идеальный ассемблем на мой взгляд должен перенять следующие вещи из существующих. Из Тасма-набор ключевых слов и директив. Из фасма - все переменные на самом деле указатели и доступ к содержимому должен осущ. путем заключения их в скобки, набор макро директив. Из Масма - идею реализации классов и наследования но только не таким корявым способом который реализован в Масме. Кроме того можно добавить несколько на мой взгляд интересных идей из технологии Net, в часности структуры с методами и свойствами. |
|
|
Дата: Апр 27, 2003 11:09:18 Я и не говорю, что основу языка должны быть макросы, хотя макро язык должен быть достаточно мощным, чтобы можно было определить или переопределить Любую инструкцию.... Я не знаю, может быть я не первый кто это придумал, но инструкции, новые возможности, поддержка новых форматов,: всё это должно подключаться ввиде плагинов или отдельных модулей... Тоесть компилятор будет иметь движок, к которому подключаются все вышеперечисленные вещи... |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.075 |