Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Prog.crf

Prog.obj

Создание объектного модуля (трансляция программы)

На этом шаге формируется объектный модуль, который включает в себя представление исходной программы в машинных кодах и некоторую другую информацию, необходимую для отладки и компоновки его с другими модулями.

Для получения объектного модуля исходный файл программы на ассемблере, который должен быть предварительно подготовлен и записан на диск, необходимо подвергнуть трансляции при помощи программы tasm.exe из пакета TASM. Формат командной строки для запуска tasm.exe следующий:

 

TASM [опции] имя_исходного_файла [,имя_объектного_файла] [,имя_файла_листинга] [,имя_файла_перекрестных_ссылок]

 

Если вы забыли формат командной строки и возможные значения параметров, то получить быструю справку на экране монитора можно запустив файл tasm.exe без задания каких-либо аргументов. Обратите внимание, что большинство параметров заключено в квадратные скобки. Это общепринятое соглашение по обозначению параметров, которые могут отсутствовать.

Таким образом, обязательным аргументом командной строки является имя_исходного_файла. Этот файл должен находиться на диске и обязательно иметь расширение .asm. За именем исходного файла через запятую могут следовать необязательные аргументы, обозначающие имена объектного файла, файла листинга и файла перекрестных ссылок.

Если имена объектного файла, файла листинга и файла перекрестных ссылок должны совпадать с именем исходного файла (наиболее типичный случай), то нужно просто поставить запятые вместо имен этих файлов:

TASM /zi prog,,,

Применение опции /zi разрешает транслятору сохранить связь символических имен в программе и их смещений в системе кода, что позволит отладчику производить отладку, используя оригинальные имена. В результате будут созданы файлы, как показано на рис. 1 для шага 2.

Если имена объектного файла, файла листинга и файла перекрестных ссылок не должны совпадать с именем исходного файла, то нужно в соответствующем порядке в командной строке указать имена соответствующих файлов, к примеру:

 

TASM /zi prog,,proglist,

В результате на диске будут созданы файлы:

 

- prog.obj

- proglist.lst

- prog.xrf

-

Если требуется выборочное создание файлов, то вместо ненужных файлов необходимо подставить параметр nul. например:

 

TASM /zi prog,,nul,

В результате на диске будут созданы файлы:

 

Логика работы программы для транслятора не имеет никакого значения. Вы можете написать абсолютную чушь, но если она будет синтаксически правильна, транслятор поспешит вас обрадовать, сообщив, что всё хорошо. Наличие строки Warning означает, что конструкция синтаксически правильна, но не соответствует некоторым соглашениям языка и это может послужить источником последующих ошибок.

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

Для устранения ошибок нужно определить место их возникновения и проанализировать ситуацию. Место ошибки легко определяется по значению в скобках в сообщении об ошибке. Это значение является номером ошибочной строки. Запомнив его, вы переходите в файл с исходной программой и по номеру строки находите место ошибки.

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

Для локализации ошибок лучше использовать информацию из специального, создаваемого транслятором файла листинга. Этот файл имеет расширение .lst; его имя определяется в соответствии с теми соглашениями, которые мы разобрали выше.

Ниже приведен полный формат листинга для программы, содержащей некоторые ошибки. Листинг- очень важный документ, и ему нужно уделить должное внимание.

 

Turbo Assembler Version 3.1 13/09/09 15:10:55 Page 1

Prog.asm

 

<== предыдущая лекция | следующая лекция ==>
Этапы создания программы на ассемблере | End main
Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 326; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.016 сек.