Как стать автором
Обновить

Комментарии 62

мой адрес электронной почты прежний. Глупый вопрос: а какой? А то если нужна помощь с сайтом, то могу помочь.
гм. знает все у нас яндекс… :-)
кинул адрес в личку
первое с чем вы столкнетесь — это отсутствие какой либо среды для программирования

Простое гугление сразу приводит к нескольким вариантам сред для программирования на ассемблере в emacs.
гм… может я не туда смотрю — но что там есть кроме подсветки кода ?
Начиная программировать на языке ассемблера первое с чем вы столкнетесь — это отсутствие какой либо среды для программирования

SASM – IDE для ассемблера
функциональность сравните. к сожалению она очень и очень бедная....
Я когда-то давно RadASM использовал
Да, ниже мне кидали ссылку на нее.

Мне не нравятся среды с SDI… :-( хоть убивайте… — это опять вторым документов нужно будет блокнот грузить или FAR :-(

p.s. а вообще в выходные я наметил себе установить различных ассемблеров и посмотреть что у них есть из полезной функциональности...
НЛО прилетело и опубликовало эту надпись здесь
  1. Довольно странное решение начинать крупный проект на языке, который приходится изучать по ходу дела.
  2. Довольно странно разрабатывать сугубо виндовую IDE для кроссплатформенного ассемблера. Если хочется Паскаля, то почему не Lazarus?
  3. Довольно много внимания стоит уделить интерфейсу и юзабилити. То, что изображено на скриншотах, будет толкать конечного пользователя к выбору иных альтернатив.
  4. Довольно проблематично не найти в гугле IDE для ассемблера.
  5. Довольно сомнительно звучит заявление о том, что в планах отладчик, но нет понимания как его написать. Попробуйте тогда уж gdb прикрутить, чтобы велосипед не изобретать.
1) согласен, но что то я не увидел толпы желающих помочь, поэтому стал делать сам.
2) ну я вообще под виндой всегда был, есть, и по всей видимости буду… никсоподобные не скоро начнут делать простые и удобные ОС. Да и смысл сидеть на никсе чтобы запускать потом виндовые программы из эмуляции ?! :-) По поводу паскаля и лазаруса- тут по некоторым вопросам на дельфи форумах ответ не найти… а искать спецов по лазарусу тем более не хочется (потому что как правило спецы не отвечают на вопросы чайников. значит искать среди написанного — а написанного наверняка в разы меньше чем про дельфи)
3) ну кого то наверное будет толкать, я не навязываюсь… с другой стороны повальное увлечение однооконным редактором меня убивает больше — потому как переключения из редактора в редактор очень быстро утомляет… если вас спугнул шрифт на скриншотах — это просто я на рабочем компе запустил приложение и не выставил шрифт… на работе 1200 по горизонтали, дома 1900 — потому и масштаб такой получился :-) плюс шрифт выбран не моноширинный…
4) в гугле очень много редакторов с подсветкой кода… в некоторых есть запуск компилятора… — этого мало. ну а другая часть заточена под x86… конечно все можно настроить — только бы понять как…
5) ничего сомнительного, просто пока не задумывался об этом
Немного не по теме: лет 5 назад кончилось терпение и я с Винды пересел на Linux. Устраивает всё и как пользователя, и как разработчика. И таких как я тут наверняка немало. Так что я на Вашем месте не был бы так категоричен относительно простоты и удобства *nix :)

