Объектный файл представляет собой текстовый файл, содержащий программу и специальную информацию о программе, которая позволяет перемещать программу в адресном пространстве процессора без потери её работоспособности и использовать в данной программе внешние ссылки (например, подпрограммы, находящиеся в других модулях).
Формат объектного файла представлен в таблице 4.2.
Объектный файл состоит из записей следующих типов: заголовок, определение, тело, модификатор, конец.
Таблица 5.1- Формат объектного файла
Столбцы 2-7 Имя программы
Столбцы 8-13 Начальный адрес программы (шестнадцатеричный)
Столбцы 14-19 Длина программы в байтах (шестнадцатеричная)
Столбцы 2-7 Начальный адрес данной записи (шестнадцатеричный)
Столбцы 8-9 Длина данной записи в байтах (шестнадцатеричная)
Столбцы 10-69 Объектный код (шестнадцатеричный)
Столбцы 2-7 Адрес первой исполняемой команды объектной
Столбцы 2-7 Идентификатор внешнего имени, определенный в
Как из файла STEP, IGES получить файл STL,OBJ
данной управляющей секции
Столбцы 8-13 Относительный адрес имени (шестнадцатеричный)
Столбцы 14-73 Информация, аналогичная столбцам 2-13 для других
Столбцы 2-7 Начальный адрес модифицируемого адресного поля
относительно начала управляющей секции
Столбцы 8-9 Длина модифицируемого адресного поля в полубайтах
Столбец 10 Признак модификации (+/-)
Столбцы 11-69 Выражение, определяющее значение модификации
5.2 Пример объектного файла
6 Описание программного продукта
6.1 Рекомендации к использованию
Программный продукт написан на языке Borland C++ Builder 6.0 . Чтобы увидеть результат работы кросс — ассемблера, необходимо запустить программу и указать путь к ASM-файлу. В том же каталоге создастся OBJ-файл. Необходимо добавить, что ASM-файл должен быть написан по стандарту, разработанному для данного курсового проекта.
6.2 Макроопределения и макрорасширения
При использовании макроопределений используются две директивы ассемблера – DEFMACRO и ENDMACRO. Первое предложение DEFMACRO идентифицируют начало макроопределения. Текст в поле метки является именем этого макроопределения. После директивы DEFMACRO следуют предложения, составляющие тело макро определения. Именно эти предложения и будут порождены в процессе макрогенерации.
Предложение макроинициализации определяет имя макроинструкции, которая должна быть инициализирована при порождении макрорасширения.
Для включения макроопределения в программу используется директива USEMACRO .
Объектный код программы
На рис. 1.1 приведен текст простейшей программы на ассемблере, выводящей на экран строку » Hello-o-o-o!».
; Данные программы
DATA SEGMENT
HELLO DB ‘Hello-o-o-o!$’
DATA ENDS
CODE SEGMENT
ASSUME CS: CODE, DS: DATA
START: mov AX, DATA
Mov DS,AX
Mov AH,9; вывод сообщения
Mov DX,OFFSET HELLO
Int 21h
Mov AH,4Ch; выход из программы
Объектно ориентированное программирование в Python за 10 минут!
Int 21h
CODE ENDS
END START
Рис. 1.1. Простейшая программа.
Чтобы создать файл с исходным текстом данной программы, надо запустить текстовый редактор, набрать приведенный на рис. 1.1 текст и сохранить его в файле с любым именем и расширением.ASM (расширение может отличаться от.ASM, но тогда при вызове Turbo Assembler нужно будет указывать его вместе с именем файла, тогда как расширение.ASM транслятор использует по умолчанию).
Трансляция, компоновка и запуск программы на выполнение
Подготовив текст программы и сохранив его в текстовом файле (например, HELLO.ASM), можно переходить к созданию исполняемого файла, который будет запускаться на выполнение, как любая программа DOS.
На рис. 1.2 представлена схема разработки программ на Assembler. Как видно, из рисунка, процесс создания программы включает подготовку исходного текста программы, трансляцию его в файл специального вида, называемого объектным файлом,и компоновку полученного -объектного файла (или полученных объектных файлов, если создаваемая программа состоит из нескольких модулей) в выполняемый файл. После того как в результате компоновки получен выполняемый файл, его можно загрузить и выполнить в DOS. Если в результате работы созданной программы возникнет необходимость в изменениях ее алгоритма, весь процесс повторяется сначала. Для трансляции HELLO.ASM необходимо в строке приглашения DOS ввести:
MASM hello
После этого произойдет вызов Assembler, которому в качестве параметра будет передано имя файла, содержащего исходный текст программы (так как расширение не задано, Assembler будет считать, что используется расширение,ASM). Если текст программы набран правильно, то в результате работы транслятора на экране появится следующий текст:
Microsoft (R) Macro Assembler Version 5.00
Copyright (C) Microsoft Corp 1981-1985, 1987. All rights reserved.
На вопросы отвечаем нажатием Enter
Object filename [hello.OBJ]:
Source listing [NUL.LST]:
51298 + 380702 Bytes symbol space free
0 Warning Errors
0 Severe Errors
Это означает, что процесс трансляции завершился успешно. В этом случае Assembler создает файл HELLO. OBJ, содержащий оттранслированную программу Если в процессе трансляции будут обнаружены ошибки, то объектный файл не создается, а сообщения об ошибках появляются в пункте Severe Errors. Тогда необходимо отредактировать исходный текст программы, устранив в нем указанные в сообщениях ошибки, и повторить трансляцию.

