- •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
22. Флаг нуля zf
Используется для индикации равенства нулю результата операций с байтами или словами.
В этом случае флаг ZF становится равным I. Флаг находится в шестом разряде регистра флагов.
23. Флаг знака sf
Используется для индикации состояния, при котором старший бит результата однобайтовой или двухбайтовой операции равен 1.
Поскольку числа в системах, базирующихся на микропроцессоре 8088, представляются в стандартном дополнительном коде, флаг знака указывает знак результата операции.
Если флаг SF установлен в 1, то это значит, что результат - отрицательное число.
Если флаг SF равен 0, результат - положительное число.
Флаг знака SF расположен в седьмом разряде регистра флагов.
24 Флаг переполнения (OF) сигнализирует выход за допустимый диапазон результата арифметических операций над знаковыми операндами. Его значение определяется как (X XOR Y), где X суть перенос за разрядную сетку (то есть то, что заносится во флаг CF), а Y суть перенос в старший разряд. Таким образом, флаг OF предназначен для обнаружения переполнения при работе исключительно со знаковыми операндами — для беззнаковых эту работу выполняет флаг CF.
25. Флаг четности.
Флаг четности PF показывает, четно или нечетно число единиц результата. Определение четности - это метод контроля значения данных. Бит четности - это дополнительный бит, который контролирует значение других битов данных. Программа может использовать флаг четности для того, чтобы определить, должен ли быть установлен этот дополнительный бит. При чтении и записи в память IBM PC использует четность для контроля хранимых значений, но этот контроль четности полностью выполняется аппаратурой и не влияет на флаг четности.
Флаг четности устанавливается равным 1, если результат операции имеет четное число единиц, и устанавливается равным 0, если число единиц результата нечетно. При обычных арифметических и логических действиях флаг четности используется мало.
26. Флаг полупереносу.
AF – флаг полупереноса. Устанавливается в 1, если в результате предыдущей операции произошёл перенос или заём из третьего бита в четвёртый. Этот флаг используется автоматически командами двоично-десятичной коррекции. Например, после двух команд: mov eax, 15; inc eax; флаг AF будет равен единице. После последовательности команд: mov eax, 16; dec eax; флаг AF также будет равен единице
27. Флаг трассировки.
TF Trap Flag Флаг трассировки (или флаг ловушки). Он был предусмотрен для работы отладчиков в пошаговом выполнении, которые не используют защищённый режим. Если этот флаг установить в 1, то после выполнения каждой программной команды управление временно передаётся отладчику (вызывается прерывание 1).
28. Флаг напрямку.
DF Direction Flag Флаг направления. Контролирует поведение команд обработки строк. Если установлен в 1, то строки обрабатываются в сторону уменьшения адресов, если сброшен в 0, то наоборот.
29. Флаг переривание.
IF Interrupt Enable Flag Флаг разрешения прерываний. Если сбросить этот флаг в 0, то процессор перестанет обрабатывать прерывания от внешних устройств. Обычно его сбрасывают на короткое время для выполнения критических участков программы.
30 Модель памяти Tiny. Для этой модели создается один сегмент кода и один сегмент данных, причем суммарный размер этих сегментов не должен превышать 64 Кбайт. Эта модель памяти используется при создании загрузочных модулей с расширением имени com. Вы не можете использовать эту модель памяти при создании приложений Windows.
Tiny
Эта модель памяти используется в тех случаях, когда абсолютным критерием достоинства программы является размер ее загрузочного кода Как вы уже поняли, это минимальная из моделей памяти. Все четыре сегментных регистра (CS, DS, SS и ES) устанавливаются на один и тот же адрес, что дает общий размер кода, данных и стека, равный 64К. Используются исключительно ближние указатели. Программы с моделью памяти tuny могут быть преобразованы к формату .COM при компоновке с опцией /t.
31.Модель памяти Small. Для этой модели создается один сегмент кода и один сегмент данных, причем суммарный размер этих сегментов не должен превышать 128 Кбайт. Размер массивов данных, созданных с использованием этой модели, не должен превышать 64 Кбайт. Все указатели являются ближними. Эта модель памяти пригодна для приложений Windows. Все примеры приложений, приведенные в нашей книге, созданы с использованием модели памяти Small.
Small
Эта модель хорошо подходит для небольших прикладных программ. Сегменты кода и данных расположены отдельно друг от друга и не перекрываются, что позволяет иметь 64К кода программы и 64К данных и стека. Используются только ближние указатели.
32.Модель памяти Large. В этой модели памяти создается несколько сегментов кода и несколько сегментов данных. Размер массива данных по-прежнему не должен превышать 64 Кбайт. Для вызова функций и адресации данных используются 32-разрядные адреса в формате <селектор:смещение>.
Large
Модели large и huge применяются только в очень больших программах. Дальние указатели используются как для кода, так и для данных, что дает предельный размер 1 Мб для обоих.
33.Модель памяти Huge. Эта модель памяти во всем аналогична модели Large, но допускает работу с массивами неограниченного размера.
Huge
Дальние указатели используются как для кода, так и для данных. Turbo C++ обычно ограничивает размер статических данных 64К; модель памяти huge отменяет это ограничение, позволяя статическим данным занимать более 64К. Для выбора любой из этих моделей памяти вы должны либо воспользоваться соответствующей опцией меню интегрированной среды, либо ввести опцию при запуске компилятора командной строки.
34.Модель памяти Compact. При использовании этой модели памяти можно создать только один сегмент кода, но несколько сегментов данных. Размер массива данных не должен превышать 64 Кбайт. Для вызова функций, определенных внутри приложения, используется только компонента смещения. Для адресации данных применяются 32-разрядные адреса.
Compact
Лучше всего использовать в тех случаях, когда размер кода невелик, но требуется адресация большого объема данных. Ситуация, противоположная относительно модели Medium: дальние указатели используются для данных, но не для кода. Следовательно, код здесь ограничен 64К, а предельный размер данных - 1 Мб.