По теме: в рунете форму всегда содержали мало полезной информации, если сравнивать с общими объёмами флуда. Поэтому лучшим помощником всегда была и есть официальная документация. И тут уже не особо важно о чём идёт речь, о Delphi или о Lazarus. Просто надо понимать, что ограничиваясь лишь одной Win-платформой Вы теряете весомую часть целевой аудитории Вашего продукта. В конце концов доля IT-профессионалов, использующих *nix, гораздо выше доли обычных пользователей. И Вы как разработчик мало что теряете, просто пишете код, который с минимальными телодвижениями можно компилировать под разные ОС.
не хочу здесь холиварить по поводу ОС, поверьте, на какой нить -никс я регулярно пробую сесть… и постоянно нахожу какой то пустяк который нужно решить — и к сожалению еще ни разу не смог получить решение… самому к сожалению еще уровня не хватает разбираться…
p.s. из последнего на ubuntu настроить удаленный графический рабочий стол — пару статей нашел где казалось бы нормально для новичка написано — но ни по одной не получилось сделать ничего… на форуме в ответ тишина… так что подождем пока юниксы станут проще и понятнее.

по поводу аудитории — ее нет. есть отдельные люди которым это может быть интересно… опять таки сейчас проект в зачатке, если будет из него получаться что то серьездное и интересное — то тогда одновременно с рефакторингом можно будет попробовать перейти и на что то многоплатформенное (но думаю что востребовано это не будет). В первую очередь пишу для себя… и тех кому еще идея придется по душе.
из последнего на ubuntu настроить удаленный графический рабочий стол — пару статей нашел где казалось бы нормально для новичка написано — но ни по одной не получилось сделать ничего <...> так что подождем пока юниксы станут проще и понятнее


Юниксы не станут проще, если их не изучать. Под лежачий камень, как известно, вода не течёт. Это другой мир, другая философия, не винда. Вы же, переходя на новый язык программирования, не ждёте, когда он станет похожим на любимый Вами Паскаль? Статьи для новичков, где дан пошаговый рецепт из таинственных консольных команд, Вам не помогут, ибо нужно понимать как устройство ОС, так и сами эти команды.
И да, под Linux можно запустить Team Viewer :)

PS. Удачи в изучении нового!
Я в похожих случаях начинал c Delphi и в какой то момент либо запускал и поддерживал второй проект на Lazarus, а если такой подход не устраивал, в любом случае проверял работает ли проект в Wine (у меня xubuntu на внешнем диске в загрузке).
ubuntu настроить удаленный графический рабочий стол

http://c-nergy.be/blog/?p=5874
любителям видео — https://www.youtube.com/watch?v=L1ay7toiJ6k
первые ссылки в гугле по "ubuntu remote desktop"
Если Вы искали по-русски (а судя по вашей IDE — скорее всего, да), то тут я хз...

на форуме в ответ тишина

что за "форум" такой? он единственный в своём роде?
ну искал конечно по русски… не все знают английский свободно.

я пытался сделать по этой инструкции http://mintlinux.ru/blogs/linux4me/v-poiskah-podklyuchenija-k-udalenomu-rabochemu-stolu-linux.html
потом еще какую то находил
спрашивал здесь http://mintlinux.ru/forum/thread11303.html (до этого ставил самый свежий и самый рекомендованый дистрибутив)

В общем к сожалению пока правило только подтверждается — вот так вот "выкрикнуть" что вот же все написано — так сразу находятся специалисты, а когда спрашиваешь конкретно что и где посмотреть (с компьютером на котором не работает) — так никого нет :-)

я так и написал выше: начинать споры об ОС с гениальными пользователями *-никсов не хочу, они опять прибегут на 1 минуту, расскажут что все там работает отлично, и убегут когда нужна будет их помощь (причем ничего после их советов и не заработает :-)))

поэтому и буду писать только для винды (для никсов просто не смогу проверить работу :-)))
аминь.
я пытался сделать по этой инструкции mintlinux.ru/blogs/linux4me/v-poiskah-podklyuchenija-k-udalenomu-rabochemu-stolu-linux.html

это запуск графических приложений на сервере с отображением на локальном X-сервере )
это слабо подходит под Ваше "удаленный графический рабочий стол"...

спрашивал здесь mintlinux.ru/forum/thread11303.html

есть ещё LOR, например )
toster.ru, наконец ))

*да я и не собираюсь спорить )))
кстати про лазарус
пока никто ничего ответить не смог.: http://www.cyberforum.ru/lazarus/thread1686779.html#post8891492

