- •Архитектура эвм
- •Введение
- •Структура мпс
- •Основные понятия в архитектуре мпс
- •Архитектура фон Неймана
- •Гарвардская архитектура
- •Параллельная архитектура
- •Конвейерная архитектура
- •Суперскалярная архитектура
- •Архитектуры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
Распаковка данных
MMX-команды распаковки попарно объединяют элементы данных из обоих операндов в более длинные элементы выходного операнда. Этими командами можно пользоваться для увеличения числа значащих разрядов при вычислениях.
Мнемоника |
Описание |
PUNPCKHBW |
P UNPaCK High packed Byfes to Words Распаковывает старшие части приемника и источника в приемник. Происходит чередование в регистре назначения байт старшей половины источника с байтами старшей половины приемника. Байты старшей половины приемника MM0 распаковываются в нечетные байты приемника MM1. Байты старшей половины источника MM1 распаковываются в четные байты приемника MM0. |
PUNPCKLBW |
P UNPaCK Low packed Byfes to Words Распаковывает младшие части приемника и источника в приемник. Происходит чередование в регистре назначения байт младшей половины источника с байтами младшей половины приемника. Пример: |
PUNPCKHWD |
P UNPaCK High packed Words to Double words Распаковывает старшие части приемника и источника в приемник. Происходит чередование в регистре назначения слов старшей половины источника со словами старшей половины приемника. |
PUNPCKLWD |
P UNPaCK Low packed Words to Double words Распаковывает младшие части приемника и источника в приемник. Происходит чередование в регистре назначения слов младшей половины источника со словами младшей половины приемника. Пример: |
PUNPCKHDQ |
P UNPaCK High packed Double words to Quad words. Распаковывает старшие части приемника и источника в приемник. Происходит чередование в регистре назначения слов старшей половины источника со словами старшей половины приемника. . |
PUNPCKLDQ |
P UNPaCK Low packed Double words to Quad words. Распаковывает младшие части приемника и источника в приемник. Происходит чередование в регистре назначения двойных слов младшей половины источника с двойными словами младшей половины приемника. Пример: |
Арифметика
Cложение и вычитание
ММХ-команды сложения и вычитания работают с упакованными байтами и словами со знаком и без знака, а также с упакованными двойными словами со знаком. Они могут использовать как циклическую арифметику, так и арифметику с насыщением.
Входной операнд – регистр MMX или память.
Выходной операнд – регистр MMX.
Мнемоника |
Описание |
PADDB |
Packed ADDition Bytes Сложение упакованных байт. без насыщения (с циклическим переполнением) |
PADDW |
Packed ADDition Words Сложение упакованных слов. без насыщения (с циклическим переполнением). |
PADDD |
Packed ADDition Double words Сложение упакованных двойных слов без насыщения (с циклическим переполнением). |
PADDSB |
Packed ADDition with sighed Saturation Bytes Сложение упакованных байт со знаковым насыщением. |
PADDSW |
Packed ADDition with sighed Saturation Words Сложение упакованных слов со знаковым насыщением. |
PADDUSB |
Packed ADDition with Unsighed Saturation Bytes Сложение упакованных байт с беззнаковым насыщением. |
PADDUSW |
Packed ADDition with Unsighed Saturation Words Сложение упакованных слов с беззнаковым насыщением. Пример; Серым цветом выделено слово результата, в котором произошло насыщение. |
PSUBB |
Packed SUBtraction Bytes Вычитание упакованных байт без насыщения (с циклическим антипереполнением). |
PSUBW |
Packed SUBtraction Words Вычитание упакованных слов без насыщения (с циклическим антипереполнением). |
SUBD |
Packed SUBtraction Double words Вычитание упакованных двойных слов без насыщения (с циклическим антипереполнением). |
PSUBSB |
Packed SUBtraction with signed Saturanion Bytes Вычитание упакованных знаковых байт с насыщением. |
PSUBSW |
Packed SUBtraction with signed Saturanion Words Вычитание упакованных знаковых слов с насыщением. |
PSUBUSB |
Packed SUBtraction with Unsigned Saturanion Bytes Вычитание упакованных беззнаковых байт с насыщением. |
PSUBUSW |
Packed SUBtraction with Unsigned Saturanion Bytes Вычитание упакованных беззнаковых слов с насыщением. |
Умножение
ММХ-команды умножения попарно перемножают 16-разрядные слова операндов, что дает четыре 32-разрядных произведения. Все команды формируют результат по принципу циклической арифметики:
Мнемоника |
Описание |
PMULHW |
Packed Multiplay and return High Words Попарное умножение 4 знаковых слов источника (регистр MMX или память) на 4 знаковых слова приемника (регистр MMX). Результатом операции являются 4 32-разрядных произведения, при этом старшие разряды произведений сохраняются в 16-разрядных словах приемника, а младшие разряды произведений теряются. Пример: |
PMULLW |
Packed Multiplay and return Low Words Попарное умножение 4 знаковых слов источника (регистр MMX или память) на 4 знаковых слова приемника (регистр MMX). Результатом операции являются 4 32-разрядных произведения, при этом младшие разряды произведений сохраняются в 16-разрядных словах приемника, а старшие разряды произведений теряются. |
PMADDWD |
Packed Multiplay and ADD Word to Double word Попарное умножение 4 знаковых слов источника (регистр MMX или память) на 4 знаковых слова приемника (регистр MMX). Два двойных слова результатов умножения младших слов суммируются и записываются в младшее двойное слово операнда назначения. Два двойных слова результатов умножения старших слов суммируются и записываются в старшее двойное слово операнда назначения. Пример: |
Логика
Логические ММХ-команды выполняют поразрядные логические операции над всеми 64 битами своих операндов. Они реализуют логические операции И, ИЛИ, И-НЕ, исключающего ИЛИ:
Мнемоника |
Описание |
PAND |
Packed logical AND Логическое "И". |
PANDN |
Packed logical AND and Not Логическое "И-НЕ". |
POR |
Packed logical OR Исключающее "ИЛИ". |
PXOR |
Packed logical eXclusive OR Исключающее "ИЛИ". |
Сдвиги
ММХ-команды сдвига выполняют сдвиг каждого элемента данных (16-, 32- или 64-разрядного слова) в приемнике на величину, задаваемую источником. Среди команд сдвига выделяют команды арифметического и логического сдвига. При выполнении команд арифметического сдвига освобождающиеся разряды элементов заполняются знаком числа (старший бит) и могут принимать значение как 0, так и 1, в то время как при выполнении команд логического сдвига освободившиеся разряды заполняются нулями.
Мнемоника |
Описание |
PSLLW |
Packed Shift Left Logical Words Логический сдвиг влево упакованных слов приемника на количество бит, указанных в источнике, с заполнением младших бит нулями. |
PSLLD |
Packed Shift Left Logical Double words Логический сдвиг влево упакованных двойных слов приемника на количество бит, указанных в источнике, с заполнением младших бит нулями. |
PSLLQ |
Packed Shift Left Logical Quarter words Логический сдвиг влево упакованного учетвернного слова приемника на количество бит, указанных в источнике, с заполнением младших бит нулями. |
PSRLW |
Packed Shift Right Logical Words Логический сдвиг вправо упакованных слов приемника на количество бит, указанных в источнике, с заполнением старших бит нулями. |
PSRLD |
Packed Shift Right Logical Double words Логический сдвиг вправо упакованных двойных слов приемника на количество бит, указанных в источнике, с заполнением старших бит нулями. |
PSRLQ |
Packed Shift Right Logical Quarter words Логический сдвиг вправо упакованного учетверенного слова приемника на количество бит, указанных в источнике, с заполнением старших бит нулями. |
PSRAW |
Packed Shift Right Arithmetic Words Арифметический сдвиг вправо упакованных знаковых слов приемника на количество бит, указанных в источнике, с заполнением освобождаюшихся бит битами знаковых разрядов. |
PSRAD |
Packed Shift Right Arithmetic Double words Арифметический сдвиг вправо упакованных двойных знаковых слов премника на количество бит, указанных в источнике, с заполнением освобождаюшихся бит битами знаковых разрядов. |