Assembler для начинающих






    Прежде чем двигаться дальше, обсудим синтаксис команд языка ассем-
    блера.Мы должны выделить основные компоненты языка ассемблера,
    чтобы можно было затем обозначать эти компоненты с помощью
    сиандартных терминов.
 
      Команда языка ассемблера состоит из четырех частей.  Фиг.  2.8
    показывает типичную команду ассемблера и названия этих частей.
 
    --------------------------------------------------------
    PART1:    ADD     AX,BX      ;Добавить к длине буфера
    Метка     ОпКод   Операнды         Комментарий
    --------------------------------------------------------
                            Фиг. 2.8 Синтаксис языка ассемблера
 
    Единственная обязательная часть команды языка ассемблера - ОпКод
    (сокращение от ОПерационный КОД).  Программисты иногда называют ма-
    шинные команды кодами операций. Операционный код в утверждении язы-
    ка асемблера определяет, какую опреацию должен будет выполнить про-
    цессор, в нашем примере - операцию сложения (по английски - add -
    прим.  перев.).
 
      Поле операндов содержит дополнительную информацию о команде,
    например, какие значения участвуют в операции.  Поле операндов
    определяется операционным кодом.  Каждому коду операции должно
    соответствовать определенное число операндов.  Для команды ADD
    требуется два операнда; операция перемены знака (NEG) обходится
    лишь одним, а для некоторых команд, например, команды десятичной
    коррекции DAA, операнды не нужны.  В главе 4 описаны эти команды и
    их операнды.
 
      Метка и комментарий необязательны  в команде. Поле метки позво-
    ляет  обозначить какое-либо  конкретное место  в памяти компьютера.
    Собственный  адрес имеется      у  любого  участка памяти,  но выделить
    адрес  какой  либо  команды  трудно,  если  вообще      возможно. Метка
    позволяет  идентифицировать  определенное  место  в памяти заданным
    программистом  именем.  Говоря   технически,  поле      метки  содержит
    символический указатель  расположения команды. Если  мы хотим обра-
    титься к  этой команде позднее,  то мы делаем  это через символьное
    имя и  нам не требуетсся  указывать абсолютное расположение  данной
    инструкции. Использование меток - одна из причин предпочтительности
    языка  ассемблера  перед  машинным    языком.  Превращением же симво-
    лических имен в реальные адреса ведает ассемблер.
 
      Поле комментариев служит для удобства программиста.
    Программист может использовать это поле для сообщения
    дополнительной информации о команде.  Комментарий не обязательно
    жестко связан с командой.  Вы можете отвести под комментарий целую
    строку, поставив в ее начале символ ";".  Это позвляет программисту
    в ключить в листинг ассембле- ра блок собственной информации, к
    примеру, описание используемого алгоритма.
 
      У  каждого есть  собственное представление  о том,  как следует
    комментировать  программы, и  вы наверняка  тоже скоро  выработаете
    свое. Как  правило, вы будете  пытаться включать в      них информацию,
    которая  относится  непосредственно  к  решаемой  проблеме.  В при-
    веденном  примере  было   бы  бессмысленно  комментировать    команду
    чем-нибудь вроде  "сложить AX и  BX". Это не  более, чем повторение
    операционного кода и операндов (разве  что в переводе с английского
    - прим.перев.). Если  уж вы намерены связаться  с комментариями, то
    делайте их достойными труда их написания и чтения.