вы на самом деле предлагаете на "этом" писать ?

p.s. все еще надеюсь что это не глюк а все таки неправильное с точки зрения фрипаскаля программирование… может быть что то еще вызывать нужно?
А по вопросу что можете сказать ?

Суть того что я написал в том, что не хочется заниматься изучением новой среды в которой полно недокументированных глюков — мало того сам не уверен в своих знаниях, так еще и глюки, такие как я описал выше, быстро собьют настрой вообще что либо писать...

причем этот глюк я нашел сам, буквально через 10 минут после того как поставил среду и начал пробовать в ней писать...
По вопросу могу сказать, что Вы снова игнорируете документацию и не пытаетесь разобраться в предмете самостоятельно, уповая на ответы с форумов. Поведение формы, описанное Вами, не есть глюк. Из документации:

TControl.Align Specifies the placement of the control inside its Parent.

Очевидно, что у формы верхнего уровня нет parent'а.
да, уже прочитал.
Рекомендую форум http://delphikingdom.ru/, хотя вопросы там не быстро публикуются, особенно самый первый, но он и как база знаний хорош тоже.
И ещё там RichEdit нет. Для меня основной аргумент, что бесплатных версий Делфи нет давно, а бесплатные все с урезанной функциональностью.
TRichMemo is a component to replace Delphi TRichEdit component. It's designed in cross-platform way, so implementation is possible for the following platforms: Win32, MacOSX, Linux. Since, being cross-platform is the primary target. The native RichMemo API can be extended to make it Delphi's RichEdit compatible.

Change Log
Version 1.0.0 22th Jun 2009


http://wiki.freepascal.org/RichMemo

насчёт его функциональности — не знаю, насколько она урезана
А он живой? Там 2009 и ссылка не работает. Я сейчас что-то смутно начал вспоминать, но он в любом случае в компонентах не присутствует и мне в свое время пришлось использовать SynEdit, установив его и на Дельфи. Проблема, что в Lazarus SynEdit свой, поддерживать два проекта параллельно стало неудобно.
Я имел в виду в стандартных компонентах предустановленных в Lazarus его нет. Но он вроде живой — как раз сегодня обновлён архив.
ну в лазарусе есть synedit — по сравнению с ним richedit жалкая поделка :-)))

я потихоньку ковыряю лазарус — но пока в дельфи мне комфортнее...

кстати уже сделал описание основного набора команд для cortex-m4 в редакторе :-) теперь буду писать обработку инклудов
тут по некоторым вопросам на дельфи форумах ответ не найти

ой ли?!
например?
как получить количество символов в RichEdit по горизонтали?
то есть например я знаю как узнать первую и последнюю показываемые строки. ну или как вариант узнать с какого по какой символ строки напечатан в окне редактора.?
а как тоже самое сделать с колонками ?

p.s. пока кроме как вычислять по ширине компонента в пикселах и ширине символа в пикселе (благо они у меня моноширинные предполагаются) ничего не придумал.
EM_CHARFROMPOS message?
N.B. RichEdit — виндовый контрол, TRichEdit — лишь обёртка
пример для TMemo

правильно сказал twr:
Довольно странное решение начинать крупный проект на языке, который приходится изучать по ходу дела.