Рис. 1.2. Создание программы на ассемблере.
После получения объектного файла выполняется его компоновка в выполняемый файл. Для этого используется компоновщик Link. Для запуска компоновщика необходимо ввести строку:
LINK hello
После этого произойдет запуск на выполнение компоновщика с передачей ему в качестве параметра имени объектного файла (по умолчанию используется расширение.OBJ). При работе компоновщика на экране должно появиться сообщение:
Microsoft (R) Overlay Linker Version 3.69
Copyright (C) Microsoft Corp 1983-1988. All rights reserved.
На вопросы отвечаем нажатием Enter
Run File [HELLO.EXE]:
List File [NUL.MAP]:
LINK: warning L4021: no stack segment
Это означает, что процесс компоновки завершился успешно и на диске создан файл программы HELLO. ЕХЕ, готовый к выполнению (на предупреждающее сообщение Warning в данном случае можно не обращать внимания).
Теперь созданную программу можно запустить на выполнение, введя в строке приглашения DOS имя исполняемого файла hello. В результате работы программы на экране появится строка
Hello-o-o-o!
Таким образом, процесс создания программы успешно завершен! Из исходного текста программы, находящегося в файле HELLO.ASM, транслятором создан объектный файл HELLO.OBJ, из которого, в свою очередь, компоновщик создал выполняемый файл HELLO. ЕХЕ. Кроме того, компоновщик создает карту использования памяти (файл с расширением.MAP), которая может понадобиться для анализа компоновки программы, состоящей из нескольких объектных файлов.
Объектный код программы
Если при трансляции программы на вызов Assembler
Source listing [NUL.LST]:
ввести hello
то транслятор помимо объектного файла создаст текстовый файл HELLO.LST, в котором, в частности, будет содержаться информация, приведенная на рис. 1.3. Этот файл называется файлом листинга. Листинг предназначен для представления объектного кода программы в шестнадцатиричном виде вместе с соответствующим ему исходным текстом.
0000 DATA SEGMENT
0000 48 65 6C 6C 6F 2D 6F HELLO DB ‘Hello-o-o-o!$’
2D 6F 2D 6F 21 24
0000 CODE SEGMENT
ASSUME CS: CODE, DS: DATA
0000 B8 —- R START: mov AX, DATA
0003 8E D8 mov DS,AX
0005 B4 09 mov AH,9
0007 BA 0000 R mov DX,OFFSET HELLO
000A CD 21 int 21h
000C B4 4C mov AH,4Ch
000E CD 21 int 21h
Рис. 1.3. Фрагмент листинга HELLO.LST.
Объектный код находится слева от исходного текста программы. Заметим, что некоторые строки программы не порождают объектного кода. Это объясняется тем, что в данных строках находятся не команды процессора и не данные, с которыми они работают, а директивы ассемблера, предназначенные для управления процессом трансляции.
Второй вывод, который можно сделать, анализируя этот листинг, каждой ассемблерной команде соответствует свой код, причем одинаковые команды могут иметь разные коды. Причиной такого разнообразия кодирования одних и тех же команд служит вид операндов, с которыми работают эти команды. Например, команды
Шрифт зодчего Шрифт зодчего состоит из прописных (заглавных), строчных букв и цифр.
Картограммы и картодиаграммы Картограммы и картодиаграммы применяются для изображения географической характеристики изучаемых явлений.
Практические расчеты на срез и смятие При изучении темы обратите внимание на основные расчетные предпосылки и условности расчета.
Функция спроса населения на данный товар Функция спроса населения на данный товар: Qd=7-Р. Функция предложения: Qs= -5+2Р,где.
Дизартрии у детей Выделение клинических форм дизартрии у детей является в большой степени условным, так как у них крайне редко бывают локальные поражения мозга, с которыми связаны четко определенные синдромы двигательных нарушений.
Типовые ситуационные задачи. Задача 1. Больной К., 38 лет, шахтер по профессии, во время планового медицинского осмотра предъявил жалобы на появление одышки при значительной физической Задача 1. Больной К., 38 лет, шахтер по профессии, во время планового медицинского осмотра предъявил жалобы на появление одышки при значительной физической нагрузке. Из медицинской книжки установлено, что он страдает врожденным пороком сердца.
Различие эмпиризма и рационализма Родоначальником эмпиризма стал английский философ Ф. Бэкон. Основной тезис эмпиризма гласит: в разуме нет ничего такого.
Индекс гингивита (PMA) (Schour, Massler, 1948) Для оценки тяжести гингивита (а в последующем и регистрации динамики процесса) используют папиллярно-маргинально-альвеолярный индекс (РМА).
Методика исследования периферических лимфатических узлов. Исследование периферических лимфатических узлов производится с помощью осмотра и пальпации.
Источник: studopedia.info
Чем открыть OBJ
Файлы с расширением .obj содержат файлы 3D объектов, созданных с помощью компьютерной программы для рисования. Подобные файлы могут содержать карты текстур, 3D координаты и другие сведения о 3D-объектах.
Формат OBJ применяется в самых разнообразных приложениях, разрабатывающих 3D-графику, в частности в Microsoft Visual Studio и CADRazor.
Помимо этого, суффикс .оbj используется при работе с файлами объектов компьютерной науки. Такие файлы содержат набор последовательностей — инструкции, позволяющие хост-компьютеру правильно выполнять поставленные задачи. В данном случае файлы OBJ могут сопровождаться соответствующими файлами метаданных.
Файлы OBJ создаются также несколькими компиляторами для Windows, например. C и C++ . В результате обработки исходного кода файла появляется файл с расширением .obj. Когда все файлы исходного кода скомпилированны в файлы OBJ, они связываются друг с другом для формирования файла EXE или DLL.
Какой программой открыть:
- Sweet Home 3D
- modo
- ZBrush
- Artec ViewShape
- Print3D Application
Источник: filewiki.ru