· Начало · Статистика · WASM.RU · Noir.Ru ·

 WASM Phorum (Оффлайн - 24.11.2003) —› WASM.ASSEMBLER —› Расскажите о FASM

. 1 . 2 . 3 . 4 . >>

Посл.отвђт Сообщен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

Я и не говорю, что основу языка должны быть макросы, хотя макро язык должен быть достаточно мощным, чтобы можно было определить или переопределить Любую инструкцию....
Я не знаю, может быть я не первый кто это придумал, но инструкции, новые возможности, поддержка новых форматов,: всё это должно подключаться ввиде плагинов или отдельных модулей...
Тоесть компилятор будет иметь движок, к которому подключаются все вышеперечисленные вещи...

. 1 . 2 . 3 . 4 . >>


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