о таком использовании этого сообщения я не подумал. спасибо. попробую сегодня
проверил предложенное вами решение — это тоже костыль :-( потому что дает значение правой границы в зависимости от количества символов (уже набранных) в проверяемой строке…
в общем то мое решение проще.
Там еще кстати есть ограничение на максимальную длину одной строки… тоже неприятно столкнулся с таким явлением. Вроде бы в этих контролах можно хранить не более 10К в одной строке, всё лишнее переносится на следующую… В программах вроде бы таких длинных строк не встречается, но кто знает...
АААА!!! я понял свою ошибку! я не написал что ассемблер для ARM (исправил в названии статьи)
я пишу среду для STM32 микроконтроллеров, в принципе подойдет и для других ARM 32bit…
про x86 я и не думаю даже :-)
Прям сразу захотелось запилить плагинчик для IDEA
перечень хотелок есть — ЗАПИЛИТЕ!!! :-)
Через месяцок-два с перлом закончу, посмотрим. Сразу два не осилить :)
ну и хочется это здорово — вопрос насколько это востребовано и сложен синтаксис с учетом сахаров и мета-информации.
Но в целом считаю не очень разумным начинать с нуля. Всегда лучше делать под платформу, какая ближе по сердцу — вим/эклипс/идея
А так — львиная доля усилий уйдет на повторение того что уже сделали другие за много-много лет.
не востребовано совершенно (и скорее всего останется таким)

ну если для того чтобы задачки по решать — то синтаксис интересный!
например может быть MOV R0, R1 а может быть MOV R0, R1, LSR 1, или для большего веселья ADDSNE R0, R1, LSR 1
так же есть у некоторых команд размерности (B, SB, H, SH) и условия исполнения по флагам (EQ, NE, CS, HS ...) и еще между ними могут быть признаки режима, например для LDRBTNE R0, [R1] — это LDR с байтом (B) в не привилигерованном режиме(T) по "неНоль" (NE)
Если все можно описать с помощью BNF то вообще не проблема. Хотя после перла, мне кажется, трудно меня напугать уже каким-либо из реальных языков.
Ну если не востребованно — не очень интересно. Хотя, можно было бы запилить некую платформу для ассемблера, к которому можно было бы пилить микро-плагинчики для разных платформ.
конечно можно! иначе как бы компилятор разбирал :-)))

многие вещи по началу не востребованы… в настоящий момент среды для разработки программ на ассемблере для микроконтроллеров фактически нет.
есть просто использование стандартных сред (обычно си) для языка ассемблера. никто специфичные для ассемблера потребности не учитывает и не решает…
казалось бы мелочи:

  • вести список локальных меток для быстрого к ним перехода — где вы это увидели у редакторов которые выше упомянули? (пусть даже под x86) — в лучшем случае у 1 или 2ух..
  • вести список переменных для того чтобы вставлять их в программу
  • разбирать синтаксис команд на этапе ввода (а не выдавать ошибки при компиляции)...
  • про многооконность редактора я уже писал

и это самое простое что можно сделать!
пока же все редакторы ассемблера что есть это просто подсветка (простейшая) + компиляция (внешним компилятором) и у некоторых продвинутых — отладка (вот это конечно классная вещь).

В общем спорить не хочу. кто сталкивался — тот меня поймет, кто пишет на Си — тому конечно вся эта возня с ассемблером вообще не понятно — он привык в инлайн все команды размещать и не париться (потому что от силы размещает 50-80 команд)
Компилятор может как раз разбирать как угодно и ему bnf не нужен. А для IDEA, например, чтобы с минимальными затратами сделать языковое расширение нужен bnf.
Т.е. сделать можно все что угодно, вопрос трудозатрат.
Ох как согласен.
Это, пожалуй, здорово. будет хоть одна среда под ассемблер не требующая для комфортной работу 8Гб оперативки из-за универсальности среды.
Пока для этих целей использую Notepad++ и под AVR, под STM32 его будет долго настраивать. Очень не хватает списка меток, и не просто меток а с классификацией меток на внутренние и метки начала подпрограмм. Внутренние они вобщем-то не очень актуальны в глобальной навигации, только если курсор находится внутри подпрограммы. А вот перечень подпрограмм очень нужен, с разбивкой по "модулям"-файлам с коментариями выполняемой функции и параметров. Отдельно список дефайнов и макросов...
Ну зачем же так передергивать? У меня идея с открытым не маленьким проектом занимает 1 гиг после 4 часов работы. С учетом того, что в основном она работает с моим личным не оптимальным (читай — кривым) плагином, который жрет в массе мест где этого можно не делать. И больше занимать уже не будет. Все расходы памяти и процессорного времени — плата за функционал.
Все что простое и позволяет лишь печатать — ничего не жрет и ничего не умеет. Чем больше умеет — тем больше жрет. Вполне логично.
Да, есть оверхед за счет универсальности, но количество разных плюшек из коробки, получаемое от существующих платформ компенсирует этот незначительный оверхед.
В общем случае, все написанное с нуля в качестве хобби функционально будет хуже чем то, чем много людей занимаются профессионально много лет. Да, если это интересно как процесс — велосипеды это отлично. Если речь о конечном продукте — нужно максимально реюзать то, что уже написано до тебя. Выражаясь словами классика: "Если я видел дальше других, то потому, что стоял на плечах гигантов"
я думаю что никто из за оперативки не переживает…
просто функциональность нужна, а ее в других средах нет...

