Курс лекций по программированию на языке ассемблера. Макурина Т.А. - 10 стр.

UptoLike

Составители: 

10
Лекция 3
Структура программы на ассемблере.
Программист или любой другой пользователь может использовать любые высокоуровневые
средства, вплоть до построения виртуальных миров, и возможно даже не подозревать, что на
самом деле компьютер выполняет команды языка, на котором написана программа, а их
трансформация представление в форме скучной и унылой последовательности совсем другого
языкамашинного. Поэтому не случайно все языки имеют средства связи с языком ассемблера,
т.к. решить аппаратные проблемы невозможно без знания языка. Поэтому решать проблемы
связанные с аппаратурой невозможно без знания ассемблера.
Вспомним, что ассемблер является символичным аналогом машинного языка, поэтому он
относится к машинно-зависимым языкам. Поэтому программа написанная на ассемблере, должна
отражать все особенности архитектуры МП: организацию памяти, способы адресации операндов,
правила использования регистров и т.д. Из-за необходимости учета подобных особенностей
ассемблер уникален для каждого типа МП.
Программа на ассемблере представляет собой совокупность блоков памяти, называемых
сегментами памяти. Программа может состоять из одного или нескольких таких блоков-
сегментов. Каждый сегмент содержит совокупность предложений языка, каждое из которых
занимает отдельную строку кода программы.
Предложения ассемблера бывают четырех типов:
o команды, или инструкции, представляющие собой символические аналоги
машинных команд. В процессе трансляции инструкции ассемблера преобразуются в
соответствующие команды МП
o макрокомандыоформляемые определенным образом предложения текста
программы, замещаемые во время трансляции другими предложениями.
o директивы, являющиеся указанием транслятору ассемблера на выполнения
некоторых действий. У директив нет аналогов в машинном представлении
o строки комментариев, содержащие любые символы, в том числе и буквы русского
алфавита. Комментарии игнорируются транслятором.
Рассмотрим формат команды ассемблера:
[Метка:] Мнемокод [операнд] [;комментарий]
Обязательным здесь является только мнемокод. В зависимости от команды может не быть
операндов, может быть один или два операнда.
Меткаслужит для присвоения имени команде. На эту метку можно будет ссылаться из
любой части программы. Она может содержать до 31 символа и заканчиваться двоеточием
и содержать символы алфавита от a до Z. и от a до z, цифры от 0 до 9 и символы ?, ., @,, _,
$.
Метка не должна начинаться с цифры. Если используется «.», то она должна быть первым
символом метки. Имя метки не должно совпадать с названием команд. В метку не должны
вставляться пробелы.
Комментариидолжны быть отделены от команд ;. Это комментарии к команде,
программе и блоку команд.
Мнемокодэто имя команды МП.
Поле операндовв поле операндов может быть0, 1 или 2 операнда в зависимости от типа
команды. Операндчасть команды, макрокоманды или директивы ассемблера,
обозначающие объекты, над которыми производятся действия. Операнды ассемблера
описываются выражениями с числовыми и текстовыми константами, метками и
идентификаторами переменных с использованием знаков операций и некоторых
зарезервированных слов.
Если в команде 2 операнда, то первый операнд называется приемником, а второй источником.
Например:
MOV AX, CX ; содержимое регистра cx перемещается в ax
Для работы с данными их помещают в сегмент данных.
Описание сегмента данных осуществляется с помощью директивы
                                    Лекция №3
                        Структура программы на ассемблере.
Программист или любой другой пользователь может использовать любые высокоуровневые
средства, вплоть до построения виртуальных миров, и возможно даже не подозревать, что на
самом деле компьютер выполняет команды языка, на котором написана программа, а их
трансформация представление в форме скучной и унылой последовательности совсем другого
языка – машинного. Поэтому не случайно все языки имеют средства связи с языком ассемблера,
т.к. решить аппаратные проблемы невозможно без знания языка. Поэтому решать проблемы
связанные с аппаратурой невозможно без знания ассемблера.
•      Вспомним, что ассемблер является символичным аналогом машинного языка, поэтому он
относится к машинно-зависимым языкам. Поэтому программа написанная на ассемблере, должна
отражать все особенности архитектуры МП: организацию памяти, способы адресации операндов,
правила использования регистров и т.д. Из-за необходимости учета подобных особенностей
ассемблер уникален для каждого типа МП.
•      Программа на ассемблере представляет собой совокупность блоков памяти, называемых
сегментами памяти. Программа может состоять из одного или нескольких таких блоков-
сегментов. Каждый сегмент содержит совокупность предложений языка, каждое из которых
занимает отдельную строку кода программы.
•      Предложения ассемблера бывают четырех типов:
          o команды, или инструкции, представляющие собой символические аналоги
             машинных команд. В процессе трансляции инструкции ассемблера преобразуются в
             соответствующие команды МП
          o макрокоманды – оформляемые определенным образом предложения текста
             программы, замещаемые во время трансляции другими предложениями.
          o директивы, являющиеся указанием транслятору ассемблера на выполнения
             некоторых действий. У директив нет аналогов в машинном представлении
          o строки комментариев, содержащие любые символы, в том числе и буквы русского
             алфавита. Комментарии игнорируются транслятором.
       Рассмотрим формат команды ассемблера:
      [Метка:] Мнемокод [операнд] [;комментарий]
      Обязательным здесь является только мнемокод. В зависимости от команды может не быть
      операндов, может быть один или два операнда.
      Метка – служит для присвоения имени команде. На эту метку можно будет ссылаться из
      любой части программы. Она может содержать до 31 символа и заканчиваться двоеточием
      и содержать символы алфавита от a до Z. и от a до z, цифры от 0 до 9 и символы ?, ., @,, _,
      $.
      Метка не должна начинаться с цифры. Если используется «.», то она должна быть первым
      символом метки. Имя метки не должно совпадать с названием команд. В метку не должны
      вставляться пробелы.
      Комментарии – должны быть отделены от команд ;. Это комментарии к команде,
      программе и блоку команд.
      Мнемокод – это имя команды МП.
      Поле операндов – в поле операндов может быть0, 1 или 2 операнда в зависимости от типа
      команды.     Операнд – часть команды, макрокоманды или директивы ассемблера,
      обозначающие объекты, над которыми производятся действия. Операнды ассемблера
      описываются выражениями с числовыми и текстовыми константами, метками и
      идентификаторами     переменных с использованием знаков операций и некоторых
      зарезервированных слов.

Если в команде 2 операнда, то первый операнд называется приемником, а второй источником.
Например:
MOV AX, CX ; содержимое регистра cx перемещается в ax
Для работы с данными их помещают в сегмент данных.
Описание сегмента данных осуществляется с помощью директивы
                                               10