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/ |