- •Трансляция программы
- •Компоновка программы
- •Система команд микропроцессора
- •32 Разрядные регистры:
- •Целочисленные арифметические команды
- •Особенности реализации микропроцессоров
- •Регистры: пользовательские и системные
- •Программа на языке ассемблера
- •Цепочечные команды
- •Осуществление переходов
- •Счётчик адреса команд
- •Безусловные переходы
- •Команда безусловного перехода jmp
- •Защищённый режим работы микропроцессора
- •Регистры управления
- •Регистры системных адресов
- •Сложные структуры данных
- •Доступ к элементам массива
- •Двумерные массивы
- •Структура
- •Сложные структуры данных 2
- •Методы работы со структурой
- •Объединение
- •Модульное программирование -1
- •Технологии программирования
- •Процедуры в языке ассемблера
- •Модульное программирование – 2 Передача аргумента через регистр
- •Передача аргументов через общую область памяти
- •Передача аргументов через стек
- •Связь ассемблера с языками высокого уровня
- •Макросредства языка ассемблера
- •Создание Windows приложений на ассемблере
- •Процесс производства микропроцессора
32 Разрядные регистры:
Eax
Ebx
Ecx
Edx
Esi
Edi
Esp
Ebp
16-разрядные регистры:
Ax
Bx
Cx
Dx
Si
Di
Sp
Bp
8-разрядные регистры:
Ah
Al
Bh
Bl
Ch
Cl
Dh
Dl
Сегментные регистры
Cs
Ds
Ss
Es
Gs
Fs
Операнд располагается в памяти позволяет реализовать 2 основных типа адресации: прямую и косвенную
Операнда может быть порт ввода/вывода. Микропроцессор поддерживает адресное пространство ввода/вывода, которое используется для доступа к устройствам ввода вывода. В качестве источника информации или получателя применяются регистры-аккумуляторы: eax, ax, al.
Целочисленные арифметические команды
Преобразование типов: cbw, cwd, cwde, movsx, movzx.
Двоичная арифметика
Сложение: add, abc, inc
Вычитание: sub, sbb, dec
Умножение: imul, mul
Деление: idiv, div
Изменение знака: neg
Десятичная арифметика
Коррекция сложения:
Коррекция вычитания: das, aas
Коррекция умножения: amm
Коррекция деления: aad
Вспомогательные команды: bswap
Прочие команды с арифметическим принципом действия: cmp, cmpxchg, setcc, xadd.
Логические команды:
Операция логического умножения: and 01,02 – команда выполняет поразрядно логическую операцию и результат записывается на место операнд 01
Операция логического сложения: or 01,02 – команда выполняет поразрядно логическую операцию ИЛИ и результат записывается на место операнды 01
Исключающая ИЛИ: xor 01,02
Операция Проверить: test 01,02 – команда выполняет поразрядно логическую операцию И над битами операндов. Состояние операндов остаётся прежним, изменяются только флаги zf, sf, pf. Это даёт возможность анализировать состояние отдельного операнда без изменения их состояния.
Операция логического отрицания: not 01 - команда выполняет поразрядное инвертирование каждого бита операнды.
Особенности реализации микропроцессоров
Hyper-Threading technology
Это метод оптимизирующий возможность процессора с одним ядром переключатся между приложениями. Процессорам с использованием такой технологии каждый физический процессор может хранить состояние сразу 2 потоков, что для ОС выглядит как наличие 2 логических процессоров. Физически у каждого из логических процессоров есть свой набор регистров и контроллер прерываний, а остальные элементы процессора являются общими.
Когда при исполнении потока одним из логических процессоров возникает пауза (в результате кэш-промаха, ошибки предсказателя ветвлений или ожидание результатов предыдущей операции), то управление передаётся потоку в другом логическом процессоре. Таким образом, пока один процессор ждёт, вычислительные ресурсы физического процессора используются для обработки другого процесса.
Однако даже Hyper-Threading не позволяет выполнять процессы в действительно параллельном режиме.
В 2х ядерных процессорах, где приложения работают действительно параллельно, заметно значительное повышение эффективности на уровне многопоточных приложений.
Модуль предсказаний условных переходов (BPU) – это устройство входящие в состав микропроцессоров, имеющий конвейерную архитектуру и определяющая направление ветвлений в исполняемой программе (предсказывающая будет ли выполнен условный переход).
Предсказание ветвлений позволяет осуществлять предварительную выборку инструкций и данных из памяти, а так же выполнять инструкции находящиеся после условного перехода, но до того как он будет выполнен.
Параллелизм и многоядерность – это наиболее эффективный способ увеличения вычислительной мощности процессора без увеличения энергопотребления. Объединение на одном кристалле нескольких ядер позволяет выполнить большее число операций за единицу времени при меньшем тепловыделении. Многопоточность каждого ядра даёт возможность одновременно обрабатывать несколько команд.
См. так же:
Фотолитография
