- •Министерство образования и науки
- •Теоретические сведения
- •1.1. Регистры
- •1.1.2. Регистры общего назначения
- •1.1.3. Сегментные регистры
- •1.2. Регистр флагов
- •1.3. Представление данных
- •1.3.1. Целые числа без знака
- •1.3.2. Целые числа со знаком
- •1.3.3. Представление символьных переменных
- •1.4. Лексемы
- •1.4.1. Идентификаторы
- •1.4.2. Целые числа
- •1.4.3. Символьные данные
- •1.5. Предложения
- •1.5.1. Комментарии
- •1.5.2. Команды
- •1.5.3. Директивы
- •1.6. Директивы определения данных
- •1.6.1. Директива db
- •1.6.2. Директива dw
- •1.6.3. Директива dd
- •1.6.4. Директивы эквивалентности и присваивания
- •1.7. Выражения
- •1.8. Обозначения
- •1.9. Команды пересылки
- •1.9.1. Команда mov
- •1.9.2. Команда xchg (exchange)
- •1.10. Команды сложения и вычитания
- •1.10.1. Особенности сложения и вычитания целых чисел в пк
- •1.10.2. Команды сложения и вычитания
- •Например: Mov ah, 1
- •1.11. Команды умножения и деления
- •1.11.1. Команды умножения
- •1.11.2. Команды деления
- •1.12. Изменение размеров числа
- •Задание
- •Контрольные вопросы
- •Литература
1.4. Лексемы
Лексемы – это простейшие конструкции, такие как имена, числа и строки.
1.4.1. Идентификаторы
Идентификаторы применяются для обозначения объектов программы (переменных, маток, и т.п.).
В языке ассемблера (ЯА) идентификатор– это последовательность из латинских букв (больших и малых) и цифр.
Ограничения:
длина идентификатора может быть любой, но значащими являются только первые 31 символ.
идентификатор не должен начинаться с цифр.
в идентификаторах одноименные большие и малые буквы считаются эквивалентными (Ax, aX, AX, ax – одно и тоже).
в идентификаторах нельзя использовать буквы русского алфавита.
1.4.2. Целые числа
Целые числа могут быть записаны в десятеричной, двоичной(добавляется B-binary),восьмеричной(q) ишестнадцатеричной(h-hexadecimal).
Замечание. Если шестнадцатеричное число начинается с «буквенной» цифры (A –F), например A5h, следует в начале числа записывать хотя бы один незначащий ноль, иначе запись может быть воспринята как идентификатор.
1.4.3. Символьные данные
Символы заключаются либо в одинарные, либо в двойные кавычки: “A”, ‘B’, ‘A+B’.
Если в качестве символа внутри строки надо указать кавычку то делается так: если строка заключается в те кавычки, которую надо указать внутри строки, то эта кавычка удваевается, иначе удваивание не требуется. Например: ‘don’’n’, ‘’don’t’’, ‘’don’’’’t’’. Разрешается использовать кириллицу.
1.5. Предложения
Программа ЯА– это последовательность предложений, каждое из которых записывается в отдельной строке. Переносить предложение на следующую строку или записывать в одной строке два предложения нельзя. Если в предложении более 131 символа, то 132 – ой и все остальные символы игнорируются.
При записи предложений действуют следующие правила расстановки пробелов:
Пробел обязателен между двумя рядом стоящими идентификаторами или числами;
Внутри идентификаторов и чисел пробелы недопустимы;
В остальных местах можно ставить или не ставить;
Там, где допустим один пробел, можно ставить любое число пробелов.
По смыслу все предложения ЯА делятся на три группы:
Комментарии
Команды
Директивы.
1.5.1. Комментарии
Комментариемсчитается любая строка, начинающаяся со знака ‘;’ (перед ним может быть любое число пробелов) либо пустая строка.
Например:
; Заполнение регистра Ах.
В ЯА допустим и многострочный комментарий. Он должен начинаться со строки
COMMENT <маркер> <текст>.
В качестве маркера берется первый отличный от пробела символ, идущий засловом COMMENT; этот символ начинает комментарий. Концом такого комментария считается конец первой из последующих строк программы, в которой (в любой позиции) снова встретился этот же маркер.
Например:
COMMENT *все это является
комментарием к тому же * и это тоже.
Такой вид комментария используется для временного исключения фрагмента программы.
1.5.2. Команды
Предложения-команды – это символьная форма записи машинных команд.
Синтаксис:
[< метка >:] < мнемокод > [<операнды>] [; < комментарий>]
Метка
Синтаксически, метка – это имя. Метка нужна для ссылок на команду из других мест программы, например, для перехода на эту команду. В ЯА разрешается в одной строке указать только метку (с двоеточием).
Это применяется, когда:
команду надо пометить двумя метками;
метка очень длинная => остальную часть команды выгоднее поместить на следующей строке.
Например:
Init:
Lab: ADD BX, AX;
Мнемокод
Мнемокод является обозначенной частью программы. Это служебное слово, обозначающее операцию.
Операнды
Операнды обычно записываются в виде выражений состоящих из чисел или переменных. Операнды отделяются друг от друга запятой.
Комментарий
В отличие от комментариев-предложений, эти комментарии обычно используются для пояснения именно данной команды.