Формат, в котором объектные файлы хранятся в библиотеке (*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 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:11 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 06:28 am (UTC)no subject
Date: 2019-05-18 02:51 pm (UTC)