Формат, в котором объектные файлы хранятся в библиотеке (*perso или *libra), слегка отличаются от формата, который выдаётся на перфокарты (стандартный массив).
Вкратце, объектный файл состоит из двух частей:
(1) Заголовок, 3 слова
(2) Машинные команды, данные, таблица символов
Стандартный массив состоит трёх частей:
(1) Таблица входов
(2) Заголовок, 10 слов
(3) Машинные команды, данные, таблица символов
Собственно код программы, то есть машинные команды, данные и таблица символов полностью совпадают.
В заголовке содержатся те же значения, но в случае объектного файла они упакованы в три слова, из экономии.
В объектном файле отсутствует таблица входов. Очевидно, эта информация хранится в таблице библиотеки, перемешанная с другими объектными модулями.
В комментариях можно посмотреть дамп объектного файла и стандартного массива одной и той же программы objfmt.madlen.
Вкратце, объектный файл состоит из двух частей:
(1) Заголовок, 3 слова
(2) Машинные команды, данные, таблица символов
Стандартный массив состоит трёх частей:
(1) Таблица входов
(2) Заголовок, 10 слов
(3) Машинные команды, данные, таблица символов
Собственно код программы, то есть машинные команды, данные и таблица символов полностью совпадают.
В заголовке содержатся те же значения, но в случае объектного файла они упакованы в три слова, из экономии.
В объектном файле отсутствует таблица входов. Очевидно, эта информация хранится в таблице библиотеки, перемешанная с другими объектными модулями.
В комментариях можно посмотреть дамп объектного файла и стандартного массива одной и той же программы objfmt.madlen.
no subject
Date: 2019-05-15 02:46 am (UTC)no subject
Date: 2019-05-15 02:48 am (UTC)no subject
Date: 2019-05-15 02:50 am (UTC)Первая карта не несёт информации, и нужна только для идентификации модуля человеком.
no subject
Date: 2019-05-15 06:06 am (UTC)no subject
Date: 2019-05-15 07:14 am (UTC)no subject
Date: 2019-05-15 07:30 am (UTC)Кстати, были возможны модули с самым младшим адресом входа, отличным от нуля.
no subject
Date: 2019-05-15 07:48 pm (UTC)Для наших целей (новйы линкер и ассемблер) мы можем игнорировать таблицу входов. Нет требования линковать модули, генерируемые мониторкой.
Кстати, вопрос: умеет ли кто из существующих компиляторов порождать отладочную информацию? То есть секцию debug.
no subject
Date: 2019-05-15 09:34 pm (UTC)Миша П., наверное, знает лучше.
no subject
Date: 2019-05-16 12:36 am (UTC)no subject
Date: 2019-05-16 04:00 am (UTC)no subject
Date: 2019-05-16 04:11 am (UTC)формат object.file ?
Date: 2019-05-16 04:22 am (UTC)It is all known.
Date: 2019-05-16 04:30 am (UTC)Это все известно. Я напишу подробности об этом.
no subject
Date: 2019-05-16 05:32 am (UTC)Вот в этих файлах, в конце:
https://github.com/besm6/mesm6/blob/master/toolchain/as/test/ftn.dis
https://github.com/besm6/mesm6/blob/master/toolchain/as/test/fortran.dis
https://github.com/besm6/mesm6/blob/master/toolchain/as/test/madlen.dis
no subject
Date: 2019-05-16 05:38 am (UTC)В Сиэтле в музее восстановили работающую CDC-6500. Можно попытаться выяснить формат объектного файла и сравнить.
no subject
Date: 2019-05-16 05:40 am (UTC)Библиотеки будут юниксные: стандартная утилита ar.
no subject
Date: 2019-05-16 06:28 am (UTC)no subject
Date: 2019-05-16 06:38 am (UTC)no subject
Date: 2019-05-16 06:40 am (UTC)no subject
Date: 2019-05-16 06:43 am (UTC)Какая ОС там запущена, SCOPE или NOS?
no subject
Date: 2019-05-16 06:59 am (UTC)Они дают логин, если хочешь поиграться: https://livingcomputers.org/Discover/Online-Systems/Request-a-Login.aspx
no subject
Date: 2019-05-16 07:33 am (UTC)no subject
Date: 2019-05-16 07:36 am (UTC)no subject
Date: 2019-05-16 07:53 am (UTC)no subject
Date: 2019-05-16 06:57 pm (UTC)no subject
Date: 2019-05-16 07:33 pm (UTC)И ещё неудобно, что в таблице входов не делается различие между типами символов: сегмент команд, сегмент данных, абсолютное значение.
no subject
Date: 2019-05-17 07:23 pm (UTC)Загрузик хранит свою таблицу с полной разметкой раздела памяти отдельно, т.к. загрузка динамическая, и надо помнить где и что лежит.
no subject
Date: 2019-05-17 08:21 pm (UTC)https://github.com/besm6/besm6.github.io/blob/master/sources/dubna/besmtask/loader.txt
Когда-то в студенчестве я пытался разобраться в нём по дизассемблированной распечатке.
no subject
Date: 2019-05-18 02:21 pm (UTC)Без него диспетчер не собирается, когда поднимал Дубну на SIMH, потратил недели две, пока разобрался, как его правильно запускать под диспак симулятором, что бы он собрал нерезиденты, иначе не собиралосъ, не влезало в память. Код тяжелый (2)
no subject
Date: 2019-05-18 02:51 pm (UTC)