Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Прочие языки программирования > Assembler
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 24.09.2012, 12:24
Аватар для ined
ined ined вне форума
Начинающий
 
Регистрация: 16.11.2008
Адрес: Российская Федерация!! :)
Сообщения: 165
Версия Delphi: Delphi 2010
Репутация: 1272
По умолчанию Компилятор

Привет всем. У меня вопрос такой.
Кто нибудь создавал свой собственный компилятор? И если он заброшен, поделитесь наработками.
Компилятор на Delphi для Masm32.

Или поделитесь ссылками где это уже обсуждалось.

Изобретаю своё колесо
__________________
11011111 INED Home code
VK

Последний раз редактировалось ined, 24.09.2012 в 13:26.
Ответить с цитированием
  #2  
Старый 24.09.2012, 14:34
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Насколько я знаю, МАСМ (как и все мелко-мягкое), закрыт. Однако в свободном доступе. Так что писать МАСМ нецелесообразно - и нарушение авторских прав, и пустая работа одновременно.
По поводу изобретения колес - есть например FASM, ИМХО замечательный ассемблер, и вдобавок открытый. Так что поглядеть на исходники вполне можно. Правда он написан на самом себе, и синтаксис немного отличается от MASMа. Также есть NASM (YASM), который тоже открыт.

З.Ы. Поглядеть код фасма можно в теории. На практике, ИМХО, тому, кто сможет это прочитать, надо нобелевскую премию давать...
З.З.Ы. И все-таки для ассемблера он скорее транслятор, чем компилятор.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #3  
Старый 24.09.2012, 21:24
Аватар для ined
ined ined вне форума
Начинающий
 
Регистрация: 16.11.2008
Адрес: Российская Федерация!! :)
Сообщения: 165
Версия Delphi: Delphi 2010
Репутация: 1272
По умолчанию

Моя цель такова, сначала написать на Delphi, а потом с помощью полученного написать тоже самое, только на том что получилось.
В общем должно получится типа что-то вроде FASM(компилятор написанный на самом себе)
На сколько это будет законно?
__________________
11011111 INED Home code
VK
Ответить с цитированием
  #4  
Старый 24.09.2012, 21:42
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Ну, думаю, что заявлять, что это творение ремейк "МАСМ" нельзя, а вот сказать, что это совершенно иной ассемблер, но с МАСМ-совместимым синтаксисом, думаю, можно. Борланд ведь так и сделали, когда сделали в ТАСМе совместмость с МАСМом.
Только не пойму, зачем писать на делфи. Не проще первую версию транслировать МАСМом, если уж он все равно потом будет транслироваться собой?
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #5  
Старый 24.09.2012, 21:44
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

На Дельфи проще набросать черновик программы. Потом, по мере продвижения проекта уже переносить в asm.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #6  
Старый 24.09.2012, 21:48
Аватар для ined
ined ined вне форума
Начинающий
 
Регистрация: 16.11.2008
Адрес: Российская Федерация!! :)
Сообщения: 165
Версия Delphi: Delphi 2010
Репутация: 1272
По умолчанию

Цитата:
Сообщение от angvelem
На Дельфи проще набросать черновик программы. Потом, по мере продвижения проекта уже переносить в asm.

Угадал. Так проще.
__________________
11011111 INED Home code
VK
Ответить с цитированием
  #7  
Старый 24.09.2012, 21:51
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Мм.. Кому-то наверно действительно проще.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #8  
Старый 24.09.2012, 21:57
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Ты не понял. Писать крупный проект сразу на asm-е гемморойно, не знаешь что и как пойдёт. На Дельфи пишешь не для того, чтобы потом дизассемблировать, а чтобы увязать все куски в единое целое. Но..., если ты готов с нуля подобное писать на asm-е, прочитай своё З.Ы. в первом топике.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #9  
Старый 24.09.2012, 21:58
Аватар для ined
ined ined вне форума
Начинающий
 
Регистрация: 16.11.2008
Адрес: Российская Федерация!! :)
Сообщения: 165
Версия Delphi: Delphi 2010
Репутация: 1272
По умолчанию

Значит никто не занимался этим, согласно вопросу в первом посте?
__________________
11011111 INED Home code
VK
Ответить с цитированием
  #10  
Старый 24.09.2012, 22:01
Аватар для ined
ined ined вне форума
Начинающий
 
Регистрация: 16.11.2008
Адрес: Российская Федерация!! :)
Сообщения: 165
Версия Delphi: Delphi 2010
Репутация: 1272
По умолчанию

