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

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

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

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

Строки могут быть символическими именами, числами или выражениями и должны быть заключены в угловые скобки.Аналогично директиве условной компиляции IFDIF, при сравнении учитывается различие прописных и строчных букв.318Глава 14. Макросредства языка ассемблераж Директива .ERRIDN (ERRIFIDN) генерирует пользовательскую ошибку, если строки посимвольно идентичны. Строчные и прописные буквы воспринимаютсякак разные.Для того чтобы игнорировать различия строчных и прописных букв, существуют аналогичные директивы:ERRIFDIFI <строка_1>,<строка_2>ERRIFIDNI <строка_1>,<строка_2>'я Директива ERRIFDIFI аналогична директиве ERRIFDIF, но игнорируется различиестрочных и прописных букв при сравнении строк <строка_1> и <строка_2>.9 Директива ERRIFIDNI аналогична директиве ERRIFIDN, но игнорируется различие строчных и прописных букв при сравнении строк <строка_1> и <строка_2>.Данные директивы, как и соответствующие им директивы условной компиляции,удобно применять для проверки передаваемых в макрос фактических параметров.Директивы .ERRE (ERRIFE) и .ERRNZ (ERRIF)Синтаксис директив .ERRE (ERRIFE) и .ERRNZ (ERRIF):.ERRE (ERRIFE) константное_выражение.ERRNZ (ERRIF) константное_выражениев Директива .ERRE (ERRIFE) вызывает пользовательскую ошибку, если константное выражение ложно (равно нулю).

Вычисление константного выражения должно приводить к абсолютному значению, и это выражение не может содержатьссылок вперед.ii Директива .ERRNZ(ERRIF) вызывает пользовательскую ошибку, если константное выражение истинно (не равно нулю). Вычисление константного выражения должно приводить к абсолютному значению и не может содержать ссылоквперед.Константные выражения в условных директивахКак вы успели заметить, во многих условных директивах в формировании условия участвуют выражения. Результат вычисления этого выражения обязательнодолжен быть константой. Хотя его компонентами могут быть и символическиепараметры, но их сочетание в выражении должно давать абсолютный результат.К примеру,.datamas db ...ten dd.code.erre(len-mas) It 10 генерация ошибки, если длина;области mas меньше 10 байтКроме того, константное выражение не должно содержать компоненты, которые транслятор еще не обработал к тому месту программы, где находится условная директива.

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

14.1 и 14.2.Таблица 14.1. Операторы отношенийОператор отношенияEQ (equal) — равноСинтаксисвыражение_1 EQвыражение_2РезультатИстина, если выражение_1равно выражение_2NE (not equal) — не равно выражение_1 NEвыражение_2Истина, если выражение_1не равно выражение_2LT (less than) — меньшевыражение_1 LTвыражение_2Истина, если выражение_1меньше выражение_2LE (less or equal) —меньше или равновыражение_1 LEвыражение 2Истина, если выражение_1 меньшеили равно выражение 2GT (greater than) большевыражение_1 GTвыражение_2Истина, если выражение_1больше выражение_2GE (greater or equal) —больше или равновыражение_1 GEвыражение_2Истина, если выражение_1 большеили равно выражение_2Таблица 14.2. Логические операторыЛогический операторNOT — логическоеотрицаниеСинтаксисNOT выражениеРезультатИстина, если выражение ложно;ложь, если выражение истинноAND — логическое Ивыражение_1 ANDвыражение_2Истина, если выражение_1и выражение_2 истинныOR — логическое ИЛИвыражение_1 ORвыражение 2Истина, если выражение_1или выражение 2 истинныXOR — исключающееИЛИвыражение_1 XORвыражение_2Истина, если выражение_1 равнологическому отрицаниювыражения_2Дополнительные средствауправления трансляциейТ ASM предоставляет средства для вывода текстового сообщения во время трансляции программы — директивы DISPLAY и %OUT.

С их помощью можно при необходимости следить за ходом трансляции. К примеру,320Глава 14. Макросредства языка ассемблераdisplay недопустимые аргументы макрокоманды%outнедопустимое имя регистраВ результате обработки этих директив на экран (стандартный выход) будутвыведены тексты сообщений. Если эти директивы использовать совместно с директивами условной компиляции, то, к примеру, можно отслеживать путь, по которому осуществляется трансляция исходного текста программы.Можно предложить читателю уже с этого момента начать формировать наборполезных в его практической работе макрокоманд. В качестве основы вы можетевзять файл mac.inc, который находится в каталоге данной главы среди файлов, прилагаемых к книге1.

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

Для этого разработаем еще один макрос и назовем его, к примеру, show. Его аргументомможет быть один из четырех регистров — AL, АН, АХ, ЕАХ. С помощью этого макросаможно визуализировать содержимое любого из доступных регистров или областипамяти длиной до 32 битов. Для этого достаточно лишь переслать содержимое нужного объекта (регистра или ячейки памяти) с учетом его размера в один из регистров AL, АН, АХ, ЕАХ. Имя одного из этих регистров указывается затем в качествефактического аргумента макрокоманды show. Второй аргумент этого макроса —позиция на экране. Задавая определенные значения, мы можем судить о том, какая именно макрокоманда show сработала.

Еще одна немаловажная особенностьданного макроса — в его возможности работать как в реальном, так и в защищенном режимах. Распознавание текущего режима работы процессора выполняетсяавтоматически. Текст макроопределения show довольно велик и по этой причиненаходится среди прилагаемых к книге файлов в каталоге данной главы.

Примериспользования этого макроса приведен в листинге 14.6.Листинг 14.6. Пример использования макроса show;prg_14_6.asmMASMMODELsmallSTACK256.486pInclude show.inc.dataВсе прилагаемые к книге файлы можно найти по адресу http://www.piter.com/download. —Примеч. ред.Директивы управления файлом листинга321poledd 3cdf436fh.codemain:mov a x , @ d a t amov d s . a xxor a x , a xmov a x .

l f O f hshow al,0show ah,160show a x , 3 2 0mov eax.poleshow e a x , 4 8 0exit:mov ax,4c00hint 21hend mainПосвятить время рассмотрению этого макроса полезно еще и потому, что приего разработке было использовано большинство средств, обсуждавшихся в этойглаве.Директивы управления файлом листингаАссемблер предоставляет ряд директив для управления содержимым файла листинга.

Далее приведена их общая характеристика.Общие директивы управления листингом призваны управлять видом файла листинга. Все директивы являются парными, это означает, что если одна директивачто-то разрешает, то другая, наоборот, запрещает.вДирективы %LIST и %NOLIST (.LIST и .XLI5T) определяют необходимость вывода вфайл листинга всех строк исходного кода (по умолчанию). Для запрета выводав файл листинга всех строк исходного кода необходимо использовать директивы .XLIST или %NOLIST.

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

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

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

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