- •1.Способи адресації
- •3.Пряма адресація пам'яті. .
- •6. Сторінкова пам'ять.
- •7.Сегмента адресація.
- •8. Опосередкована адресація з масштабуванням
- •9.Адресація по базі з сувом.
- •10.Адресація по базі з індексуванням
- •11. Адресація по базі з індексуванням та масштабуванням
- •12.Вирівнювання даних та коду.
- •13. Регістри загального призначення
- •14. Сегментні регістри.
- •15.Індексні регістри.
- •16. Спеціальні регістри
- •17. Флаги ознак.
- •18. Регистры управления (Control Registers)
- •19.20. Стек, регітсри стека.
- •22. Флаг нуля zf
- •23. Флаг знака sf
- •25. Флаг четности.
- •26. Флаг полупереносу.
- •27. Флаг трассировки.
- •28. Флаг напрямку.
- •29. Флаг переривание.
- •35. Арифметические команды
- •36. Команди блочної обробки даних
- •37. Команды ввода и вывода
- •38. Команды управления флагами
- •39. Команда пересылки данных: возможности и ограничения
- •40. Команди керування
- •41. Стек математичного співпроцесора
- •42.Команди пересилки співпроцесора
- •43. Арифметические команды сопроцессора
- •46. Різновиди чисел
- •47. Способи округлення
- •48.Трансцендентні команди
- •49. Команди завантаження констант співпроцесора
- •50. Порівняння чисел з плаваючою комою
- •51. Структура жёсткого диска
- •58. Структура каталогов Linux
- •59. Структура ufs
- •60. Суперблок. Ufs
- •61. Индексный дескриптор ufs
- •62. Основні механізми передачі параметрів
- •63. Основні місця передачі параметрів
- •64. Вкладені обчислення
- •65. Різновиди комбінацій сегментів
- •66. Порядок завантаження сегментів, директиви
- •67. Оптимізація обчислень
- •68. Математична оптимізація
- •69. Алгоритмічна оптимізація
- •70 .Низькорівнева оптимізація
- •71. Основні методи алгоритмічної оптимізації
- •72. Основні рекомендації низького рівня
- •74. Особенности архитектуры процессоров Pentium Pro и Pentium II
- •76. Конвеєр fpu
- •77. Принципи роботи кешу
- •79. Регистры управления (Control Registers)
- •80. Індексні регістри дескрипторів
- •81. Віртуалізація пам’яті
- •82. Переривання, маскування та обробка.
- •84. Кеш з зворотнім записом
- •85. Кеш з відкладеним записом
- •86. Наскрізний кеш
- •87. Кеш читання
- •88. Повністю асоціативний кеш
- •91. Структура кешу
- •92. Теги, призначення
- •93. Конвеєри mmx та sse
15.Індексні регістри.
Индексный регистр — регистр процессора в современных ЦПУ, используемый для автоматического изменения адреса операнда во время исполнения программы.
Общее назначение
Обычно индексный регистр используется для выполнения операций с индексными массивами.
Индексный регистр часто используется для косвенной адресации. Перед выполнением инструкции любая её часть, обычно адресная, может быть модифицирована прибавлением числа, содержащегося в индексном регистре. Например, исполнительный адрес в современном процессоре может формироваться как сумма базового, индексного и относительного адресов, хранящихся в индексном регистре.
Количество индексных регистров в ЦПУ может достигать нескольких десятков. Их быстродействие, обычно, на порядок выше быстродействия основной оперативной памяти. Индексный регистр повышают производительность ЦПУ, уменьшет объём программы, осуществляя автоматическую переадресацию одновременно с другими операциями.
Индексные регистры стали стандартной частью процессора во втором поколении компьютеров (примерно 1955-1964 годах).
Индексные регистры в процессорах архитектуры x86
В архитектуре x86 индексные регистры называются SI и DI. При базово-индексной адресации их содержимое может суммироваться с содержимым регистра BX.
Индексный регистр-источник SI применяется в качестве указателя адреса байта или слова в таких строковых командах, как LODS (загрузить строку), CMPS (сравнить строку), MOVS (переслать строку).
Индексный регистр-приёмник DI используется как указатель назначения для адреса байта или слова в строковых командах, таких как SCAS (сканировать строку), CMPS, MOVS, STOS (записать строку).
16. Спеціальні регістри
Данные из специального регистра источника поступают в регистр GRA через ассемблер регистров (ВЕА) или расширенный ассемблер регистров (ВЕЕА). Информация из специальных регистров (за исключением GRSPTL) не может быть передана в GRB. Запись данных в специальные регистры производится через ассемблер данных по шинам средств (ШИН СРЕД).
При обращении к специальным регистрам существуют определенные ограничения в зависимости от назначения регистра. Например, в некоторые регистры нельзя записывать информацию, а в других нельзя осуществлять контрольное считывание после записи. Для формирования адресов специальных регистров используется информация из регистра микрокоманд GRC, из регистра GRP, из селекторных каналов при выполнении разделенного цикла и от переключателей на пульте инженера при индикации с его помощью содержимого необходимых регистров.
17. Флаги ознак.
32-разрядный регистр EFLAGS содержит некоторые флаги состояния и управления процессором, а также некоторые системные флаги (см. рисунок). После инициализации процессора, регистр флагов содержит значение 00000002h, его биты 1, 3, 5, 15 и 22..31 зарезервированы и программы не должны их использовать. Некоторые флаги регистра EFLAGS можно изменять непосредственно, при помощи специальных команд (они описаны ниже). Для загрузки значений флагов в регистр EFLAGS и считываний из него предназначены команды LAHF, SAHF, PUSHF, PUSHFD, POPF и POPFD. Значение любого флага всегда можно проверить, для этого нужно сохранить содержимое регистра EFLAGS в стек, затем извлечь его в регистр общего назначения и проверить командами TEST и BT. Изменить значения флагов можно путём загрузки его через стек из регистра общего назначения, но некоторые флаги таким образом изменить нельзя (например, двухбитовое поле IOPL в защищённом режиме). Регистр EFLAGS автоматически сохраняется процессором в стек при дальних вызовах и восстанавливается из него при дальних возвратах; при переключении задач процессор сохраняет содержимое EFLAGS в TSS старой задачи и загружает значение из TSS новой.
До появления 32-разрядного процессора Intel386, регистр флагов был 16-разрядным и назывался FLAGS. Начиная с процессора Intel386, регистр флагов - 32-разрядный и называется EFLAGS (Extended FLAGS - расширенный FLAGS); при этом регистр FLAGS является младшей половиной регистра EFLAGS, все флаги, которые используют процессоры 8086 и Intel286 находятся как раз в младшей половине EFLAGS (т.е. во FLAGS), поэтому можно рассматривать регистр флагов как единый и называть его EFLAGS. Говоря о флагах используют два термина флаг установлен - это значит, что бит, который соответствует этому флагу, принял значение 1; флаг сброшен - значение 0. Флаги встречаются не только в регистре EFLAGS, в 32-разрядном процессоре есть много регистров, целиком или частично состоящих из флагов - регистры управления, отладки, тестирования, MSR и т.д., поэтому термины "сброс" и "установка" флага употребляются везде, где идёт речь об изменении флагов.
Формат регистра флагов EFLAGS