
- •10.09.2012 — Лекция №1
- •12.09.2012 — Лекция №2
- •17.09.2012 — Лекция №3
- •23.09.2012 — Лекция №4
- •26.09.2012 — Лекция №5
- •1.10.2012 — Лекция №6
- •08.10.2012 — Лекция №7
- •08.10.2012 — Лекция №8
- •22.10.2012 — Лекция №10
- •24.10.2012 — Лекция №11
- •Команды микропроцессора x086.
- •03.12.2012 — Лекция №19
- •10.12.2012 — Лекция №21
- •17.12.2012 — Лекция №22
- •19.12.2012 — Лекция №23
1.10.2012 — Лекция №6
Достоинства Ассемблера:
Символическая адресация (мнемонические имена) – присвоение определенным адресам специальных имен, называемых метками.
Мнемонические обозначения кодов команд. Т.е. слово образуется по первым буквам слов словосочетания – сокращенное обозначение действия команды в символьном виде.
Позволяет реализовать разнообразные способы адресации, что очень удобно при работе с массивами, структурами и т.д.
Позволяет использовать выражения вместо операндов, что существенно уменьшает число ошибок.
Позволяет присваивать имена константам.
Имеется большой набор псевдокоманд (макроассемблеры), предназначенных для управления трансляцией и т.о. более удобному программированию.
Ассемблер – язык, очень строгий по синтаксису, поэтому и очень простой.
Ассемблер состоит из предложений. Каждое предложение пишется на одной строке. Конец строки всегда обозначается символом Enter (перевод строки и возврат каретки). Каждое предложение состоит из 4х полей, каждое из которых ограничивается определенным разделителем.
№ |
I |
II |
III |
I |
Поле … |
Метки |
Оператора (команды) |
Операнды |
Комментария |
Пример |
MET:[Tab] M2:
Q2: |
MOV[пробел] mov JUMP |
AL,BH[пробел/Tab] al,bh получатель,источник |
;СOMMENTS [Enter] |
Метка – символическое имя, состоящее из букв латинского алфавита и цифр, длиной не более 8 символов. Ограничивается справа двоеточием. Если двоеточие не указано, метка воспринимается в качестве имени константы (введено для удобства программирования).
В каждом трансляторе имеется группа зарезервированных имен, которую запрещено использовать в качестве меток:
Мнемонические обозначения команд и псевдокоманд
Специальные символы
Метки запрещено дублировать в команде, каждая должна быть уникальна. Если метка длиннее 8 символов, она укорачивается и может совпасть с другим именем. После двоеточия следует горизонтальная табуляция, что улучшает читаемость кода
В поле оператора указывается мнемонический код команды с использованием латинских символов. Строчная или заглавная буква – не имеет значения. Кроме команд в этом поле указываются псевдокоманды Ассемблера. Псевдокоманда – команда, не существующая в наборе команд ЭВМ, н имеющаяся в наборе транслятора. Обычно это поле справа ограничивается знаком пробела
В поле операнда указывается 1-2 операнда. Если 2 операнда, они м/у собой разделяются запятой (пробел после запятой можно не ставить). В качестве операндов могут выступать имена внутренних регистров ЭВМ, имена веток, констант или конкретные числовые значения в различных системах счисления. Кроме того в этом поле могут указываться выражения в виде последовательности арифметических и логических операций. Операнды отделяются пробелом, либо горизонтальной табуляцией/
Поле комментария от поля операнда отделяется «;». Поле комментария содержит любой текст, который транслятором игнорируется. После комментария перевод строки осуществляется ч/з Enter.
Константы Ассемблера.
В качестве констант могут использоваться любые числа в 2(b), 8(q), 16(h), 10-тичной системах счислениях, при этом наиболее распространенные Ассемблеры (разработчик Intel) записывают числа и в конце указывают букву – признак системы счисления. Если после цифры ничего не указано – это признак 10-тичной системы счисления. Если 16-речное число начинается с буквы, перед ней всегда устанавливается цифра 0 (например, 0А2h), указывая, что это число, а не метка.