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

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

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

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

д. Также говорилось, что необходимость учета подобных особенностей делает86Глава 5. Синтаксис ассемблераассемблер уникальным для каждого типа процессоров. Эта и следующие за нейглавы будут посвящены изучению правил оформления и разработки программ наязыке ассемблера с учетом влияния на эти правила архитектуры IA-32.Синтаксис ассемблераПрограмма на ассемблере представляет собой совокупность блоков памяти, называемых сегментами.

Программа может состоять из одного или нескольких такихблоков-сегментов. Сегменты программы имеют определенное назначение, соответствующее типу сегментов: кода, данных и стека. Названия типов сегментов отражают их назначение. Деление программы на сегменты отражает сегментную организацию памяти процессоров Intel (архитектура IA-32).

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

В процессе трансляции инструкции ассемблера преобразуются в соответствующие команды системы команд процессора.;!Макрокоманды — это оформляемые определенным образом предложения текста программы, замещаемые во время трансляции другими предложениями.Директивы являются указанием транслятору ассемблера на выполнение некоторых действий. У директив нет аналогов в машинном представлении.11 Комментарии содержат любые символы, в том числе и буквы русского алфавита.

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

Оба этих языка, в конечном итоге, предоставляют одинаковый объем информации. Поэтому выбор конкретного языка может определяться исходя из того, что синтаксические диаграммыболее наглядны, а расширенные формы Бэкуса-Наура более компактны. В учебнике будут использоваться оба способа.На рис. 5.1,5.2 и 5.3 показан порядок написания предложений ассемблера с помощью синтаксических диаграмм.Как использовать синтаксические диаграммы? Очень просто: для этого нужновсего лишь найти и затем пройти путь от входа диаграммы (слева) к ее выходу(направо). Если такой путь существует, то предложение или конструкция являются синтаксически правильными.

Если такого пути нет, значит, эту конструкциюкомпилятор не примет. Иногда на линиях в синтаксических диаграммах присутствуют стрелки. Они говорят о том, что необходимо обратить внимание на направление обхода, указываемое этими стрелками, так как среди путей могут бытьСинтаксис ассемблера87Рис. 5.1. Формат предложений ассемблерар| Директива [Операнд_1 f>.I Комментарий<—О!-»|Операнд_п|—Рис. 5.2.

Формат директив|рефиксиIПгЦпI1Имя ч:)—/oj"~|/г\П .. . .К П°|L Липеранд_тLгS*Гf\У ь/т\\*J11 — 1 Комментарий и11Рис. 5.3. Формат команд и макрокоманди такие, по которым можно идти справа налево. По сути, синтаксические диаграммы отражают логику работы транслятора при разборе входных предложений программы. Далее перечислены термины, представленные на рисунках.* Имя метки — символьный идентификатор. Значением данного идентификатора является адрес первого байта предложения программы, которому он предшествует.il Префикс — символическое обозначение элемента машинной команды, предназначенного для изменения стандартного действия следующей за ним командыассемблера (см. главу 3).il Имя — идентификатор, отличающий данную директиву от других одноименных директив.

В зависимости от конкретной директивы в результате обработки ассемблером этому имени могут быть присвоены определенные характеристики.ш Код операции (КОП) и директива — это мнемонические обозначения соответствующей машинной команды, макрокоманды или директивы транслятора.» Операнды — части команды, макрокоманды или директивы ассемблера, обозначающие объекты, над которыми производятся действия. Операнды ассемблераописываются выражениями с числовыми и текстовыми константами, меткамии идентификаторами переменных с использованием знаков операций и некоторых зарезервированных слов.88Глава 5.

Синтаксис ассемблераДругой способ описания синтаксиса языка — нормальные (расширенные) формы Бэкуса-Наура. С помощью форм Бэкуса-Наура целевой язык представляетсяв виде объектов трех типов.и Основные символы языка, в теории компиляции называемые терминальными, —это имена операторов, регистров и т. п., то есть это те символьные объекты, изкоторых строится, в частности, исходный текст ассемблерной программы.ш Имена конструкций языка, в теории называемые нетерминальными символами, обычно заключаются в угловые скобки <> или пишутся строчными буквами.в Правила (формы) описывают порядок формирования конструкций, в том числе предложений, целевого языка.Каждая форма состоит из трех частей — левой, правой и связки:9 левая часть — всегда нетерминальный символ, который обозначает одну из конструкций языка;ii связка — символ стрелки =>, который можно трактовать как словосочетание«определяется как»;и правая часть описывает один или несколько вариантов построения конструкции, определяемой левой частью.Несколько форм Бэкуса-Наура могут быть связаны между собой по нетерминальным символам, то есть одна форма определяется через другую.

