Очень часто слышу вопросы вида "А как заставить линкер прописать функцию по адресу......?" "А как задать в линкере адрес базы для бинарика?" и т.д. А все потому что давным давно, в очень далекой галактике силы зла придумали разделить компиляцию и линковку. Идея была хороша, мы договариваемся о формате объектных файлов а потом нахренячиваем разными языками разные объектники и линкуем, кроме того ненадо пересобирать лишние объектники чуть что. И оттуда пошла великая традиция компилеров валить все на линкеры, а линкеров валить все на компилеры. И получилось подтверждение правила "Чем круче идея тем хреновее реализация".

Что мы имеем теперь (точнее не теперь а еще лет 5-10 назад, теперь то в моде дотнеты...)

  • в крутых языках как минимум все постоянно пересобирается (с++ яркий пример, в паскалях вроде не так критично)
  • оооооочень редко проект пишется на нескольких языках
  • линкер часто умеет оптимизировать круче чем компилятор ибо межмодульная оптимизация
  • правильно заданный вагон настроек линкера не менее важен чем сам код программы

Та  же ситуация в деревне ассемблерщиков, некоторые "компиляторы" даже бинарник сделать не в состоянии, хотя казалось бы.... И тут появляются он (все в белом) компиляторы и линковщики в одном лице: FASM и производные. Не на всяком ассемблере можно написать BMP-image дада..... И не мозговыворачивающие макросы многих в нем восхищают а полная свобода действий в предоставленном адресном пространстве: хочу в код данные воткну, хочу прямо файл, прямо в середину функции вхренячу и т.д.

На этом чуде техники удивительно просто писать всяческие ромы, и прочие нестандартные ерундовины, загрузчик пишется вообще без лишних телодвижений...
org .....
jmp @f
<данные FAT32>
@@:
<код загрузчика>

(Я так и не смог заставить опенваткомовский линкер сгенерировать мне бинарик с нужным org.) Все, никаких проблем, можно сразу написать образ дискеты, прямо здесь и не надо думать как получить от линекра то что я хочу.

К сожалению ассемблер это маленький скребок которым можно подправить мелкие недочеты в мраморной статуе но мы заколебаемся раскалывать большой кусок мрамора таким скребком. Тут нам нужен Си. Но о ужас!!! Си без линкера жить не может. Единственная подающая надежды вещь это с-- но нормальное оно есть только для х86 и нету для amd64 (Я лично не смог найти). И похоже никогда не будет. Мы обречены, мы сами изгавняли принципы фоннеймановской архитектуры. И чо делать то теперь? Надеюсь летом будет время на возведение компилера.







Читайте также

  • ПОЧЕМУ ДЕВУШКИ ЛЮБЯТ ПЛОХИХ ПАРНЕЙ
  • кошки любят бегать по дорожке
  • В Японии очень любят не только детей но и их родителей…
  • почему бы и нет?
  • Диеты…или почему я ем на ночь!))



  • Последние новости


    План занятий

    Обучение детей от года до 3 лет плаванию, как правило, проходит в три этапа. На первом этапе ребенок должен адаптироваться к воде, избавиться от страха перед глубиной, неизвестной средой. Намного проще дети привыкают к бассейну, где есть бортики, вода теплая и прозрачная. Чуть сложнее дети адаптируются к открытым водоемам с темной и прохладной ...
    Читать далее »

    Гимнастика от 2 лет до 2 лет 6 месяцев

    1. Самостоятельная ходьба. 2. Бег вдогонку за взрослым или к взрослому в разном темпе. 3. Руки вверх, потянуться – «деревья большие большие», развести руки в стороны. 4. Ходьба по доске, приподнятой над полом на 15–20 см. 5. Приседания. 6. Подъем туловища с опорой на ладони в положении лежа на животе. 7. Хлопк...
    Читать далее »

    Проблема: ожоги, ушибы, травмы

    Немного повзрослев, ребенок начинает интересоваться источниками огня, что чревато ожогом. При незначительном ожоге необходимо поврежденный участок тела поместить под холодную проточную воду, а затем обработать антиожоговым аэрозолем. В период выздоровления применяют массаж, который способствует улучшению лимфо– и кровотока. В резуль...
    Читать далее »

    Проблема: плоскостопие

    Когда ребенок начинает ходить, его первые шаги могут быть омрачены плоскостопием. К сожалению, если эта болезнь наследственная, то волнения вполне обоснованны. И здесь без посещения детского врача ортопеда не обойтись. Его рекомендации относятся к укреплению подошвенного свода стопы вашего ребенка. Костная структура стопы ребенка ...
    Читать далее »

    Рефлекторные движения

    Рефлекторные гимнастические упражнения, В основе которых лежат врожденные двигательные рефлекторные реакции, проводятся первые три пять месяцев жизни ребенка, когда еще не утрачены безусловные двигательные рефлексы – «автоматическая походка», ладонно ротовой рефлекс, хоботковый рефлекс, сохранение равновесия, защитно оборонительные рефлексы. Рефлекторные гимнасти...
    Читать далее »

    Техника выполнения: растирание

    Прямолинейное растирание Выполняется концевыми фалангами одного или нескольких пальцев. Движение проводится прямолинейно одной рукой или обеими, иногда с отягощением. Круговое растирание Проводится с помощью круговых движений концевыми фалангами одного или нескольких пальцев. Кисть располагается с опорой на основании ладони, а манипуляции выполняют в сторону мизинца одной рук...
    Читать далее »

    Проблема: пупочная грыжа

    Пупочная грыжа – это патологическое состояние, в котором через несколько расширенное пупочное кольцо происходит выпячивание брюшины, сальника и даже кишечника. Причина заболевания следующая: вследствие дефекта передней брюшной стенки и пупочного кольца проявляется округлое или овальное выпячивание. Чаще факторами, провоцирующими повышение внутрибрюшного давления, являются кашель, запоры ...
    Читать далее »