Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Директивы ассемблера

СТРУКТУРА МАШИННОГО ОПЕРАТОРА

ВЫРАЖЕНИЯ

АССЕМБЛЕР

 

Ассемблер – язык программирования низкого уровня, в котором в большинстве случаев одному оператору соответствует одна машинная команда. Это позволяет создавать оптимальные программы специального системного назначения.

 

Основные понятия языка:

 

- символы;

- элементарные конструкции;

- выражения;

- операторы.

 

Алфавит языка:

 

- прописные и строчные буквы латинского алфавита;

- арабские цифры 0,1,...,9;

- знаки арифметических операций + - * /;

- знаки операций сравнения < > =;

- скобки () [];

- разделители.,:; ' "

- специальные символы:

- знак вопроса:?

- коммерческое эт: @

- амперсанд: &

- знак доллара: $

- знак подчеркивания: _

непечатные символы:

- пробел;

- табуляция;

- возврат каретки.

 

┌───────────────────────────┐

│ Элементарные конструкции │

└──────┬──────┬─────────┬───┘

┌──────────────┘ │ └──────────┐

 

┌──────────────────┐ ┌──────────────┐ ┌─────────┐

│Зарезервированные │ │Идентификаторы│ │Константы│

│слова │ │ │ │ │

└─┬───────┬─────┬──┘ └─────┬───┬────┘ └──┬───┬──┘

│ │ │ ┌─────┘ │ ┌─────┘ │

│ │

┌─────────┐ │ ┌─────────┐ │ ┌───────────┐ ┌───────┐ ┌──────────┐

│Мнемокоды│ │ │Указатели│ │ │Стандартные│ │ Числа │ │Символьные│

└─────────┘ │ │и функции│ │ │имена │ └─┬───┬─┘ │строки │

│ └─────────┘ │ │регистров │ │ │ │до 255 │

│ └───────────┘ ┌─┘ │ │символов │

┌──────────┐ │ └──────────┘

│Директивы │ ┌────────────────┐ │ ┌─────────────────┐

│ассемблера│ │ Идентификаторы │ │ │Двоичные, │

└──────────┘ │ пользователя │ │ │восьмеричные, │

└────────────────┘ │ │шестнадцатеричные│

└─────────────────┘

┌──────────┐

│Десятичные│

│со знаком │

└──────────┘

 

 

 

Выражения ассемблера могут быть двух типов: числовые и адресные. Числовые – вычисляют значение операнда. Адресные – адреса операндов и других объектов.

MOV AX,B[BX+SI]

└──v──┘ – адресное выражение

 

Операторы языка делятся на машинные операторы, которым после трансляции соответствует команда, и директивы ассемблера, которые используются как указания транслятора. Директивам ассемблера не соответствует адрес в памяти, т. е. в исполняемой программе директив нет.

 

┌─────────────────┐

│ Операторы языка │

└──┬─────┬────┬───┘

┌──────────────┘ │ └────────────────────┐

 

┌────────────┐ ┌─────────────────────────┐ ┌────────────┐

│ Командные │ │ Операторы распределения │ │ Директивы │

│ операторы │ │ данных │ │ ассемблера │

└────────────┘ └─────────────────────────┘ └────────────┘

(mov al,ah) (a db 5) (start proc near)

 

 

{ Метка: } { Префикс } Мнемоника { Операнды } {;Комментарии }

 

МЕТКА в процессе трансляции принимает значение адреса соответствующей команды. Метки как операнды присутствуют в операторах управления.

ПРЕФИКС – его наличие позволяет сформировать один из префиксных байт: блокировки LOCK или повторения REP.

МНЕМОНИКА – символические обозначения команд процессора. Например: ADD, SUB и т. д.

ОПЕРАНДЫ: MOV AX,data[SI] – два операнда

DEC AX – один операнд

XLAT – нет операндов

Комментарии – произвольный текст, который следует за точкой с запятой.

 

 

 

Директивы ассемблера и операторы определения данных имеют несколько иной формат.

 

{ символическое имя } Директива { Операнды } {;Комментарии }

 

СИМВОЛИЧЕСКОЕ ИМЯ – по своему смыслу близко к метке, т. е. задаёт имя директиве, например заголовок процедуры. Однако после трансляции символические имена, как и сами директивы в программе отсутствуют.

ДИРЕКТИВА – определяет действие, также как и мнемоника. Однако это действие выполняет ассемблер при трансляции программы.

 

Идентификаторы включают буквы, цифры и символы:? @ _ $; начинаются с буквы или символа. Идентификаторы – это метки, имена в директивах ассемблера и имена переменных в операторах распределения данных (а также имена операндов в командных операторах).

 

Регистры – имеют стандартные имена. Регистрам приписаны стандартные типы:

тип BYTE – AL,AH,BL,BH,CL,CH,DL,DH;

тип WORD – AX,BX,CX,DX,BP,SP,SI,DI,CS,DS,SS,ES.

 

<== предыдущая лекция | следующая лекция ==>
Регистр флагов | Режимы адресации
Поделиться с друзьями:


Дата добавления: 2014-01-04; Просмотров: 456; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.018 сек.