- •Классификация эвм, краткие характеристики суперЭвм, мейнфреймов и мини-эвм
- •Настольная вычислительная система.
- •Классификация процессоров.
- •Регистровая модель процессора x86.
- •Режимы работы процессора 80386.
- •1.Реальный режим
- •2. Защищенный режим
- •Процессор х86: непосредственная и регистровая адресация.
- •Процессор х86: прямая адресация и прямая со сдвигом.
- •Процессор х86: косвенная адресация и косвенная со сдвигом.
- •Процессор х86: регистровая адресация и регистровая с масштабированием.
- •Адресация с масштабированием
- •Размещение в памяти многомерных статических массивов и доступ к их элементам.
- •Размещение в памяти многомерных динамических массивов и доступ к их элементам.
- •Формирование исполнительного адреса из трех и четырех составляющих.
- •Процессор х86: инструкции копирования данных.
- •Процессор х86: инструкции ввода-вывода.
- •Представление целых чисел: прямой код, дополнительный код, bsd.
- •Процессор х86: инструкции сложения, сложения с переносом и сложение чисел в формате bcd.
- •Процессор х86: инструкции вычитания, вычитания с заемом и вычитание чисел в формате bcd.
- •Процессор х86: инструкции умножения.
- •Процессор х86: инструкция деления и операции расширения знакового бита.
- •Процессор х86: поразрядные логические инструкции, использование масок.
- •Процессор х86: инструкции сдвига. Умножение и деление на константы.
- •Процессор х86: инструкции цикла. Ожидание готовности пу с тайм-аутом.
- •Процессор х86: безусловный переход и виды меток.
- •Процессор х86: вызов процедуры; рамка стека функции в с.
- •Процессор х86: инструкции условного перехода.
- •Процессор х86: строковый примитив копирования данных.
- •Процессор х86: строковые примитивы сравнения данных, сканирования данных и заполнения данных.
- •Сегменты реального и защищенного режима. Глобальная и локальная таблицы дескрипторов.
- •Селектор сегмента. Механизм получения линейного адреса в защищенном режиме процессора x86.
- •Механизм преобразования линейного адреса в физический в процессоре x86.
- •Преимущества виртуального отображения страниц и адресное пространство процесса.
- •Формат дескриптора сегмента в процессорах x86. Прикладные сегменты.
- •Формат вентиля вызова и исключения. Область применения вентилей вызова.
- •Основные исключения защиты; обработка исключения отсутствие страницы в памяти.
- •Уровни привилегий и кольца защиты защищенного режима.
- •Аппаратная поддержка многозадачности, формат сегмента состояния задачи - tss.
- •Карта ввода/вывода. Прямой доступ к портам ввода/вывода в Windows и Linux.
- •Методы управления пу
- •Использование буферов при проведении обменов
- •Принципы, заложенные в подсистему управления вводом-выводом в ос unix
- •Система управления данными (файловая система)
- •Логическая организация файлов
- •1. Последовательная организация.
- •2. Библиотечная организация.
- •Физическая организация файлов
- •1. Распределение при помощи цепочек блоков.
- •2. Распределение при помощи цепочек индексов
- •Дескриптор файла (дф)
- •Матрица управления доступом (МтУд)
- •Управление доступом в зависимости от класса пользователей
- •Копирование и восстановление информации
- •Свопинг и пейджинг
- •2. Стратегии подкачки страниц
- •3. Стратегии размещения
Процессор х86: регистровая адресация и регистровая с масштабированием.
Регистровая адресация
При регистровой операции операнд задается мнемоническим обозначением одного из регистров процессора. Исполнительный адрес при этом не формируется. Как правило, используются регистры общего назначения и индексные регистры: EAX, AX, AH, AL, …, EDX, DX, DH, DL, ESI, SI, EDI, DI. Использование указательных и сегментных регистров возможно, но не рекомендуется, так как малейшая ошибка при их использовании может привести к аварийному завершению программы.
Пример регистровой адресации:
MOV ECX, EDI
MOV DX, BX
MOV AL,AH
Адресация с масштабированием
Этот метод адресации полностью идентичен предыдущему, за исключением того, что с его помощью можно прочитать элемент массива слов, двойных слов или учетверенных слов, просто поместив номер элемента в регистр:
mov ax,[esi*2]+2
Множитель, который может быть равен 1, 2, 4 или 8, соответствует размеру элемента массива — байту, слову, двойному слову, учетверенному слову соответственно. Из регистров в этом варианте адресации можно использовать только EAX, EBX, ECX, EDX, ESI, EDI, EBP, ESP, но не SI, DI, BP или SP, которые можно было использовать в предыдущих вариантах.
Использования коэффициента масштабирования позволяет эффективно организовывать индексацию в массивах с 2-, 4- или 8-разрядными элементами. Масштабирование индексного регистра выполняется аппаратно, одновременно с вычислением адреса. Это исключает выполнение дополнительных операций сдвига или умножения.
Размещение в памяти многомерных статических массивов и доступ к их элементам.
Размещение в памяти многомерных динамических массивов и доступ к их элементам.
Формирование исполнительного адреса из трех и четырех составляющих.
В лекции
Эффективный адрес
При обращении к памяти (к данным), как и при формировании адреса перехода, процессор строитэффективный адрес, который может включать до трех компонентов. Такой сложный способ задуман для облегчения доступа к элементу массива: компонент BASE — базовый адрес массива, INDEX — номер элемента, DISPLACEMENT — смещение внутри элемента. Массив может состоять из байтов, слов, двойных и учетверенных слов — это учитывается масштабным коэффициентом SCALE (1, 2, 4 или 8). Компоненты эффективного адреса могут быть константами (в инструкции), находиться в регистрах и даже в памяти. Такая универсальность оборачивается значительными микроархитектурными издержками.
База, индекс и смещение могут использоваться в различных комбинациях: некоторые из компонентов могут быть пустыми. Коэффициент масштабирования может использоваться только совместно с индексом. Каждая возможная комбинация полезна для общего использования структур данных ассемблерными программами и программами языков высокого уровня.
Смещение
Одно смещение (без индекса и базы) указывает относительный адрес операнда. Такая форма адресации используется для доступа к статическим скалярным операндам. Смещение может иметь размер байта, слова или двойного слова.
База
Относительный адрес операнда указывается косвенно, в одном из регистров общего назначения, как для "смещенных" переменных.
База + Смещение
Регистр и смещение могут быть использованы вместе с двух случаях:
1. Индекс в статических массивах, элементы которых имеют размер, отличный от 2, 4 и 8 бит. Смещение в этом случае кодирует относительный адрес начала массива. Регистр содержит результаты вычислений, которые определяют смещение конкретного элемента внутри массива.
2. Доступ к полю записи. В этом случае регистр базы содержит адрес начала записи, а смещение представляет собой относительный адрес нужного поля.
Важным частным случаем использования такой комбинации (база + смещение) является доступ к параметрам в записи активации процедуры. Запись активации процедуры - это кадр стека, созданный при входе в процедуру. В данном случае, в качестве базового регистра удобнее всего использовать EBP, т.к. при его использовании автоматически выбирается сегмент стека. Такой способ доступа к параметрам процедуры обеспечивает компактное кодирование команды.
( Индекс * Коэффициент масштабирования ) + Смещение
Эта комбинация обеспечивает наиболее эффективное индексирование в статических массивах, элементы которых имеют размер 2, 4 или 8 бит. Смещение указывает адрес начала массива, а индексный регистр содержит порядковый номер нужного элемента. При этом процессор автоматически преобразует номер элемента в его смещение относительно начала массива, используя коэффициент масштабирования.
База + Индекс + Смещение
Совместное использование двух регистров применяется для поддержки работы с двумерными массивами (смещение содержит адрес начала массива) или для доступа к отдельным экземплярам массива записей (смещение содержит относительный адрес поля внутри записи).
База + ( Индекс * Коэффициент масштабирования ) + Смещение
Такая комбинация обеспечивает эффективное индексирование в двумерном массиве, если его элементы имеют размер 2, 4 или 8 битов.