
- •Организация и функционирование эвм и систем
- •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.
10. Расширение amd 3dNow!
В процессорах AMD, начиная сAMD3D, появилось расширение ММХ-команд для обработки как целых, так и пары упакованных 32-битных вещественных чисел:
- дополнительный тип данных: – упакованные 32-битные вещественные числа;
- дополнительный набор команд над этими данными (начинаются с PF: P – это MMX, а F –- float);
- дополнительный набор команд над обычными ММХ-типами данных (упакованными целыми числами).
Дополнительный набор команд расширения AMD 3DNow! включает:
- команды преобразования упакованных целых чисел в упакованные вещественные и обратно;.
- команды сложения, вычитания, сравнения и умножения упакованных вещественных чисел;
- команды вычисления среднего арифметического для упакованных 8-битных целых чисел без знака;
- команды деления и вычисления квадратного корня по итерационным формулам;
- некоторые другие команды.
11. Команды потокового расширения SSE, SSE2
Команды потокового расширения SSE(StreamingSIMDExtension) появились в процессорах фирмыIntel, начиная сPentiumIII, для дополнения набора групповых операций над упакованными целыми числами и выполнения групповых операций над упакованными 32-битными вещественными числами:
- обработка групп целых чисел, упакованных в 64- и 128-битные слова;
- обработка одной пары вещественных чисел одинарной (32 бит) или двойной (64 бита) точности;
- обработка 4 пар вещественных чисел одинарной или 2 пар – двойной точности.
Команды реализуются на дополнительном блоке XMMиз восьми 128-битных регистров, названных ХММ0-ХММ7. При выполненииSSE– команд традиционное оборудованиеFPUне используется, что позволяет эффективно смешивать их с командамиFPU. Дальнейшее развитие технологииSSEв процессорахPentium4 вылилось в набор командSSE2, включающих 271 команду, для выполнения различных арифметических и логических операций с обработкой за 1 такт до 4 32-битных чисел с плавающей запятой, упакованных в 128-битное слово.
2. Краткое введение в программирование на языке Ассемблера
Ассемблер – машинно-ориентированный язык, предназначенный для написания программ, наиболее эффективных по времени и потреблению ресурсов, или обеспечивающих расширенные функциональные возможности по использованию ресурсов, недоступные из языков высокого уровня. Обычно он используется для написания относительно коротких программ или фрагментов кода, включаемых в программы на языках высокого уровня.
Особенностями ассемблера по сравнению с языком машинных команд являются:
символическое наименование операций и операндов;
отсутствие привязки к конкретным адресам памяти;
возможность специализации программ с помощью макросредств.
Процесс подготовки, трансляции и выполнения ассемблерной программы можно пояснить с помощью схемы,
приведенной на рис. П2.1.
Рис. П2.1
Дальнейшее изложение ориентировано на использование ассемблеров Intel80X86 –MASMиTASM.
Формат оператора ассемблера
В ассемблере различают два вида форматов:
формат исполняемого оператора имеет вид
[метка:] операция операнд(ы)] [ ; комментарий]
формат директивы имеет вид
[имя] директива [аргумент(ы)] [ ; комментарий]
Указанные поля форматов имеют следующий смысл:
- метка/имя символически задает адрес данной команды в исполняемом файле /адрес директивы в исходном тексте;
- операция символически задает дейстие, выполняемое над операндами при выполнении программы;
- директива символически задает действие, выполняемое над аргументами при трансляции программы и генерации объектного файла.
- операнды – имена, числа, символы, участвующие в операции (может быть 0/1/2 операнда);
- аргументы – имена, числа, символы, используемые в директиве (число аргументов не ограничено);
- комментарий – пояснение к тексту программы, при трансляции не рассматривается.
Директива (иногда называется псевдокоманда) ассемблера выполняется на этапе трансляции исходного текста программы в объектный файл, исполняемых машинных команд не порождает.
Исполняемый оператор в процессе трансляции исходного текста порождает машинные команды, которые выполняются на этапе выполнения программы.
Директивы ассемблера