Формат, в котором объектные файлы хранятся в библиотеке (*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-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)