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

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

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

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

В тексте программы их можно применять произвольноеколичество раз, при этом очередная директива отменяет действие предыдущей.м Директивы %CTLS и %NOCTLS управляют выводом в файл листинга самих директив управления листингом, в то время как директивы %LIST и %NOLIST (.LISTи .XLIST) влияют на полноту представления исходного кода в целом.« Директивы %SYMS и %NOSYMS определяют включение (%SYMS) или не включение (%NOSYMS) таблицы идентификаторов в файл листинга.Директивы вывода текста включаемых файлов %INCL и %NOINCL регулируютвключение в файл листинга текста включаемых файлов (по директиве INCLUDE).По умолчанию включаемые файлы записываются в файл листинга. Директива%NOINCL запрещает вывод в файл листинга всех последующих включаемых файлов, пока вывод снова не будет разрешен директивой %INCL.Директивы вывода блоков условного ассемблирования регулируют включениеблоков условной компиляции в листинг программы.ii Директива %CONDS (.LFCOND) заставляет ассемблер выводить в файл листингавсе операторы условных блоков (в том числе с условием false).

Директива%NOCONDS (.SFCONDS) запрещает вывод в файл листинга блоков условного ассемблирования с условием false.11 Зак. 256322Глава 14. Макросредства языка ассемблера» Директива .TFCOND переключает режимы вывода %CONDS (.LFCOND) и %NOCONDS(.SFCONDS). Эту директиву можно использовать как отдельно, так и совместнос директивами .LFCOND и .SFCONDS. Первая директива .TFCOND, которую обнаруживает TASM, разрешает вывод в файл листинга всех блоков условного ассемблирования. Следующая директива .TFCOND запретит вывод этих блоков. С директивой .TFCOND можно использовать ключ /х командной строки транслятораTASM — в этом случае блоки условного ассемблирования будут сначала выводиться в файл листинга, но первая же директива .TFCOND запретит их вывод.Директивы вывода макрорасширений, как явствует из названия, управляют выводом макрорасширений:Директива %MACS (.LALL) разрешает вывод в файл листинга всех макрорасширений.-' Директива %NOMACS (.SAIL) запрещает вывод всех операторов макрорасширения в файл листинга.8 В трансляторе MASM можно использовать директиву .XALL, позволяющую выводить в листинг только те макрорасширения, которые генерируют код или данные.Итоги9 Преимущества языка ассемблера связаны, в частности, с макросредствами.

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

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

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

С помощью этих директив можно довольно гибко изменять формат и полноту информации, выводимой ассемблером в файл листинга.Глава 15МодульноепрограммированиеОсновы структурного программированияСредства ассемблера для поддержки структурногопрограммирования'Процедуры и организация связей между процедурамина языке ассемблераДиректива INVOKE (MASM)Связь между программами на языках высокого уровняи программами на ассемблереМы неоднократно подчеркивали один из существенных недостатков программ наязыке ассемблера, а значит, и самого языка, — недостаточную наглядность.

По прошествии даже небольшого времени программисту порой бывает трудно разобратьсяв деталях им же написанной программы. А о чужой программе и говорить не приходится. Если в ней нет хотя бы минимальных комментариев, то разобраться с тем,что она делает, довольно трудно. Причины этого тоже понятны — при написаниипрограммы на языке ассемблера человек должен запрограммировать самые элементарные действия или операции. При этом он должен учитывать и контролировать состояние большого количества данных. Из-за элементарности программируемых операций реализация одного и того же алгоритма может быть произведенапо крайней мере несколькими способами.

Эта неоднозначность влечет за собойнепредсказуемость, что и затрудняет процесс обратного восстановления исходного алгоритма по ассемблерному коду.По мере накопления опыта эти проблемы частично снимаются. Но одного опыта мало. Ситуация усугубляется, если работает коллектив разработчиков. Тут ужеСтруктурное программирование325нужны специальные средства. Далее перечислены организационные и программные (предоставляемые ассемблером) мероприятия, позволяющие хотя бы частично снять остроту этой проблемы.t' Документирование программистом своей работы и ее результатов.

Делается этов первую очередь путем комментирования строк исходного текста программы.При этом комментарии должны коротко, но точно выражать то, что делает данная программа в целом, выделять ее наиболее важные фрагменты и особенностиприменения отдельных команд. В конечном итоге, комментирование облегчает понимание сути программы, но все-таки полностью не снимает проблему.II Упрощение кода программы путем замены сложных фрагментов более понятным кодом. Для этого, в частности, можно использовать рассмотренные намимакрокоманды.II Использование при разработке программных проектов достижений современных технологий программирования.К настоящему моменту наиболее популярными и жизнеспособными оказались две технологии программирования: структурная и объектно-ориентированная.Последние версии пакетов TASM и MASM языка ассемблера поддерживаютобъектно-ориентированное программирование, но реализация его довольно сложна и требует отдельного рассмотрения.

Типичному процессу написания программы на ассемблере больше всего удовлетворяют концепции структурного программирования. Можно даже сказать, что для процессорной архитектуры IA-32 этиконцепции поддерживаются на аппаратном уровне с помощью таких архитектурных механизмов, как сегментация памяти и аппаратная реализация команд передачи управления. На программном уровне поддержка заключается, в основном,в соответствующих средствах конкретного компилятора, в частности, такие средства имеют компиляторы TASM и MASM. Данная глава посвящен этим программно-аппаратным средствам.СтруктурноепрограммированиеСтруктурное программирование — методология программирования, базирующаясяна системном подходе к анализу, проектированию и реализации программногообеспечения.

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

Этот процесс называется функциональной декомпозицией задачи. Каждый модуль в функциональной декомпозиции представляет собой «черный ящик» с одним входом и однимвыходом. Модули связаны между собой только входными и выходными данными.326Глава 15. Модульное программированиеМодульный подход позволяет безболезненно производить модернизацию программы в процессе ее эксплуатации и облегчает ее сопровождение.

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

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

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

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

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

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

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