Для построения конструкции целевого языка необходимо взять одну или несколько форм Бэкуса-Наура, в каждой из которых выбрать нужный вариант для подстановки.8 конечном итоге должна получиться конструкция (предложение) целевого языка, состоящая только из терминальных символов.Для примера рассмотрим описание и использование форм Бэкуса-Наура дляпостроения десятичных чисел со знаком. Вначале опишем эти формы (правила):<десятичное_знаковое_целое>=><число_без_знака>|+<число_6ез_знака>|<число_без_знака><число_без_знака>=><дес_цифра> | <число_6ез_знакахдес_цифра><дес_цифра>=>0|1|2|3|4|5|6|7|8|9Здесь:9 <десятичное_знаковое_целое>,<число_без_знака>,<дес_цифра> — нетерминальныесимволы (в исходной программе на ассемблере таких объектов нет);» +|-|0|1|2|3|4|5|б|7|8|9 — терминальные символы (их можно найти в исходномтексте программы), из терминальные символов по приведенным ранее трем правилам строится любое десятичное число;* символ вертикальной черты (|) означает альтернативу при выборе вариантанекоторого правила.Для примера выведем число -501, используя формы Бэкуса-Наура:<десятичное_знаковое_целое> => <число_без_знака> =><число_без_знака><дес_цифра> => <число_без_знака>1 =><число_без_знака><дес_цифра>1 => <число_без_знака>01 => <дес_цифра>01 => 501Предложения ассемблера (см.

рис. 5.1-5.3) формируются из лексем, представляющих собой синтаксически неразделимые последовательности допустимых символов языка, имеющие смысл для транслятора.Синтаксис ассемблера89Вначале определим алфавит ассемблера, то есть допустимые для написаниятекста программ символы:ii А5СП_символ_буква — все латинские буквы А - Z, а - z, причем прописныеи строчные буквы считаются эквивалентными;decdigit — цифры от 0 до 9;специальные знаки _, ?, @, $, &;разделители: „ ., [, ], (, ), <, >, {, }, +, /, *, %, !, ", ", ?, \, = #, л.Лексемами языка ассемблера являются ключевые слова, идентификаторы, цепочки символов и целые числа.Ключевые слова — это служебные символы языка ассемблера. По умолчаниюрегистр символов ключевых слов не имеет значения. К ключевым словам относятся:« названия регистров (AL, АН, BL, ВН, CL, СН, DL, ОН, АХ, ЕАХ, ВХ, ЕВХ, СХ, ЕСХ, DX, EDX,ВР, EBP, SP, ESP, DI, EDI, SI, ESI, CS, DS, ES, FS, GS, SS, CRO, CR2, CR3, DRO, DRl, DR2, DR3,DR6, DR7);Ш операторы (BYTE, SBYTE, WORD, SWORD, DWORD, SDWORD, FWORD, QWORD, TBYTE, REAL4,REALS, REAL10, NEAR16, NEAR32, FAR16, FAR32, AND, NOT, HIGH, LOW, HIGHWORD,LOWWORD, OFFSET, SEG, LROFFSET, TYPE, THIS, PTR, WIDTH, MASK, SIZE, SIZEOF, LENGTH,LENGTHOF, ST, SHORT, TYPE, OPATTR, MOD, NEAR, FAR, OR, XOR, EQ, NE, LT, LE, GT, GE, SHR,« названия команд (КОП) ассемблера, префиксов.Идентификаторы — последовательности допустимых символов, использующиеся для обозначения имен переменных и меток.

Правило записи идентификаторовможно описать следующими формами Бэкуса-Наура:=> А5СП_символ_буква | А5СП_символ_буква | <id> А5СП_символ_буква<decdigit> | <znak> <decdigit> <id> | <znak><decdigit> => 0| 1 | 2 | 3 |4| 5 | 6| 7| 8| 9<znak> => _|Приведенные формы говорят о том, что идентификатор может состоять из одного или нескольких символов. В качестве символов можно использовать буквылатинского алфавита, цифры и некоторые специальные знаки — _, ?, $, @. Идентификатор не может начинаться символом цифры. Длина идентификатора можетсоставлять до 255 символов (247 в MASM), хотя транслятор воспринимает лишьпервые 32, а остальные игнорирует.

Регулировать длину возможных идентификаторов (в TASM) можно с использованием ключа командной строки /mv. Крометого, существует возможность указать транслятору на необходимость различатьпрописные и строчные буквы либо игнорировать их различие (что и делается поумолчанию). Для этого (в TASM) применяются ключи командной строки/mu, /ml,/mx (см. приложение В на сайте http://www.piter.com/download).Цепочки символов — это последовательности символов, заключенные в одинарные или двойные кавычки. Правила формирования:<string> => <quote> [[ <stext> ]] <quote>< s t e x t > =» <StringChar> | <stext> <stringChar><stringChar> => <quote> <quote> | любой_символ_кроме_кавычки<quote> => " | '90Глава 5.

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

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

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

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