OSDev

для всех
Текущее время: 27 апр 2024, 16:47

Часовой пояс: UTC + 3 часа




Форум закрыт Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 16 ]  На страницу Пред.  1, 2
Автор Сообщение
 Заголовок сообщения: Re: Трансляторы, компиляторы
СообщениеДобавлено: 21 сен 2012, 10:15 
Аватара пользователя

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

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

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Трансляторы, компиляторы
СообщениеДобавлено: 21 сен 2012, 10:31 
Заблокирован

Зарегистрирован: 28 окт 2011, 12:14
Сообщения: 555
Откуда: Новосибирск
Yoda писал(а):
По совокупности характеристик я бы сказал, что FASM лучше подходит для карманных проектов, а NASM для больших.

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Трансляторы, компиляторы
СообщениеДобавлено: 21 сен 2012, 10:38 
Заблокирован

Зарегистрирован: 28 окт 2011, 12:14
Сообщения: 555
Откуда: Новосибирск
Написано, что ARM поддерживает http://arm.flatassembler.net/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Трансляторы, компиляторы
СообщениеДобавлено: 21 сен 2012, 12:17 

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


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

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


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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Трансляторы, компиляторы
СообщениеДобавлено: 21 сен 2012, 13:52 
Заблокирован

Зарегистрирован: 28 окт 2011, 12:14
Сообщения: 555
Откуда: Новосибирск
Дело в том, что прелесть транслятора в том, что на самом деле в умелых руках его можно использовать не хуже компилятора(например С+), так же его прелесть в том, что он не навязывает ни каких правил и ограничений. Я именно этим и пользовался, когда начал писать систему с создания своей системы вызовов. Собирать из кусочков не есть правильно, а система должна грузить модули сама. Систему собирают из разных файлов с кодом или бинарников, в fasm командой include.

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

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

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Трансляторы, компиляторы
СообщениеДобавлено: 03 окт 2012, 05:53 
Заблокирован

Зарегистрирован: 28 окт 2011, 12:14
Сообщения: 555
Откуда: Новосибирск
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

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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Форум закрыт Эта тема закрыта, вы не можете редактировать и оставлять сообщения в ней.  [ Сообщений: 16 ]  На страницу Пред.  1, 2

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB