Читайте также:
|
|
Различают:
- двоичные числа; заканчиваются буквой В;
- десятичные числа; без специального окончания или заканчиваются буквой D;
- шестнадцатеричные числа; заканчиваются буквой Н.
Для обозначения цифр 10, 11, 12, 13,14, 15 в шестнадцатеричной системе счисления используются соответственно буквы А, В, С, D, E, F; но начинаться шестнадцатеричные числа должны обязательно с цифры, например: выражение F19H -не число, а идентификатор, правильно число надо записать так: OF19H.
Запись отрицательных чисел:
- десятичные числа записываются обычным образом, просто со знаком: -32, -32D;
- двоичные числа записываются только в дополнительном модифицированном коде: -32D -> 11.100000В, -19D -> 11.01101В;
- шестнадцатеричные числа записываются только в дополнительном коде: -32D записывается как l.EOH, -119D записывается как 1.89Н.
Строки (литералы)
Строки символов: включают любые буквы, цифры и символы, но заключаются в кавычки: "ПЭВМ IBM PC с микропроцессором 80386".
Команды (операторы)
Формат команды:
[Метка [: ] ] КОП [Операнд] [Операнд] [Комментарий].
Между элементами команды вставлены пробелы. Здесь и далее элементы, заключенные в квадратные скобки, необязательны.
КОП (Код Оператора) — мнемокод команды (состоит из 2-6 букв). Может быть до 256 различных кодов (в ассемблере IBM PC их число изменяется в зависимости от типа МП.
Например: 133 в МП 8088, 240 в МП 80386).
Операнд — явно заданный адрес (прямой или косвенный); имя метки, переменной; само значение переменной; ассоциативный признак и т. п. Количество необходимых в команде операндов ассемблер узнает по КОП. В большинстве двухадресных команд присутствуют операнды приемник (dst — destination) и источник (src — source); источник не изменяет своего содержания, в приемнике 1-е число, участвующее в операции, заменяется результатом.
Метка — имя команды ассемблера для ссылки (обращения) к этой команде (до 31 символа).
Двоеточие, стоящее после метки, означает, что метка всегда находится в текущем сегменте памяти.
Комментарий — любой текст, поясняющий человеку программу (не воспринимается ассемблером, но выводится в листинге).
Директивы (псевдооператоры)
Директивы в отличие от команд выполняются только в процессе ассемблирования (трансляции) программы, а не в процессе решения задачи на компьютере. То есть команды — это инструкции машине, а директивы — это инструкции ассемблеру (транслятору).
Формат директивы:
[Идентификатор] КПОП [Операнд] [.Операнд]... [Комментарий]
Как и в случае команд, поле директивы может начинаться в любом месте строки программы при условии, что оно отделено от предыдущего поля хотя бы одним пробелом. Идентификатор — имя директивы (для обращения к ней). КПОП (Код ПсевдоОПератора) — мнемокод директивы (состоит из 2-7 букв).
Операнды — их в директиве может быть много; это уже не только адреса, но и различные процедуры. В операндах могут быть записаны простые выражения, использующие модификаторы (операции).
Модификаторы
В операторах и псевдооператорах языка ассемблер иногда используются модификаторы, которые определяют ту или иную операцию, учитываемую при трансляции программы. Существует 5 видов модификаторов: арифметические, логические, отношений, возвращения значений и присваивания атрибутов. Наиболее часто используются модификаторы (mdf):
- Арифметические модификаторы: + — сложить, — вычесть, * — умножить, / - разделить, mod — остаток от деления и т. д. Формат: opr mdf орг.
- Логические модификаторы: and — «и», or — «или», not — «не» и хог - исключающее «или». Формат: opr mdf орг.
- Модификаторы отношения: eq — совпадения, nq — несовпадения, lt — меньше, gt — больше, lе — меньше или равно, ge — больше или равно. Формат: opr mdf орг.
- Модификаторы, возвращающие значения:
• $ — возвращает значение смещения адреса текущего оператора;
• seg — возвращает адрес сегмента адреса метки или переменной;
• offset — возвращает смещение адреса метки или переменной;
• length — возвращает длину операнда в единицах определения (байтах или
словах);
• type — возвращает атрибут типа переменной (1, если byte; 2 — word, 3 — dword)
или метки (1 — near, 3 — far);
• size — возвращает произведение length*type. Формат: mdf opr.
- Модификаторы присваивания атрибута:
• ptr — изменяет атрибут типа (byte, word или dword) операнда или атрибут дистанции (near или far) адресного операнда. Формат: тип ptr opr. (здесь: тип - новый атрибут, opr — идентификатор операнда, чей атрибут должен быть изменен);
• ds:, es:, cs:, ss: — изменяет атрибут сегмента адреса. Формат: rsegm: адрес. (адрес может быть задан именем сегмента, переменной, меткой или адресным выражением);
• short — дополняет атрибут near метки оператора перехода, указывает, что переход осуществляется на расстояние не более ±128 байт от текущей команды. Формат: short метка;
• high—возвращает старший байт 16-битового значения орг. Формат: high opr;
• low — возвращает младший байт 16-битового значения орг. Формат: low opr.
В программах используются:
- атрибуты дистанции:
• near — близкий, в пределах одного сегмента;
• far — далекий, за пределами одного сегмента;
- атрибуты типа данных:
• byte — длиной 1 байт;
• word — длиной 2 байт;
• dword — длиной 4 байт.
Дата добавления: 2015-12-07; просмотров: 75 | Нарушение авторских прав