Цитата:
Сообщение от angvelem
прочитай своё З.Ы. в первом топике.
В точку. Попробуй разбери что там и куда и от куда.
__________________
11011111 INED Home code
VK
Ответить с цитированием
  #11  
Старый 24.09.2012, 22:02
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Цитата:
Но..., если ты готов с нуля подобное писать на asm-е, прочитай своё З.Ы. в первом топике.

На самом деле я просто очень давно толком не брался за какие-либо ЯВУ и много кода писал сразу на асм для экономии времени. Поэтому мне такое было бы проще прикинуть принципиально на бумаге карандашом, а потом кодить сразу на асм. И скажу, при правильном подходе код на асм может выглядеть и читаться не хуже, чем на ЯВУ (при знании асм, разумеется). Оформление, комментарии и описание наше всё.
Цитата:
Значит никто не занимался этим, согласно вопросу в первом посте?
Думаю, нет. Велосипеды типа калькуляторов и плееров делаются регулярно, а вот подобные... Очень редко.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.

Последний раз редактировалось Bargest, 24.09.2012 в 22:04.
Ответить с цитированием
  #12  
Старый 24.09.2012, 22:08
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

На бумажке прикинуть, хорошее дело. Но не все нюансы так просчитаешь.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #13  
Старый 24.09.2012, 22:17
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Я себе взял замечательную привычку: сначала делаю общую схему в виде картинки. Потом проектирую на бумажке элементы (примерно прикидываю схему работы, что с чем и как взаимодействует). Потом делаю большое текстовое описание, где подробно описываю сначала общие принципы работы (пояснение к картинке), потом алгоритмы, потом структуры данных. И обязательно его сохраняю. Только после всех этих махинаций я начинаю кодить. И тут язык уже не важен: все алгоритмы расписаны до невозможности, вся схема перед глазами. Если вскрывается недочет описания - тут же правлю его. Добавляем к описанию комментарии - и получаем замечательную вещь: кучу асм кода, в который мне пришлось фтыкать по новой через несколько месяцев абсолютного забытия. И справился довольно быстро.
После этого картинку можно сжечь и код уничтожить - все равно восстановить все это особо большого труда по описанию и обрывкам мыслей не составляет (только времени много: уже терял крупные куски кода и приходилось части проекта восстанавливать).
Да, очень много времени уходит. Но иначе писать ОСь на ассемблере не в виде набора костылей невозможно. А с такой системой очень удобно.

Ну а если код предстоит небольшой, то все это иногда проделываю быстро в голове. Правда в этом случае если не успеть закодить до конца дня, будет феил.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.
Ответить с цитированием
  #14  
Старый 24.09.2012, 22:18
Аватар для ined
ined ined вне форума
Начинающий
 
Регистрация: 16.11.2008
Адрес: Российская Федерация!! :)
Сообщения: 165
Версия Delphi: Delphi 2010
Репутация: 1272
По умолчанию

Оценил FASM как то он не очень. В последней версии masm32 есть так называемые дополнения которые создают начало проэкта:
- Форму
- Консоль
- Библиотеку DLL
А в FASM что-то токого я не увидел.
__________________
11011111 INED Home code
VK
Ответить с цитированием
  #15  
Старый 24.09.2012, 22:20
Аватар для Bargest
Bargest Bargest вне форума
Профессионал
 
Регистрация: 19.10.2010
Адрес: Москва
Сообщения: 2,390
Версия Delphi: XE3/VS12/FASM
Репутация: 14665
По умолчанию

Цитата:
Сообщение от ined
Оценил FASM как то он не очень. В последней версии masm32 есть так называемые дополнения которые создают начало проэкта:
- Форму
- Консоль
- Библиотеку DLL
А в FASM что-то токого я не увидел.
Эм. Не стоит путать транслятор и его обвес. На FASM есть, например, сторонняя FreshIDE, которая мне вообще сверхупрощенную делфи 7 напомнила. Там и вкладки с компонентами есть. Только никакого отношения к самому языку оно не имеет. В FASM'е как в языке меня больше всего привлекают удобные локальные метки, мощные виртуальные структуры и "прямой" синтаксис, очень простой и совершенно однозначный. Вообще все говорят, что макроязык фасма очень силен. Однако я из макросов пользую только структуры, поэтому оценить не могу и опираться на чужое мнение не буду.

З.Ы. если будешь смотреть фреш - она новая, поэтому только альфа. Дебаггер лучше не включать.
__________________
jmp $ ; Happy End!
The Cake Is A Lie.

Последний раз редактировалось Bargest, 24.09.2012 в 22:29.
Ответить с цитированием
Этот пользователь сказал Спасибо Bargest за это полезное сообщение:
ined (24.09.2012)
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 21:34.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter