OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Четверг, 07 Август, 2025 20:09

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




Начать новую тему Ответить на тему  [ Сообщений: 59 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
СообщениеДобавлено: Среда, 23 Июнь, 2010 10:55 
Аватара пользователя

Зарегистрирован: Суббота, 15 Март, 2008 20:00
Сообщения: 297
Откуда: Київ, Україна
id_ler писал(а):
В Code-файле такой последовательности маш. кодов не будет.

Это инлайн процедура, по этому с ней другой разговор 8) Код появится в месте вызова.
пример:
Код:
MODULE ObxHello0;
   IMPORT SYSTEM,StdLog;
   PROCEDURE [code] INT3  0CCH;

   PROCEDURE Do*;
   BEGIN
      INT3;
      StdLog.String("Hello World222"); StdLog.Ln   (* write string and 0DX into log *)
   END Do;
END ObxHello0.


1.Запускаем ЧЯ.
2.Запускаем отладчик(к примеру Olly)
3.Отладчиком аттачимся к процесу BlackBox
4.Запускаем ObxHello0.Do
5.Смотрим все, что нас интересует, при необходимости вставляем кучу INT3 в нужных местах.

Кодогенератор у ЧЯ в принципе такой же как и у А2 (за минимумом различий), но там три компилятора+исходники. Так что зачем извращаться если можно спокойно посмотреть исходный код. В добавок есть статьи и дисертации на эту тему, где разжовано как оберон-компиляторы генерят машинные коды. С давен давен тут ни каких особых изменений нет :wink:

а вообще то лучше не смотрите - сильно расстроетесь качеством :lol: оптимизации - 0


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 23 Июнь, 2010 15:11 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 12:02
Сообщения: 8500
Откуда: Троицк, Москва
Приравнивание качества оптимизации не есть очевидность.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 23 Июнь, 2010 15:37 

Зарегистрирован: Пятница, 13 Март, 2009 16:36
Сообщения: 989
Откуда: Казань
bohdant писал(а):
В добавок есть статьи и дисертации на эту тему, где разжовано как оберон-компиляторы генерят машинные коды. С давен давен тут ни каких особых изменений нет :wink:

А можете подсказать названия этих статей? Хочется найти их и почитать.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 23 Июнь, 2010 15:52 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1030
QWERTYProgrammer писал(а):
Хорошо, спрошу по-другому: когда я запускаю в ББ модуль, выполняющий некое вычисление, ББ должен послать CPU некую последовательность машинных команд, так? Если так, то каким образом можно эту последовательность команд узнать? Приведут ли предложенные манипиляции с Code-файлом и дизассемблером/отладчиком к требуемому результату?

Отладчик не покажет Вам связь адресов с переменными и процедурами Вашего модуля. Это только сам BlackBox может. Но оно и не надо?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 23 Июнь, 2010 16:11 
Аватара пользователя

Зарегистрирован: Суббота, 15 Март, 2008 20:00
Сообщения: 297
Откуда: Київ, Україна
Info21 писал(а):
Приравнивание качества оптимизации не есть очевидность.

Так здесь про это и речь не идет, по этому я и шрифт уменьшил. Я хотел акцентировать внимание на том, что особого смысла код глядеть нету ;) Разве что механизм генерации трапов и т.п. Но опять же это все хорошо описано.

Сергей Оборотов писал(а):
Отладчик не покажет Вам связь адресов с переменными и процедурами Вашего модуля. Это только сам BlackBox может. Но оно и не надо?

С помощью рифлекшена можно сделать небольшую тулзовинку ;) во всяком случае в А2 когда я сделал прототип отладчика с этим проблем не возникло. Я не знаю как обстоят дела с этим делом в ЧЯ, но как писал
Иван Горячев писал(а):
В \Dev\Spec\ лежат описания форматов всех файлов, в том числе и кодовых. В начале у модуля идёт заголовок и метаинформация, потом код, потом ещё служебка.


Это не есть проблемой и тут


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 23 Июнь, 2010 16:30 
Аватара пользователя

Зарегистрирован: Суббота, 15 Март, 2008 20:00
Сообщения: 297
Откуда: Київ, Україна
Rifat писал(а):
bohdant писал(а):
В добавок есть статьи и дисертации на эту тему, где разжовано как оберон-компиляторы генерят машинные коды. С давен давен тут ни каких особых изменений нет :wink:

А можете подсказать названия этих статей? Хочется найти их и почитать.


А в этой книге разве нету инфы?
[url=http://forum.oberoncore.ru/viewtopic.php?f=80&t=2147&hilit=%D0%92%D0%B8%D1%80%D1%82%D0%B0]Книга Вирта "Построение компиляторов"
[/url]

В упорядоченном виде не видел, У Вирта в статьях про АРМы есть. А так, гляньте здесь:
http://e-collection.ethbib.ethz.ch/search.php
К примеру возьмите дисеры: Pieter Johannes Muller; Patrik Rene Celeste Reali и гляньте список литературы....


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 23 Июнь, 2010 17:03 

Зарегистрирован: Суббота, 07 Март, 2009 15:39
Сообщения: 3261
Откуда: Астрахань
Rifat писал(а):
bohdant писал(а):
В добавок есть статьи и дисертации на эту тему, где разжовано как оберон-компиляторы генерят машинные коды. С давен давен тут ни каких особых изменений нет :wink:

А можете подсказать названия этих статей? Хочется найти их и почитать.

См. диссер Михаэля Франца. Могу прислать на мыло.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 23 Июнь, 2010 18:16 
Аватара пользователя

Зарегистрирован: Пятница, 25 Ноябрь, 2005 18:55
Сообщения: 2272
Откуда: Россия, Нижний Новгород
ftp://ftp.inf.ethz.ch/pub/software/Ober ... 2.Paper.ps

Код:
MODULE DevCPT;
(**
   project   = "BlackBox"
   organization   = "www.oberon.ch"
   contributors   = "Oberon microsystems"
   version   = "System/Rsrc/About"
   copyright   = "System/Rsrc/About"
   license   = "Docu/BB-License"
   references   = "ftp://ftp.inf.ethz.ch/pub/software/Oberon/OberonV4/Docu/OP2.Paper.ps"
   changes   = ""
   issues   = ""

**)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 23 Июнь, 2010 18:30 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1030
bohdant писал(а):
Сергей Оборотов писал(а):
Отладчик не покажет Вам связь адресов с переменными и процедурами Вашего модуля. Это только сам BlackBox может. Но оно и не надо?

С помощью рифлекшена можно сделать небольшую тулзовинку ;) во всяком случае в А2 когда я сделал прототип отладчика с этим проблем не возникло. Я не знаю как обстоят дела с этим делом в ЧЯ...Это не есть проблемой и тут

Имелась в виду текущая ситуация. Похоже сочинители отладчиков обходят BlackBox стороной. :wink:


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 23 Июнь, 2010 19:03 

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 1056
bohdant писал(а):
А в этой книге разве нету инфы? ... Книга Вирта "Построение компиляторов"...
По кодогенератору для IA-32 в ней инфы конечно нету. Да, и не должно быть.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 23 Июнь, 2010 19:14 

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 1056
Сергей Оборотов писал(а):
Похоже сочинители отладчиков обходят BlackBox стороной. :wink:
Оберонщики предпочитают "посмертный" отладчик. Обычно этого хватает :wink: .


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 23 Июнь, 2010 19:26 

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 1056
Кстати, раз уж речь зашла о генераторах для архитектуры Intel, то должен заметить, что Intel отлично документирует свои процЫ (все бы так!). На их официальном сайте представлена исчерпывающая информация для разработчиков всех мастей.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 23 Июнь, 2010 20:15 

Зарегистрирован: Вторник, 29 Ноябрь, 2005 21:41
Сообщения: 1030
igor писал(а):
Сергей Оборотов писал(а):
Похоже сочинители отладчиков обходят BlackBox стороной. :wink:
Оберонщики предпочитают "посмертный" отладчик. Обычно этого хватает :wink: .
Это не о них.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 24 Июнь, 2010 01:02 

Зарегистрирован: Среда, 04 Июль, 2007 16:43
Сообщения: 247
bohdant писал(а):
пример:
...

Спасибо, как раз то, что надо!


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 24 Июнь, 2010 04:43 

Зарегистрирован: Суббота, 06 Июнь, 2009 07:52
Сообщения: 329
bohdant писал(а):
В Бутылке просто в "проводнике" кликнув по модулю открывается декодер.
Как называется модуль декодера?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 24 Июнь, 2010 09:43 
Аватара пользователя

Зарегистрирован: Суббота, 15 Март, 2008 20:00
Сообщения: 297
Откуда: Київ, Україна
id_ler писал(а):
bohdant писал(а):
В Бутылке просто в "проводнике" кликнув по модулю открывается декодер.
Как называется модуль декодера?

Decoder.Mod
(** AUTHOR "rg"; PURPOSE "Decoder for binary executable code"; *)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 25 Июнь, 2010 04:30 

Зарегистрирован: Суббота, 06 Июнь, 2009 07:52
Сообщения: 329
Декодер из Бутылки(какой был)
Может быть, получится переписать его под ВВ совместными усилиями, не откладывая в долгий ящик.


Вложения:
Decoder.zip [17.79 КБ]
Скачиваний: 482
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 25 Июнь, 2010 09:38 
Аватара пользователя

Зарегистрирован: Суббота, 15 Март, 2008 20:00
Сообщения: 297
Откуда: Київ, Україна
id_ler писал(а):
Декодер из Бутылки(какой был)
Может быть, получится переписать его под ВВ совместными усилиями, не откладывая в долгий ящик.

Смысл?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 25 Июнь, 2010 09:46 

Зарегистрирован: Вторник, 13 Ноябрь, 2007 20:38
Сообщения: 1056
id_ler писал(а):
... совместными усилиями ...
Всегда скептически относился к такому настрою.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 25 Июнь, 2010 12:11 

Зарегистрирован: Суббота, 06 Июнь, 2009 07:52
Сообщения: 329
bohdant писал(а):
id_ler писал(а):
Декодер из Бутылки(какой был)
Может быть, получится переписать его под ВВ совместными усилиями, не откладывая в долгий ящик.
Смысл?
Читал, что в других системах применяется генерация ассемблерного листинга из высокоуровнего кода с последующей компиляцией его ассемблером. Что для этого нужно – так сразу и не сообразишь. Понятно, что декодер – это несколько другое, но есть с чего начать.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 59 ]  На страницу Пред.  1, 2, 3  След.

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


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

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


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

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2025, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB