Главная » Просмотр файлов » assembler. Учебник для вузов_Юров В.И_2003 -637с

assembler. Учебник для вузов_Юров В.И_2003 -637с (862834), страница 30

Файл №862834 assembler. Учебник для вузов_Юров В.И_2003 -637с (Юров В.И - Assembler. Учебник для вузов. 2003) 30 страницаassembler. Учебник для вузов_Юров В.И_2003 -637с (862834) страница 302021-12-22СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 30)

На первых порах особое внимание следует уделять правильностинаписания синтаксических конструкций, так как ошибки синтаксиса — самыераспространенные. Исправив несколько первых ошибок, следует перетранслировать программу и приступить к устранению следующих ошибок. Возможно, чтоэтого делать не придется, так как после исправления одной ошибки могут исчезнуть и последующие (так называемые наведенные ошибки).О нормальном окончании процесса трансляции можно судить по отсутствиюстрок с сообщениями об ошибках и предупреждениях.Изучая внимательно файл листинга, следует обратить внимание на то, что невсе строки исходной программы имеют соответствующий машинный код (строки9, 16, 17, 19...22, 48...50).

Это обстоятельство обусловлено тем, что исходный файлна ассемблере в общем случае может содержать конструкции следующих типов:» команды ассемблера — конструкции, которым соответствуют машинные команды;* директивы ассемблера — конструкции, которые не генерируют машинных команд, а являются указаниями транслятору на выполнение некоторых действийили служат для задания режима его работы;Ш макрокоманды — конструкции, которые, будучи представлены одной строкойв исходном файле программы, после обработки транслятором генерируют134Глава 6. Первая программав объектном модуле последовательность команд, директив или макрокомандассемблера.Формат файла листинга и его полнота не являются жестко регламентированными.

Их можно изменить, задавая в исходном файле программы директивы управления листингом (приложение Г, http://www.piter.com/download).Компоновка программыПосле устранения ошибок и получения объектного модуля можно приступать к следующему этапу — созданию исполняемого (загрузочного) модуля, или, как ещеназывают этот процесс, к компоновке программы. Главная цель этого этапа — преобразовать код и данные в объектных файлах в их перемещаемое выполняемоеотображение. Чтобы понять, в чем здесь суть, нужно разобраться, зачем вообщеразделяют процесс создания исполняемого модуля на два этапа — трансляциюи компоновку.

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

Результатом работы компоновщика является созданиезагрузочного файла с расширением .ехе. После этого операционная система можетзагрузить такой файл в память и выполнить его.Полный формат командной строки для запуска компоновщика довольно сложен (в этой и в большинстве следующих глав мы в основном будем использоватьупрощенный формат):TLINK [ключи] список_объектных_файлов [,имя_загрузочного_модуля][.имя_файла_карты] [,имя_файла_библиотеки] [,имя_файла_определений][,имя_ресурсного_файла]Параметры командной строки для запуска компоновщика перечислены далее.li ключи — необязательные параметры, управляющие работой компоновщика.Список наиболее часто используемых ключей приведен в приложении В (http://www.piter.com/download).

Каждому ключу должен предшествовать символ - (дефис) или / (слеш). При задании имен ключей имеет значение регистр символов.ш список_объектных_файлов — обязательный параметр, содержащий список компонуемых файлов с расширением .obj. Файлы должны быть разделены пробелами или знаком + (плюс), например:t l i n k /v prog + mdf + f d rПри необходимости имена файлов снабжают указанием пути к ним.II имя_загрузочного_модуля — необязательный параметр, обозначающий имя формируемого загрузочного модуля.

Если оно не указано, то имя загрузочного модуля будет совпадать с первым именем в списке имен объектных файлов.ii имя_файла_карты — необязательный параметр, наличие которого обязывает компоновщик создать специальный файл с картой загрузки. В ней перечисляютсяимена, адреса загрузки и размеры всех сегментов, входящих в программу.it имя_файла_библиотеки — необязательный параметр, который представляет собой путь к файлу библиотеки (.lib). Этот файл создается и обслуживается спе-Процесс разработки программы135циальной утилитой tlib.exe пакета TASM.

Утилита позволяет объединить частоиспользуемые подпрограммы в виде объектных модулей в один файл. В дальнейшем можно просто указывать в командной строке tlink.exe имена нужныхдля компоновки объектных модулей и файл библиотеки, в котором следуетискать эти подпрограммы. Если компонуется Windows-приложение, то на месте параметра имя_файла_библиотеки должно указываться имя библиотеки импорта (глава 16).» имя_файла_определений — необязательный параметр, который представляет собой путь к файлу определений (.def). Этот файл используется при компоновкеWindows-приложений (глава 16).имя_ресурсного_файла — необязательный параметр, который представляет собой путь к файлу с ресурсами Windows-приложения (.res).

Этот файл используется при компоновке Windows-приложений (глава 16).Рассмотренный нами формат командной строки используется и для 32-разрядного варианта компоновщика ttink32.exe.Существует возможность задания параметров командной строки компоновщика в текстовом файле. Для этого нужно создать файл с именем tlink.cfg (tlink32.cfg).При вызове компоновщика tlink.exe с параметром tlink.cfg (tlink32.exe tlink32.cfg)ему будет передано содержимое файла tlink.cfg (tlink32.cfg). Например, текст конфигурационного файла tlink32.cfg для создания исполняемого файла Windowsприложения с отладочной информацией должен выглядеть так:/V/TweТак же как и в случае команды tasm.exe, совсем не обязательно запоминать подробно синтаксис команды tlink.exe.

Для того чтобы получить список ключей программы tlink.exe, достаточно просто запустить ее без параметров.Для выполнения нашего примера запустим nporpaMMytlink.exe командной строкой видаt l i n k . e x e /v prg_6_l.objВ результате вы получите исполняемый модуль с расширением .ехе — prg_6_l.exe.Получив исполняемый модуль, не спешите радоваться. К сожалению, устранение синтаксических ошибок еще не гарантирует, что программа будет хотя бы запускаться, не говоря уже о ее правильной работе.

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

рис. 6.1).136Глава 6. Первая программаСпецифика программ на ассемблере состоит в том, что они интенсивно работают с аппаратными ресурсами компьютера. Это обстоятельство заставляет программиста постоянно отслеживать содержимое определенных регистров и областейпамяти. Естественно, что человеку трудно следить за этой информацией с большой степенью детализации. Поэтому для локализации логических ошибок в программах используют специальный тип программного обеспечения — программныеотладчики.Отладчики бывают двух типов:* интегрированные отладчики, реализованные в виде интегрированной среды,напоминающей среду для языков высокого уровня (Turbo Pascal, Visual C++ит.

д.);ii автономные отладчики, представляющие собой отдельные программы.Ни один из рассматриваемых нами ассемблеров (MASM, TASM) не имеет своей интегрированной среды, поэтому для отладки написанных на языке ассемблерапрограмм используют либо автономные отладчики, либо отладчики некоторойсреды программирования (например, Visual C++). С помощью автономного отладчика можно исследовать работу любой программы, для которой создан исполняемый модуль, независимо от того, на каком языке был написан его исходныйтекст. Для учебных целей ни один из этих подходов не приемлем, так как требуетзнаний, которыми начинающий программировать на ассемблере, скорее всего, ещене обладает.ПРИМЕЧАНИЕПочему в учебнике много программ для MS-DOS? Ведь времена массового использования этой операционной системы давно прошли.На сегодняшний день у этой ОС остался один, но очень важный аспектее применения — методический.

Опыт показывает, что при обучениилюбому языку программирования, в том числе ассемблеру, на первомместе должен быть сам язык, а не программные средства поддержкипроцесса программирования на нем. В этом контексте отметим двамомента. Во-первых, начинающему изучать ассемблер легче объяснитьпринципы построения и работы ассемблерных программ в среде реального режима (MS-DOS), чем защищенного (Windows). По меренакопления практического опыта и теоретических знаний с целью ихнаращивания можно переходить к работе с более сложными приложениями, в том числе и для операционной системы Windows.

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

Конечно, сейчас мало кто пишет программыдля среды MS-DOS, поэтому работу с 16-разрядными инструментами пакетовTASM и MASM нужно рассматривать как часть методики обучения. АналогичныеПроцесс разработки программы137рассуждения относятся и к средствам отладки. В этой книге для программ TASMреального режима будет использоваться 16-разрядный отладчик Turbo Debugger(TD), разработанный фирмой Borland International. Это наиболее удачный отладчик для ассемблерных программ реального режима.

Принципиально важно, чторабота с TD прививает навыки, которые наверняка окажутся полезными при работе с другими отладчиками, например с отладчиком cv.exe из пакета MASM.Отладчик TD представляет собой оконную среду отладки программ на уровнеисходного ассемблерного текста. Он позволяет решить две главные задачи:II определить место логической ошибки;ш определить причину логической ошибки.Перечислим некоторые возможности TD:* трассировка программы в прямом направлении, то есть последовательное выполнение программы, при котором за один шаг выполняется одна машиннаяинструкция;* трассировка программы в обратном направлении, то есть выполнение программы по одной команде за один шаг, но в обратном направлении;S просмотр и изменение состояния аппаратных ресурсов процессора во времятрассировки.Эти действия позволяют определить место и источник ошибки в программе.Нужно сразу оговориться, что TD не позволяет вносить исправления в исходныйтекст программы. Однако после определения причины ошибочной ситуации можно, не завершая работу отладчика, внести исправления прямо в машинный коди снова запустить программу.

Характеристики

Тип файла
PDF-файл
Размер
14,34 Mb
Тип материала
Высшее учебное заведение

Список файлов книги

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6549
Авторов
на СтудИзбе
300
Средний доход
с одного платного файла
Обучение Подробнее