OSDev
http://osdev.su/

Трансляторы, компиляторы
http://osdev.su/viewtopic.php?f=26&t=632
Страница 2 из 2

Автор:  Yoda [ 21 сен 2012, 10:15 ]
Заголовок сообщения:  Re: Трансляторы, компиляторы

Станислав писал(а):
Фасм это действительно потрясающий, самый самодостаточный и ненавязчивый, универсальный транслятор, да к тому же бесплатный, с самой большой командной базой, имеющий версию и для АРМов... .

Да потрясающий, конечно, кто же спорит. Только NASM потрясает не меньше. Он тоже бесплатен и также имеет самую большую базу инструкций. В отличие от FASM он генерит больше объектных форматов и работает на любых аппаратных платформах. Также, NASM портирован на наибольшее количество операционных систем, включая QNX, BSD и MacOS. По совокупности характеристик я бы сказал, что FASM лучше подходит для карманных проектов, а NASM для больших.
Про FASM я честно говоря первый раз слышу, чтобы он поддерживал платформу ARM, как в плане работы на ней так и в плане компиляции для неё. Может быть речь идёт только о форматах выходных файлов.

Автор:  Станислав [ 21 сен 2012, 10:31 ]
Заголовок сообщения:  Re: Трансляторы, компиляторы

Yoda писал(а):
По совокупности характеристик я бы сказал, что FASM лучше подходит для карманных проектов, а NASM для больших.

Основное отличие NASM от FASM, в том, что в первом встречаются постоянно навязанные секции .text, .data, .bss, и приходится собирать файлы по кускам.
По этому поводу я и говорил, что FASM ненавязчив и , что мне больше нравится

Автор:  Станислав [ 21 сен 2012, 10:38 ]
Заголовок сообщения:  Re: Трансляторы, компиляторы

Написано, что ARM поддерживает http://arm.flatassembler.net/

Автор:  SII [ 21 сен 2012, 12:17 ]
Заголовок сообщения:  Re: Трансляторы, компиляторы

Yoda писал(а):
Про FASM я честно говоря первый раз слышу, чтобы он поддерживал платформу ARM, как в плане работы на ней так и в плане компиляции для неё. Может быть речь идёт только о форматах выходных файлов.


Есть кросстранслятор, работающий на ПК, но транслирующий программу на ассемблере АРМа. Понятно, что ни о каком его переносе на сам АРМ речи идти не может: его для этого надо переписать полностью.

Станислав писал(а):
Основное отличие NASM от FASM, в том, что в первом встречаются постоянно навязанные секции .text, .data, .bss, и приходится собирать файлы по кускам.
По этому поводу я и говорил, что FASM ненавязчив и , что мне больше нравится


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

Автор:  Станислав [ 21 сен 2012, 13:52 ]
Заголовок сообщения:  Re: Трансляторы, компиляторы

Дело в том, что прелесть транслятора в том, что на самом деле в умелых руках его можно использовать не хуже компилятора(например С+), так же его прелесть в том, что он не навязывает ни каких правил и ограничений. Я именно этим и пользовался, когда начал писать систему с создания своей системы вызовов. Собирать из кусочков не есть правильно, а система должна грузить модули сама. Систему собирают из разных файлов с кодом или бинарников, в fasm командой include.

Моя система вызовов это не просто соглашение о вызове функции с параметрами, она основана на том, что все ресурсы, функции - это часть какого то объекта и доступ к ним в системе идёт через адрес объекта в ebp + смещение. Т.е. сразу работа с объектами на низком уровне.
После создания нескольких объектов и для них функций, ресурсов уже сразу получается небольшая система в которой легко работать(если попробуете, то вам понравится). А создав продуманную систему с таким соглашением получится чистый бриллиант.

В системе не должно быть голых функций, которые работают непонятно с чем и непонятно где, т.к. в момент выполнения любой функции можно посмотреть по адресу в ebp стандартные поля объекта с его инфой, например в каком пространстве или подсистеме этот объект(т.е получив по стандартному смещению в объекте опять же адрес объекта задачи с его инфой о адресном пространстве например).

Вызвав функцию объекта для неё тоже можно оформить параметры и через стек. А в самом объекте собраны все его функции, данные и их не надо искать.

Автор:  Станислав [ 03 окт 2012, 05:53 ]
Заголовок сообщения:  Re: Трансляторы, компиляторы

Fasm кстати может многое с структурами и макросами, и другими конструкторами, а так же можно использовать
file 'interp.asm'
repeat $
load A byte from %-1
if A>='a' & A<='z'
A = A-'a'+'A'
end if
store byte A at %-1
end repeat

это уже бейсик какой то.

Страница 2 из 2 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/