Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования




Скачать 235.15 Kb.
НазваниеРоссийской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
страница3/6
В А Кормилин
Дата конвертации11.02.2016
Размер235.15 Kb.
ТипРеферат
источникhttp://tu.tusur.ru/upload/posobia/k31.doc
1   2   3   4   5   6

4.2 Транслятор ассемблера


Для трансляции программы, написанной на языке ассемблера компьютера IBM PC и совместимого с ними, наиболее распространены трансляторы двух фирм: фирмы Borland и фирмы Microsoft. Первый называется TASM.EXE, второй – MASM.EXE. Для выполнения стандартных возможностей при трансляции ассемблерных программ выбор транслятора не очень важен. Все различия заключаются в выполнении дополнительных сервисных функций трансляции. Для их активизации при запуске транслятора указываются ключи, набор которых специфичен для каждой из указанных фирм.

В общем случае, для простых программ нужно использовать только стандартные функции транслятора. Поэтому процесс трансляции часто выполняется либо вообще без ключей, либо с ключами по умолчанию.

Рассмотрим процесс трансляции программы, имеющей имя Tablic.ASM. В качестве транслятора выберем MASM.EXE версии 6.0, в режиме по умолчанию.

На запуск программы без указания имени транслируемой программы транслятор реагирует подсказкой по-английски, описывающей использование (usage) транслятора, типа:


usage: MASM [option...] source(.asm),[out(.obj)],[list(.lst)],[cref(.crf)][;]

Run "MASM /H" for more info

В квадратных скобках записываются необязательные параметры трансляции, например, ключи (option ), но имя исходного (source) файла должно быть указано при вызове транслятора. Причем расширение (.asm) может быть опущено.

Приведем строку правильного вызова транслятора и формируемые им сообщения. В строке DOS-приглашения D:\> набираем следующую команду:

D:\> MASM.EXE Tablic.asm

и завершаем ее нажатием клавиши [Enter]. Или возможен упрощенный вариант команды:

D:\> MASM Tablic [Enter].

Далее на экран выводятся сообщения ассемблера вида:

Microsoft (R) MASM Compatibility Driver

Copyright (C) Microsoft Corp 1991. All rights reserved.

Invoking: ML.EXE /I. /Zm /c /Ta Tablic.ASM

Microsoft (R) Macro Assembler Version 6.00

Copyright (C) Microsoft Corp 1981-1991. All rights reserved.

Assembling: Tablic.ASM

Здесь указано название фирмы-разработчика (Microsoft (R)), год, перечислены (Invoking) ключи, используемые транслятором по умолчанию, номер версии (Version 6.00). Для нас самым важным является последнее сообщение: (Assembling: Tablic.ASM), говорящее что транслятор не нашел ошибок и преобразует программу в объектный файл. Результатом работы MASM будет созданный в данном каталоге или перезаписанный файл с расширением *.OBJ, в нашем случае Tablic.OBJ.

В случае обнаружения ошибок транслятор выдает на экран номера строк и тип ошибки (ошибок), например:

Assembling: Tablic.ASM

Tablic.ASM(10): error A2008: syntax error : ax

Tablic.ASM(29): error A2048: nondigit in number

Здесь транслятор сообщил о двух ошибках: в 10 строке ошибка синтаксиса (ошибка формата команды), в 29 строке встретился недесятичный символ в десятичном числе. Безусловно, типов ошибок может быть огромное множество, поэтому описывать их здесь не имеет смысла. При поиске ошибок нужно прочитать тип ошибки и просто внимательно проанализировать строку с указанным номером, определить и исправить ошибку.

4.3 Редактор связей


Использование редактора связей LINK.EXE дает возможность пользователю писать программы на языке ассемблера, состоящие из нескольких модулей. Редактор связей решает вопросы относительно внешних ссылок, а также выполняет перераспределение адресов программы.

Редактор связей может активизироваться в режиме подсказок и режиме командной строки. Карта загрузки, алфавитный перечень глобальных символов и все ошибки связей могут сохраняться в дисковом файле.

Для запуска редактора связей в режиме подсказок задайте команду

D:\> LINK.EXE

Редактор связей будет реагировать подсказкой, запрашивающей имя файла ввода.

Microsoft (R) Segmented-Executable Linker Version 5.15

Copyright (C) Microsoft Corp 1984-1991. All rights reserved.


Object Modules [.OBJ]:

На запрос нужно указать имя объектного файла tablic, расширение можно опустить, и нажать [Enter]. На все дальнейшие вопросы можно просто нажимать [Enter], например:

Run File [TABLIC.exe]:

List File [NUL.MAP]:

Libraries [.LIB]:

Definitions File [NUL.DEF]:

Все вопросы имеют в квадратных скобках ответ по умолчанию, поэтому достаточно согласиться с предложенным вариантом. Конкретно здесь предлагается имя исполняемого (Run File) с расширением *.ЕХЕ, пропуск файла листинга (List File), отсутствие библиотек пользователя (Libraries) и пропуск файла определений (Definitions File). Если на любой вопрос ответить вводом просто точки с запятой «;», то другие вопросы не задаются, а принимаются по умолчанию. В режиме командной строки имя объектного файла нужно указать в командной строке и поставить точку с запятой.

Редактор связей выдает сообщения двух типов: предупреждения (warning) и сообщения об ошибках (error). Предупреждения часто можно игнорировать, поскольку они не препятствуют созданию исполняемого файла и его работоспособности. Ошибки либо не позволяют создать исполняемый файл, либо гарантируют его неработоспособность. Пример выдаваемых сообщений:

LINK : warning L4021: no stack segment

TABLIC.OBJ(Tablic.ASM) : error L2029: 'ALFA' : unresolved external

TABLIC.OBJ(Tablic.ASM) : error L2029: 'BETA' : unresolved external

There were 2 errors detected

В первой строчке имеется предупреждение, в котором сообщается, что отсутствует сегмент стека. Игнорирование этого сообщения чаще всего вреда не приносит. Две следующих строки говорят, что имеются неопределенные внешние ссылки ('ALFA' и 'BETA'). Здесь это означает, что вызов двух указанных подпрограмм не может быть выполнен из-за недоступности этих модулей. Должно быть ясно, что такие ошибки не позволят работать программе правильно. Прежде всего, оба указанных модуля должны быть заранее созданы и оттранслированы. В этом случае, нужен будет запуск LINK.EXE с указанием через пробел имен трех объектных файлов:

D:\> LINK.EXE TABLIC.OBJ ALFA.OBJ BETA.OBJ

Или более простой вариант:

D:\> LINK TABLIC ALFA BETA;

Первое имя, из перечисленных в строке, выбирается в качестве имени исполняемого файла. При отсутствии сообщений об ошибках создается исполняемый файл с расширением *.EXE.
1   2   3   4   5   6

Похожие:

Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования iconРоссийской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования iconРоссийской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования iconРоссийской федерации
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования iconРоссийской федерации
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования iconФедеральное государственное бюджетное образовательное учреждение высшего профессионального образования «томский государственный педагогический университет» (тгпу) «утверждаю» Проректор (декан факультета)
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования iconФедеральное государственное бюджетное образовательное учреждение высшего профессионального образования «томский государственный педагогический университет» (тгпу) программа дисциплины
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования iconМинистерство образования и науки российской федерации
Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования
Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования iconФинансовый университет при правительстве российской федерации
Федеральное государственное образовательное бюджетное учреждение высшего профессионального образования
Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования iconФинансовый университет при правительстве российской федерации
Федеральное государственное образовательное бюджетное учреждение высшего профессионального образования
Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования iconФинансовый университет при Правительстве Российской Федерации
Федеральное государственное образовательное бюджетное учреждение высшего профессионального образования
Разместите кнопку на своём сайте:
Документы


База данных защищена авторским правом ©kzdocs.docdat.com 2012
обратиться к администрации
Документы
Главная страница