- •Организация и функционирование эвм и систем
- •1. Основные понятия архитектуры и организации эвм
- •1.1. Состав электронных вычислительных машин (эвм)
- •1.2. Виды (классы) эвм
- •1.3. Принцип программного управления и машина фон Неймана
- •1.4. Понятия архитектуры, организации и реализации эвм
- •1.5. Многоуровневая организация эвм
- •1.6. Понятие семантического разрыва между уровнями
- •1.7. Организация аппаратных средств эвм
- •1.8. Типовая структура эвм с шинной организацией
- •2. Организация процессора и основной памяти вм
- •2.1. Типовая структура процессора и основной памяти
- •2.2. Основной цикл работы процессора
- •2.3. Организация процессора и памяти в Intel 8086
- •2.4. Программно доступные регистры процессора
- •2.5. Организация стека в Intel 8086
- •2.6. Распределение оперативной памяти в Intel 8086 для ms dos
- •2.7. Организация выполняемых программ в ms dos
- •2.8. Режимы адресации памяти в процессоре Intel 8086
- •5. Адресация по базе
- •6. Косвенная адресация с масштабированием
- •7. Адресация по базе с индексированием и масштабированием
- •2.9. Краткая характеристика системы команд процессоров Intel 80х86
- •2.11. Организация прерываний в процессоре Intel 80x86
- •2.12. Управление выполнением команд в эвм.
- •2.13. Способы формирования управляющих сигналов
- •2.14. Способы кодирования микрокоманд
- •2.15. Компьютеры с сокращенным набором команд
- •3. Организация памяти в эвм
- •3.1. Назначение и основные характеристики памяти
- •3.2. Основные среды хранения информации
- •3.3. Типы запоминающих устройств
- •3.3.1. Память с произвольной выборкой
- •3.3.2. Постоянные запоминающие устройства
- •3.3.3. Ассоциативные запоминающие устройства (азу)
- •3.4. Иерархическая система памяти
- •3.5. Организация кэш-памяти.
- •3.6. Организация виртуальной памяти
- •3.7. Организация виртуальной памяти в Intel 80386 и более старших моделях.
- •3.8. Защита памяти в процессоре Intel 80386
- •3.9. Организация работы с внешней памятью
- •4. Системные и локальные шины
- •4.1. Общие положения и требования к шинам
- •4.2. Основные виды, характеристики и параметры шин
- •4.3. Стандарты шин
- •5. Организация системы ввода-вывода в эвм
- •5.1. Назначение и основные требования к системе ввода-вывода эвм
- •5.2. Архитектура систем ввода-вывода
- •5.3. Способы выполнения операции передачи данных
- •Рис 5.3
- •5.4. Структуры контроллеров ву для различных режимов передачи данных
- •5.4.2. Контроллер обмена по программному прерыванию (опп)
- •5.5. Программные средства управления вводом-выводом
- •5.6. Состав и реализация устанавливаемого драйвера символьного типа
- •Приложения
- •1. Система команд процессора i80x86
- •1. Команды передачи данных
- •2. Команды арифметических операций над целыми числами
- •3. Логические команды
- •4. Сдвиговые команды
- •5. Команды передачи управления
- •6. Команды обработки строк
- •7. Команды работы с флагами
- •8. Команды математического сопроцессора fpu
- •9. Команды mmx (MultiMedia eXtension) расширения
- •10. Расширение amd 3dNow!
- •2. Краткое введение в программирование на языке Ассемблера
- •1. Директивы задания данных
- •2. Директивы сегментации программы
- •3. Директивы группирования.
- •4. Порядок размещения сегментов.
- •5. Директивы ограничения используемых команд.
- •1 97376, С.-Петербург, ул. Проф. Попова, 5.
9. Команды mmx (MultiMedia eXtension) расширения
Эта группа команд появилась, начиная с процессора i586 (PentiumP54C), ориентирована на обработку мультимедийных приложений и предназначена для повышения эффективности выполнения программ, работающих с большими потоками данных (большими массивами целых чисел) по несложным алгоритмам (обработка графики и видеоизображений, синтез и обработка звука).
MMXрасширение включает в себя дополнительные регистры, типы данных и команды, ориентированные на одновременную обработку нескольких целых чисел.
Регистры ММХ
Расширение ММХ использует восемь 64-битных регистра MM0 –MM7, физически размещающихся в поле мантиссы восьми регистровFPUR0 –R7. При записи числа в ММiполе экспонентыRi[64-79] заполняется единицами. Кроме того, полеTOPрегистраSRFPUи весь регистр теговTWобнуляются. Поэтому нельзя одновременно пользоваться командамиFPUи командами ММХ. При необходимости этого следует пользоваться командамиFSAVE/FRSTORпри переходе от командыFPUк ММХ и обратно для сохранения и восстановления регистровFPUили ММХ соответственно.
Типы данных
Расширение ММХ использует 4 новых типа данных:
Учетверенное слово (64-битное число).
Упакованные двойные слова (два 32-битных двойных слова, упакованных в 64-битное данное).
Упакованные слова (четыре 16-битных слова, упакованных в 64-битное данное).
Упакованные байты (восемь байт, упакованных в 64-битное данное).
Отличительные особенности обработки данных:
1. Перемещение данных в память или в регистры осуществляется в упакованном виде, а логическая или арифметическая обработка выполняются над каждым элементом (полем) отдельно.
2. Арифметические операции в ММХ используют специальный способ обработки переполнения, который называется «насыщение». Если результат операции больше (меньше) максимального (минимального) значения соответствующего типа данных, то его полагают равным этому максимальному (минимальному) значению. Так, при операциях с цветом насыщение позволяет сохранять чисто белый цвет при переполнении и
чисто черный при антипереполнении, а обычная арифметика привела бы к инверсии цвета.
Команды ММХ
(Кроме пересылок все остальные команды начинаются с буквы P.)
Пересылка
MOVDd,s– пересылка двойных слов.
Если приемник – регистр ММХ, двойное слово записывается в его младшую половину (биты 0 – 31), если источник – регистр ММХ, в приемник записывается младшее двойное слово этого регистра.
MOVQd,s– пересылка учетверенных слов.
Преобразование типов (упаковка со знаковым насыщением).
PACKSSWBd,s– упаковывает и насыщает слова со знаком в байты.
Четыре слова, находящиеся в приемнике (регистре ММХ), копируются в четыре младших байта приемника, а четыре слова источника (регистр ММХ или переменная) копируются в старшие четыре байта приемника. Если значение какого-либо слова больше 127 или меньше -128, в байт помещается число +127 или –128 соответственно.
PACKSSDWd,s– упаковывает и насыщает двойные слова со знаком в слова.
Аналогично, два двойных слова из приемника копируются в два младших слова приемника, а два двойных слова из источника копируются в старшие два слова приемника.
Распаковка и объединение старших элементов.
PUNPCKHBW d,s– распаковка байтов и объединение в слова,
PUNPCKHWD d,s– распаковка слов и объединение в двойные слова,
PUNPCKHDQ d, s – распаковка двойных слов и объединение в учетверенное слово.
Команды распаковывают старшие элементы источника (регистр ММХ или переменная) и приемника (регистр ММХ) и записывают их в приемник через один.
П
ример:
Арифметические операции.
PADDB/W/D d, s – сложение отдельных байтов/слов/двойных слов без учета переноса
PADDSB/Wd,s– сложение с насыщением
PADDUSB/Wd,s– сложение без учета знака с насыщением
Аналогичные команды имеются для операций вычитания (PSUBB/W/D, PSUBSB/W, PSUBUSB/W).
PMULHWd,s– умножение с фиксацией старших слов результатов
PMULLWd,s– умножение с фиксацией младших слов результатов
Эти команды умножают каждое из 4 слов источника на соответствующее слово приемника. Затем старшее (младшее) слово каждого из результатов записывается в соответствующую позицию приемника.
PMADDWDd,s– умножение со сложением.
Каждое из четырех слов источника умножается на соответствующее слово приемника. Произведения двух старших пар слов складываются и их сумма записывается в старшее двойное слово приемника, а сумма произведений двух младших пар слов записывается в младшее двойное слово приемника (команда применяется при реализации алгоритмов фильтрации изображений и т.п.).
Сравнения.
PCMPEQB/PCMPEQW/PCMPEQD d,s– сравнение на равенство
Команды сравнивают отдельные байты/слова/двойные слова источника и приемника и в случае их равенства соответствующий элемент приемника заполняется единицами, а иначе – нулями.
PCMPGTB/PCMPGTW/PCMPGTDd,s– сравнение на больше .
Команды аналогичны предыдущим, но заполнение приемника единицами происходит, если элемент приемника больше элемента источника.
Логические команды.
PANDd,s– логическое И
PANDNd,s– логическое НЕ-И (штрих Шеффера)
PORd,s– логическое ИЛИ
PXORd,s– логическое исключающее ИЛИ
Команды выполняют побитовые логические операции над источником и приемником и сохраняют результирующие биты в приемнике.
