- •Цикл команды процессора.
- •2. Методы повышения производительности. Кэш-память. Конвейеризация. Суперскалярные процессоры.
- •Микроархитектура Intel Pentium 4.
- •4. Регистры и режимы адресации процессора Intel Pentium 4.
- •5. Язык Ассемблер. Области применения Ассемблера. Программы на ассемблере. Общая схема трансляции программы.
- •6. Команды пересылки данных. Косвенная адресация памяти. Команды работы со стеком.
- •7. Команды сложения и вычитания. Команды умножения и деления. Команды распространения знака.
- •8. Команды работы с битами. Логические команды. Операции сдвига.
- •9. Команды передачи управления. Команда безусловного перехода. Команды условного перехода.
- •10. Команды вызова процедур. Команды организации циклов.
- •11. Работа с массивами. Одномерные массивы, двумерные статические массивы.
- •12. Работа с массивами. Двумерные динамические массивы.
- •13. Команды обработки строк.
- •14. Консольные приложения: api-функции для работы с консольными приложениями.
- •15. Обработка событий в консольных приложениях.
- •17. Структура gui-приложения. Регистрация класса окон.
- •21. Оптимизация: цель, критерии, требования, методика, средства.
- •22. Алгоритмическая оптимизация: временная сложность, сравнение алгоритмов, примеры.
- •23. Способы измерения времени. Применение рекурсии. Примеры.
- •24. Программная оптимизация: связь с архитектурой процессора, приемы оптимизации, векторизация, оптимизация циклов.
8. Команды работы с битами. Логические команды. Операции сдвига.
Команды работы с битами.
bsf результат,источник
Для проверки наличия единичных битов в операнде источник. Команду bsf используют при работе на битном уровне для определения позиции в операнде крайних справа единичных битов.
bsr результат,источник
Проверка наличия единичных битов в операнде источник. Команду bsr используют при работе на битном уровне для определения позиции крайних слева единичных битов.
bt источник,индекс
Извлечение значения заданного бита в флаг cf. Команду bt используют для определения значения конкретного бита в операнде источник.
btr источник,индекс
Извлечение значения заданного бита в флаг cf и изменение его значения на нулевое.
bts источник,индекс
Извлечение значения заданного бита операнда в флаг cf и установка этого бита в единицу.
btc источник,индекс
Извлечение значения заданного бита в флаг cf и изменение его значения в операнде на обратное.
Логические команды.
and приемник,источник
Операция логического умножения для операндов приемник и источник размерностью байт, слово или двойное слово. Команда and используется для логического умножения двух операндов. Результат операции помещается по адресу первого операнда. Эту команду удобно использовать для принудительной установки или сброса определенных битов операнда.
or приемник,маска
Операция логического ИЛИ над битами операнда назначения. Команду or можно использовать для работы с операндами на уровне битов. Типичное использование команды — установка определенных разрядов первого операнда в единицу.
xor приемник,источник
Операция логического исключающего ИЛИ над двумя операндами размерностью байт, слово или двойное слово. Команда xor используется для выполнения операции логического исключающего ИЛИ двух операндов. Результат операции помещается в первый операнд. Эту операцию удобно использовать для инвертирования или сравнения определенных битов операндов.
not источник
Инвертирование всех битов операнда источник. Команду not можно использовать для изменения байта, выполняющего роль некоторого флага, с целью отслеживания некоторых логических условий в программе.
Операции сдвига.
shl операнд,количество_сдвигов
Логический сдвиг операнда влево. Команда shl используется для сдвига разрядов операнда влево.
shr операнд,кол-во_сдвигов
Логический сдвиг операнда вправо. Команда shr используется для логического сдвига разрядов операнда вправо.
sal операнд,количество_сдвигов
Арифметический сдвиг операнда влево.
sar операнд,количество_сдвигов
Арифметический сдвиг операнда вправо.
9. Команды передачи управления. Команда безусловного перехода. Команды условного перехода.
Команды передачи управления.
Команда безусловного перехода.
jmp метка
Используется в программе для организации безусловного перехода как внутри текущего сегмента команд, так и за его пределы. При определенных условиях в защищенном режиме работы команда jmp может использоваться для переключения задач. Команду jmp применяют для осуществления ближних и дальних безусловных переходов без сохранения контекста точки перехода.
Команды условного перехода.
Команды для работы с беззнаковыми числами: JA/JNBE – переход, если больше; JAE/JNB/JNC - переход, если больше или равно; JB/JNAE/JC - переход, если меньше; JBE/JNA - переход, если меньше или равно.
Команды для работы со знаковыми числами: JG/JNLE - переход, если больше; JGE/JNL - переход, если больше или равно; JL/JNGE - переход, если меньше; JLE/JNG - переход, если меньше или равно; JNS - переход, если больше нуля; JS - переход, если меньше нуля.
Команды, общие для знаковых и беззнаковых чисел: JE/JZ - переход, если равно переход, если ноль; JNE/JNZ - переход, если не равно переход, если не ноль.