Семантический анализ структуры EXE файла и дисассемблер (с примерами и исходниками), вирусология — страница 9

  • Просмотров 4808
  • Скачиваний 591
  • Размер файла 145
    Кб

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

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

диаграмм, показанных на следующих рисунках. Рис. 5. Формат предложения ассемблера Рис. 6. Формат директив Рис. 7. Формат команд и макрокоманд На этих рисунках: имя метки — идентификатор, значением которого является адрес первого байта того предложения исходного текста программы, которое он обозначает; имя — идентификатор, отличающий данную директиву от других одноименных директив. В результате обработки ассемблером

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

константами, метками и идентификаторами переменных с использованием знаков операций и некоторых зарезервированных слов. Как использовать синтаксические диаграммы? Очень просто: для этого нужно всего лишь найти и затем пройти путь от входа диаграммы (слева) к ее выходу (направо). Если такой путь существует, то предложение или конструкция синтаксически правильны. Если такого пути нет, значит эту конструкцию компилятор не

примет. При работе с синтаксическими диаграммами обратим внимание на направление обхода, указываемое стрелками, так как среди путей могут быть и такие, по которым можно идти справа налево. По сути, синтаксические диаграммы отражают логику работы транслятора при разборе входных предложений программы. Допустимыми символами при написании текста программ являются: 1.     все латинские буквы: A—Z, a—z. При этом заглавные и