а память — память это просто к слову прилось… в конце концов один раз разориться на 16 гигов и больше не думать об этом :-)
Ну и для асма все будет работать очень быстро и жрать мало в силу простоты и плоскости синтаксического дерева.
ну это до тех пор пока не начнет инклуды отрабатывать и внешние метки проверять… — там то его дисковые операции и замедлят до среднестатистического :-)))
Не скажу за другие платформы, но в IDEA это все отлично решено с помощью системы индексации. И в силу простоты синтаксиса тут будет все летать.
осталось дождаться когда вы "запилите" плагин :-)
Когда и если :) Я рекомендую вам тоже ознакомиться с платформой. Я смогу подсказать если что.
вот вот… сразу видно коллегу по ассемблеру :-) тот кто пишет на других языках — нас не поймет :-)

что значит внутренние метки и метки начала подпрограмм? их как то выделить?
для внешних меток есть GLOBAL / EXTERN (несмотря на то что GNUAS не требует по EXTERN среда узнает что нужно проверить внешнюю метку)

или хочется сделать список меток именно подпрограмм? (тогда нужно договориться о каком то идентификаторе чтобы их в отдельный список автоматом среда собирала)
Внутренние — это те что внутри подпрограмм и больше нигде не используются.
А метки подпрограмм — это метка с которой начинается код и заканчивается командой возврата из подпрограммы, все метки что находятся внутри этого блока — внутренние, и интереса в глобальном смысле не представляют, хоть для компилятора они все на одно лицо.
Qt Creator вполне неплохо справляется с asm файлами, умеет их даже отлаживать по шагам. Нет, конечно, всяких мелочей типа проверки корректности синтаксиса, да и всяких умных сниппетов, но не уверен, что это так часто уж нужно. На асме редко кто пишет больше 1000 строчек.
Я походу тот самый редкий монстр…
вдвоем :-)
НЛО прилетело и опубликовало эту надпись здесь
Попробуйте поспрашивать на ресурсе http://zx-pk.ru/forum.php, там любят ассемблеры, помниться Медноногов писал свой кроссассемблер, что бы написать ЧВ, и среди разработчиков как-то обсуждали трёхоконный редактор. Вообще, по части ассемблеров и какими они должны быть, что бы быть удобными, там должны знать и иметь практический опыт.

Ну и присодиняюсь к комментариям выше — используйте Лазарус, он во многом совместим с Дельфи.
Но только не по человечности по отношению к программисту. В последний раз когда я его пробовал, он выдавал файлы по 10М на простейший проект и очень сильно затруднена отладка и интерпретация сообщений компилятора об ошибках. Что-то с тех пор изменилось?
По-моему ответ на первый вопрос уже чуть ли не прямо в readme при инсталляции выскакивает, настолько часто его задают. Мол чтобы избежать этого надо в параметрах проекта установить два флажка — символы отладки во внешний файл, удалять символы из исходника. Мне показалось, он за последние годы сильно улучшился, а размер файлов теперь и у Дельфи достаточно большой.
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации

Истории