КАТЕГОРИИ: Архитектура-(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; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |