- •Архитектура эвм
- •Введение
- •Структура мпс
- •Основные понятия в архитектуре мпс
- •Архитектура фон Неймана
- •Гарвардская архитектура
- •Параллельная архитектура
- •Конвейерная архитектура
- •Суперскалярная архитектура
- •АрхитектурыCisc
- •Архитектуры risc
- •Архитектуры misc
- •Ассемблеры
- •Программа Ассемблер
- •Язык Ассемблер
- •Основы 32-битного программирования в Windows
- •Api функции
- •Сообщения Windows
- •Версии ассемблеров
- •Среды разработки
- •Представление данных в эвм
- •Системы счисления и преобразования между ними
- •Форматы представления чисел
- •Форматы представления двоичных чисел
- •Формат с плавающей точкой
- •Типы адресаций операндов
- •Интерфейсы
- •Последовательный интерфейс rs-232c
- •Интерфейс параллельного порта
- •Инфракрасный интерфейс
- •Интерфейс Bluetooth
- •Интерфейс usb
- •Интерфейс ieee 1394 - FireWire
- •Сопроцессоры
- •Система прерываний и исключений
- •Интерфейс jtag
- •Символы и строки
- •Архитектура cisc от Intel
- •Введение
- •Микроархитектура Intel
- •Микроархитектура р6
- •Микроархитектура NetBurst
- •Микроархитектура Pentium 4
- •Микроархитектура Intel Pentium Mobile
- •Микроархитектура Intel Core
- •Микроархитектура Intel Core Duo
- •Микроархитектура Intel Nehalem
- •Адресация памяти в ia_32
- •Наборырегистров
- •Целочисленныйпроцессор
- •Регистры общего назначения (рон)
- •Регистры флагов eflags
- •Регистр указателя команд
- •Сегментные регистры
- •Управляющие регистры
- •Системные адресные регистры
- •Прямой и обратный порядок следования байтов
- •Виды адресации операндов в памяти
- •Цикл выполнения команды
- •Распределение адресного простраства
- •Образ программы в памяти.
- •Математический сопроцессор
- •Xmm технология
- •Система команд
- •Формат команды
- •Классификация команд
- •Целочисленный процессор
- •Команды общего назначения
- •Команды ввода-вывода
- •Инструкции работы со стеком
- •Арифметико-логические инструкции
- •Цепочечные операции
- •Команды управления
- •Команды поддержки языков высокого уровня
- •Команды прерываний
- •Команды синхронизации процессора
- •Команды обработки цепочки бит
- •Команды управления защитой
- •Команды обмена с управляющими регистрами
- •Команды идентификации и управления архитектурой
- •Управление кэшированием
- •Команды управления кэшированием
- •Сопроцессор с плавающей точкой
- •Классификация команд
- •Команды управления сопроцессором
- •Команды передачи данных
- •Команды сравнения данных
- •Арифметические команды
- •Трансцендентные функции
- •Целочисленное mmx расширение
- •Синтаксис ммх-команд
- •Классификация команд
- •Инициализация
- •Передача данных
- •Упаковка данных
- •Распаковка данных
- •Арифметика
- •Сравнения
- •Дополнительные команды
- •XmMрасширение с плавающей точкой
- •Типы данных
- •Передача данных
- •Арифметика
- •Сравнения
- •Преобразования
- •Управление состоянием
- •Распаковка данных
- •Управление кэшированием
- •Дополнительные команды
- •Цикл трансляции, компоновки и выполнения
- •Ассемблер cisc
- •Введение
- •Средства программирования и отладки
- •Описание masm
- •Структура программы на ассемблере
- •Типы данных
- •Макросредства
- •Директивы
- •Архитектура risc
- •Система команд
- •Архитектура misc
- •Архитектура vliw
- •Архитектура вычислительных систем со сверхдлинными командами
- •Архитектура ia-64
- •Многоядерные архитектуры
- •Микроконтроллер avr от Atmel
- •Архитектура avr от Atmel
- •Ассемблер
- •Команды ассемблера
- •Директивы ассемблера
- •Выражения
- •Микроконтроллеры c28x
- •Архитектура c28x
- •Архитектура f28x
- •Инструментальные средства разработки по
- •Ассемблер
- •Команды ассемблера
- •Формат объектного файла
- •Директивы ассемблера
- •Макроязык и макрокоманды
- •Компоновщик
- •Архиватор
- •Абсолютный листер
- •Листер перекрестных ссылок
- •Утилита 16-ричного преобразования
- •Архитектура VelociTi
- •Структура и состав цсп с6x
- •Средства разработки цсп с6x
- •Ассемблер цсп с6x
- •Команды ассемблера
- •Выражения
- •Листинги
- •Листинги программ
- •Директивы ассемблера
- •Макроязык и макрокоманды
- •Компоновщик
- •Утилиты
- •Поддержка в matlab
- •Введение
- •Встроенные платы для цсп ‘c6x
Директивы ассемблера
Директивы ассемблера поставляют данные программе и управляют процессом трансляции. Директивы ассемблера дают возможность Вам делать следующее:
Транслировать код и данные в указанные разделы.
Резервировать пространство в памяти для неинициализированных переменных.
Управлять видом листинга.
Инициализировать память.
Транслировать условные блоки.
Определять глобальные переменные.
Определять библиотеки, из которых ассемблер может получить макрокоманды.
Исследовать информацию о символьной отладке.
Внимание: Метки и комментарии не показаны в синтаксисе.
Любая исходная инструкция, которая содержит директиву, может также содержать метку и комментарий. Метки начинаются в первом столбце (они - единственные элементы, кроме комментариев, которые могут появляться в первом столбце), а комментарии должны начинаться с точки с запятой или звездочки, если комментарий - единственный элемент в строке. Чтобы улучшать разборчивость, метки и комментарии не показываются, как часть синтаксиса директив. В описании части, заключенные в квадратные скобки, могут пропускаться, ассемблер будет их задавать по умолчанию.
Разделы
Мнемоника и синтаксис
Описание
.bss символ, размер в словах [, флаг блокировки
[, флаг выравнивания [, тип]]
Резервирует пространство в разделе .bss
(неинициализированные данные)
.data
Транслирует в раздел .data (инициализированные данные).
.sect ”имя раздела”
Транслирует в названный (инициализированный) раздел
.text
Транслирует в раздел .text (выполняемый код)
символ .usect ”имя раздела”, размер в словах
[, флаг блокировки[, флаг выравнивания]
Резервирует пространство в названном разделе (неинициализированном)
Константы
Мнемоника и синтаксис
Описание
.byte значение1[,..., значениеN]
Заносит в 16-разрядные слова байты из списка.
В слово 1 байт в младшую часть.
.char значение1[,..., значениеN]
Заносит в 16-разрядные слова символы из списка.
В слово 1 символ в младшую часть.
.string {выражение ”строка”}
Текстовые строки.
Заносятся символы строки в младшие байты последовательных слов.
То же самое делает .char со списком символов.
.pstring {выраж.1 ”строка1”}
[,…,{выраж.N ”строкаN”}]
Аналог .string.
Заносятся символы строки в оба байта последовательных слов.
.field значение[, размер]
Инициализирует подполя в константе размером 16 бит.
Для каждого подполя задаются значение и размер.
При последовательном применении константа заполняется справа налево.
Применяется для упаковки нескольких значений в одном месте.
.int значение1[,...,значениеN]
Заносит в 16-разрядные слова 16-разрядные целые числа из списка.
Есть выравнивание по границам слов.
.longзначение1 [,...,значениеN]
Заносит в 16-разрядные слова 32-разрядные целые числа из списка.
На одно значение 2 слова. Есть выравнивание по границам слов.
.xlongзначение1 [,...,значениеN]
То же, что .long.
Нет выравнивания по границам слов.
.word значение1 [,...,значениеN]
Заносит в 16-разрядные слова 16-разрядные числа из списка.
Есть выравнивание по границам слов.
.float значение1[,...,значениеN]
Заносит в 16-разрядные слова 32-битные константы с ПТ, IEEE с однократной точностью из списка.
На одно значение 2 слова. Есть выравнивание по границам слов.
.xfloat значение1 [,...,значениеN]
То же, что .flooat.
Нет выравнивания по границам слов.
Выравнивания
Мнемоника и синтаксис
Описание
.align [размер в словах]
Выравнивает SPC на границе, указанной размером в байтах, который должен быть степенью 2; по умолчанию – до границы
.bes [размер в битах]
Резервирует биты в текущем разделе. Метка указывает на конец резервируемого пространства
.space [размер в битах]
Резервирует биты в текущем разделе. Метка указывает на начало резервируемого пространства
Листинг
Мнемоника и синтаксис
Описание
.drlist
Допускает распечатку всех строк директив (по умолчанию).
.drnolist
Подавляет распечатку определенных строк директив.
.fclist
Позволяет распечатку ложного условного блока (по умолчанию).
.fcnolist
Подавляет распечатку ложного условного блока кода.
.length [длина страницы]
Устанавливает длину страницы листинга программы
.list
Повторный запуск распечатки программы
.mlist
Позволяет распечатку макрокоманд и блоков циклов(по умолчанию)
.mnolist
Подавляет распечатку макрокоманд и блоков циклов
.nolist
Останавливает распечатку программы
.option опция1 [, опция2,...]
Выбирает опции листинга; доступны опции - A,B,D,H,L,М,N,O,R,T,W и X
.page
Пропускает страницу в распечатке программы
.sslist
Позволяет расширенный листинг символов замены
.ssnolist (по умолчанию)
Подавляет расширенный листинг символов замены
.tab размер
Устанавливает размер знаков табуляции (в символах)
.title “строка”
Печатает заголовок в начале страницы листинга
.width [ширина страницы]
Устанавливает ширину страницы распечатки программы
Файлы
Мнемоника и синтаксис
Описание
.copy [“]имя файла[“]
Включает исходные инструкции из другого файла
.def символ1 [,...,символN]
Идентифицирует один или более символов, которые определены в текущем модуле и могут использоваться в других модулях
.global символ1 [,...,символN]
Идентифицирует один или более глобальных символов
.include [“]имя файла[“]
Включает исходные инструкции из другого файла
.mlib [“]имя файла[“]
Определяет библиотеку макрокоманд
.ref символ1 [,...,символN]
Идентифицирует один или более символов, используемых в текущем модуле, которые определены в другом модуле
Условная трансляция
Мнемоника и синтаксис
Описание
.break [четкое выражение]
Заканчивает трансляцию .loop, если четкое выражение - истина. При использовании конструкции .loop, конструкция .break - необязательна
.else
Транслирует блок кода, если (.if четкое выражение) является ложным. При использовании конструкции .if, конструкция .elsе необязательна
.elseif четкое выражение
Транслирует блок, если .if четкое выражение является ложным, а условие .elseif - истинно. При использовании конструкции .if , конструкция .elseif - необязательна
.endif
Заканчивает блок кода .if
.endloop
Заканчивает блок кода .loop
.if четкое выражения
Транслирует блок, если четкое выражение является истинным
.loop
[четкое выражение]
Начинает повторяемую трансляцию кодового блока; счетчик цикла определен четким выражением
Структуры
Мнемоника и синтаксис
Описание
.struct
Начало структуры. Это коллекция однотипных данных.
Для данных, используемых совместно в исходниках Ассемблера и языка С++.
.cstruct
Начало структуры с выравниванием и размещением.
Для данных, используемых совместно в исходниках Ассемблера и языка С++.
.endstruct
Конец структуры.
.union
Начало юниона. Это коллекция разнотипных данных.
Для данных, используемых совместно в исходниках Ассемблера и языка С++.
.endunion
Конец юниона.
.tag
Приписывает атрибуты структуры метке
Символы во время трансляции
Мнемоника и синтаксис
Описание
.asg [“]строка знаков[“],
символ замены
Назначает строку знаков символу замены
.eval четкое выражение,
символ замены
Исполняет арифметику на числовом символе замены.
.label символ
Определяет переместимую во время загрузки метку в разделе.
символ .set значение
Приравнивает значение символу.
Разные директивы
Мнемоника и синтаксис |
Описание |
|
.asmfunc |
Начало блока кода для функции | |
. cdecls [options,]"filename" [, "filename2"[, ...] |
Согласование дескрипторов для кодов C и ассемблера. | |
.clink [”имя раздела”] |
Допускает условную компоновку для текущего или указанного раздела | |
.emsg строка |
Посылает определяемые пользователем сообщения об ошибке устройству вывода; не производит объектный файл | |
.end |
Заканчивает программу | |
.endasmfunc |
Конец блока кода для функции | |
.mmsg строка |
Посылает определяемые пользователем сообщения устройству вывода | |
.newblock |
Снимает определение локальных меток | |
.sblock |
Создание раздела блокирования | |
.wmsg строка |
Посылает определяемые пользователем предупреждающие сообщения устройству вывода |