- •Архитектура эвм
- •Введение
- •Структура мпс
- •Основные понятия в архитектуре мпс
- •Архитектура фон Неймана
- •Гарвардская архитектура
- •Параллельная архитектура
- •Конвейерная архитектура
- •Суперскалярная архитектура
- •Архитектуры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
Сравнения
ММХ-команды сравнения попарно сравнивают элементы данных (байты, 16- или 32-разрядные слова) входного и выходного операндов. В зависимости от результата сравнения соответствующий элемент данных выходного операнда заполняется нулями либо единицами. Эти команды, как и все остальные ММХ-команды, не устанавливают флагов (признаков). В свою очередь, они делятся на две группы: команды обычного сравнения (равно или не равно) и команды сравнения по величине (больше или меньше). Операции сравнения проводятся для упакованных байтов, слов и двойных слов.
Мнемоника |
Описание |
PCMPEQB |
Packed CoMParE for Equal Byte Попарное сравнение (на равенство) упакованных байт. Все биты элемента результата будут единичными (true) при совпадении соответствующих элементов операндов и нулевыми (false) - при несовпадении. |
PCMPEQW |
Packed CoMParE for Equal Word Попарное сравнение (на равенство) упакованных слов. Все биты элемента результата будут единичными (true) при совпадении соответствующих элементов операндов и нулевыми (false) - при несовпадении. |
PCMPEQD |
Packed CoMParE for Equal Double word Попарное сравнение (на равенство) упакованных двойных слов. Все биты элемента результата будут единичными (true) при совпадении соответствующих элементов операндов и нулевыми (false) - при несовпадении. |
PCMPGTB |
Packed CoMParE for Greater Than Byte Попарное сравнение (по величине) упакованных знаковых байт. Все биты элемента результата будут единичными (true), если соответствующий элемент приемника больше элемента источника, и нулевыми (false) в противном случае. |
PCMPGTW |
Packed CoMParE for Greater Than Word Попарное сравнение (по величине) упакованных знаковых слов. Все биты элемента результата будут единичными (true), если соответствующий элемент приемника больше элемента источника, и нулевыми (false) в противном случае. |
PCMPGTD |
Packed CoMParE for Greater Than Double word Попарное сравнение (по величине) упакованных знаковых двойных слов. Все биты элемента результата будут единичными (true), если соответствующий элемент приемника больше элемента источника, и нулевыми (false) в противном случае. |
Дополнительные команды
Сейчас мы рассмотрим еще одну группу команд, которые трудно отнести к какому-либо определенному типу, но которые являются весьма полезными при разработке программ.
Мнемоника |
Описание |
PAVGB |
Packed AveraGe Bytes Попарно вычисляет средние значения упакованных чисел, представленных байтами. Значения операндов интерпретируются как беззнаковые целые числа. В качестве источника могут выступать ММХ-регистр или 64-разрядная ячейка памяти, приемником служит один из ММХ-регистров. |
PAVGW |
Packed AveraGe Words Попарно вычисляет средние значение упакованных чисел, представленных словами. Значения операндов интерпретируются как беззнаковые целые числа. В качестве источника могут выступать ММХ-регистр или 64-разрядная ячейка памяти, приемником служит один из ММХ-регистров. |
PEXTRW |
Packed EXTRact Word Извлекает одно из 4 упакованных слов входного операнда. Команда имеет три аргумента: источние, приемник и маска. Младшие два бита маски задают в источнике номер упакованного слова, подлежащего извлечению. Извлеченное слово сохраняется в младшем слове приемника. Приемником этой команды может выступать один из 32-разрядных регистров общего назначения. Старшее слово приемника обнуляется. |
PINSRW |
Packed INSeRt Word Вставляет слово в одно из 4 упакованных слов приемника. Приемником является один из ММХ-регистров, а источником может выступать один из 32-разрядных регистров общего назначения, младшее слово которого будет вставлено в приемник. Номер позиции, куда помещается операнд, определяется младшими двумя битами маски и может принимать значения от 0 до 3; |
PMAXUB |
Packed MAXimum Unsigned integer Byte Извлекает максимальное значение из каждой пары упакованных элементов в приемнике и источнике. Операция выполняется над беззнаковыми байтами . В качестве приемника может выступать ММХ-регистр, а в качестве источника — ММХ-регистр или 64-разрядная ячейка памяти. |
PMAXSW |
Packed MAXimum Signed integer Word Извлекает максимальное значение из каждой пары упакованных элементов в приемнике и источнике. Операция выполняется над знековыми словами. В качестве приемника может выступать ММХ-регистр, а в качестве источника — ММХ-регистр или 64-разрядная ячейка памяти. |
PMINUB |
Packed MINimum Unsigned integer Byte Извлекает минимальное значение из каждой пары упакованных элементов в приемнике и источнике. Операция выполняется над беззнаковыми байтами . В качестве приемника может выступать ММХ-регистр, а в качестве источника — ММХ-регистр или 64-разрядная ячейка памяти. |
PMINSW |
Packed MINmum Signed integer Word Извлекает минимальное значение из каждой пары упакованных элементов в приемнике и источнике. Операция выполняется над знековыми словами. В качестве приемника может выступать ММХ-регистр, а в качестве источника — ММХ-регистр или 64-разрядная ячейка памяти. |
PMOVMSKB |
Packed MOVe MaSK Byte to integer Формирует байтовую маску, содержащий знаковые биты 8 байтов, содержащихся в источнике, в качестве которого может выступать один из ММХ-регистров. Примником является 32-разрядный регистр общего назначения, младший байт которого будет содержать результат. Эта команда очень удобна для формирования условных ветвлений в программах. |
PSADBV |
Packed Sum of Absolute Differences Вычисляет сумму абсолютных значений разностей значений беззнаковых байтов источника и приемника. Источником могут выступать ММХ-регистр или 64-разрядная ячейка памяти, а приемником — один из ММХ-регистров. |