Скачать презентацию Управляющие регистры Регистр CR 0 WP — разрешение Скачать презентацию Управляющие регистры Регистр CR 0 WP — разрешение

Лекция 3 по программированию и алгоритмизации.pptx

  • Количество слайдов: 34

Управляющие регистры Регистр CR 0 WP - разрешение защиты от записи на уровне привилегий Управляющие регистры Регистр CR 0 WP - разрешение защиты от записи на уровне привилегий супервизора. AM - разрешение контроля выравнивания. NW - запрет сквозной записи кэша и циклов аннулирования. CD - запрет заполнения кэша. PA - включение механизма страничной переадресации.

Управляющие регистры Регистр CR 1 пока не используется. Регистр CR 2 хранит 32 -битный Управляющие регистры Регистр CR 1 пока не используется. Регистр CR 2 хранит 32 -битный линейный адрес, по которому был получен последний отказ страницы памяти. Регистр CR 3 - в старших 20 битах хранится физический базовый адрес таблицы каталога страниц. Остальные биты. 3 -й бит, кэширование страниц со сквозной записью (PWT). 4 -й бит, запрет кэширование страницы (PCD).

Управляющие регистры Регистр CR 4 VME - разрешение использования виртуального флага прерываний в режиме Управляющие регистры Регистр CR 4 VME - разрешение использования виртуального флага прерываний в режиме V 8086. PVI - разрешение использования виртуального флага прерываний в защищенном режиме. TSD - превращение инструкции RDTSC в привилегированную. DE - разрешение точек останова по обращению к портам ввода-вывода. PSE - включает режим адресации с 4 -мегабайтными страницами. PAE - включает 36 -битное физическое адресное пространство. MCE - разрешение исключения. PGE - разрешение глобальной страницы. PMC - разрешает выполнение команды RDPMC. FSR - разрешает команды быстрого сохранения/восстановления состояния сопроцессора.

Системные адресные регистры GDTR - 6 -байтный регистр, в котором содержится линейный адрес глобальной Системные адресные регистры GDTR - 6 -байтный регистр, в котором содержится линейный адрес глобальной дескрипторной таблицы. IDTR - 6 -байтный регистр, содержащий 32 -битный линейный адрес таблицы дескрипторов обработчиков прерываний. LDTR - 10 -байтный регистр, содержащий 16 -битный селектор (индекс) для GDT и 8 -байтный дескриптор. TR - 10 -байтный регистр, содержащий 16 -битный селектор для GDT и весь 8 байтный дескриптор из GDT, описывающий состояние текущей задачи.

Регистры отладки DR 0. . . DR 3 - хранят 32 -битные линейные адреса Регистры отладки DR 0. . . DR 3 - хранят 32 -битные линейные адреса точек останова. DR 6 (равносильно DR 4) - отражает состояние контрольных точек. DR 7 (равносильно DR 5) - управляет установкой контрольных точек.

Режимы работы микропроцессора Реальный режим (Real Mode). После инициализации (системного сброса) МП находится в Режимы работы микропроцессора Реальный режим (Real Mode). После инициализации (системного сброса) МП находится в реальном режиме. В реальном режиме МП работает как очень быстрый 8086 с возможностью использования 32 -битных расширений. Механизм адресации, размеры памяти и обработка прерываний МП 8086 полностью совпадают с аналогичными функциями других МП IA-32 в реальном режиме. Режим системного управления (System Management Mode) предназначен для выполнения некоторых действий с возможностью их полной изоляции от прикладного программного обеспечения и даже от операционной системы. МП переходит в этот режим только аппаратно: по низкому уровню на контакте SMI# или по команде с шины APIC (Pentium+). Никакой программный способ не предусмотрен для перехода в этот режим. МП возвращается из режима системного управления в тот режим, при работе в котором был получен сигнал SMI#. Возврат происходит по команде RSM. Эта команда работает только в режиме системного управления и в других режимах не распознается, генерируя исключение #6 (недействительный код операции).

Режимы работы микропроцессора Защищенный режим (Protected Mode) является основным режимом работы МП. Ключевые особенности Режимы работы микропроцессора Защищенный режим (Protected Mode) является основным режимом работы МП. Ключевые особенности защищенного режима: виртуальное адресное пространство, защита и многозадачность. МП может быть переведен в защищенный режим установкой бита 0 (Protect Enable) в регистре CR 0. Вернуться в режим реального адреса МП может по сигналу RESET или сбросом бита PE. В защищенном режиме программа оперирует с адресами, которые могут относиться к физически отсутствующим ячейкам памяти, поэтому такое адресное пространство называется виртуальным. Размер виртуального адресного пространства программы может превышать емкость физической памяти и достигать 64 Тбайт.

Режимы работы микропроцессора Виртуальный режим i 8086 (V 86). В режим V 86 процессор Режимы работы микропроцессора Виртуальный режим i 8086 (V 86). В режим V 86 процессор может перейти из защищённого режима, если установить в регистре флагов EFLAGS бит виртуального режима (VM-бит). В виртуальном режиме поведение процессора во многом напоминает i 8086. Виртуальный режим предназначен для работы программ, ориентированных на процессор i 8086 (или i 8088). В виртуальном режиме используется трансляция страниц памяти. Это позволяет в мультизадачной операционной системе создавать несколько задач, работающих в виртуальном режиме. Каждая из этих задач может иметь собственное адресное пространство, каждое размером в 1 мегабайт.

Типы данных Тип данных определяет множество значений, набор операций, которые можно применять к таким Типы данных Тип данных определяет множество значений, набор операций, которые можно применять к таким значениям и способ реализации хранения значений и выполнения операций. Процесс проверки и накладывания ограничений на типы используемых данных называется контролем типов или типизацией программных данных. Различают следующие виды типизации: • Статическая типизация — контроль типов осуществляется при компиляции. • Динамическая типизация — контроль типов осуществляется во время выполнения.

Типы данных Контроль типов также может быть строгим и слабым. Строгая типизация — совместимость Типы данных Контроль типов также может быть строгим и слабым. Строгая типизация — совместимость типов автоматически контролируется транслятором: • Номинативная типизация — совместимость должна быть явно указана (наследована) при определении типа. • Структурная типизация (англ. structural type system) — совместимость определяется структурой самого типа (типами элементов, из которых построен составной тип). Слабая типизация — совместимость типов никак транслятором не контролируется. В языках со слабой типизацией обычно используется подход, когда совместимость определяется и реализуется общим интерфейсом доступа к данным типа.

Типы данных Все данные можно разделить на статические и динамические. Статическими данными называются такие, Типы данных Все данные можно разделить на статические и динамические. Статическими данными называются такие, память под которые выделяется во время компиляции и сохраняется в течение всей работы программы. Для динамических данных память распределяется в процессе выполнения программы. Использование динамических данных дает следующие преимущества 1) позволяет увеличить объем обрабатываемых данных; 2) если потребность в каких-то данных отпала до окончания программы, то занятую ими память можно освободить для другой информации; 3) использование динамической памяти позволяет создавать структуры данных переменного размера.

Типы данных • • • Типы данных бывают следующие: Простые. Составные. Другие Простые данные. Типы данных • • • Типы данных бывают следующие: Простые. Составные. Другие Простые данные. • Числовые (целочисленные, вещественные). Хранятся числа. Могут применяться обычные арифметические операции. • Символьный тип. Хранит один символ. Могут использоваться различные кодировки. • Логический тип. Имеет два значения: истина и ложь. Могут применяться логические операции. Используется в операторах ветвления и циклах. В некоторых языках является подтипом числового типа, при этом ложь=0, истина=1.

Типы данных Составные (сложные) данные. • Массив. Является индексированным набором элементов одного типа. Одномерный Типы данных Составные (сложные) данные. • Массив. Является индексированным набором элементов одного типа. Одномерный массив — вектор, двумерный массив — матрица. • Строковый тип. Хранит строку символов. Чаще всего рассматривается как массив символов. • Структура. Набор различных элементов (полей записи), хранимый как единое целое. Возможен доступ к отдельным полям записи. • Файловый тип. Хранит только однотипные значения, доступ к которым осуществляется только последовательно. • Класс. Другие типы данных являются исключительно компьютерными терминами. • Указатель. Хранит адрес в памяти компьютера, указывающий на какую-либо информацию, как правило — указатель на переменную. • Ссылка.

Типы данных Объединение простых данных в составные (структуры, классы) называется структуризацией данных. Структуризация данных Типы данных Объединение простых данных в составные (структуры, классы) называется структуризацией данных. Структуризация данных позволяет упростить процесс программирования за счет применения средств и методов, разработанных непосредственно для работы с данными определенной структуры или класса.

Типы данных Основными типами данных процессора с архитектурой IA-32 являются Типы данных Основными типами данных процессора с архитектурой IA-32 являются

Типы данных Целочисленные данные могут представляться в знаковой и беззнаковой форме. Беззнаковые целые числа Типы данных Целочисленные данные могут представляться в знаковой и беззнаковой форме. Беззнаковые целые числа представляются в виде последовательности битов в диапазоне от 0 до 2 n, где n-количество занимаемых битов. Знаковые целые числа представляются в диапазоне -2 n-1 -1 … +2 n-1. При этом старший бит данного отводится под знак числа: 0 – положительное число, 1 – отрицательное число.

Типы данных Типы данных

Типы данных Вещественные данные обрабатываются математическим сопроцессором. Логические данные представляют собой бит информации и Типы данных Вещественные данные обрабатываются математическим сопроцессором. Логические данные представляют собой бит информации и могут записываться в виде последовательности битов. Каждый бит может принимать значение 0 или 1 (ЛОЖЬ или ИСТИНА). Логические данные могут начинаться с любой позиции в байте. Символьные данные задаются в кодах. Кодировка символов (часто называемая также кодовой страницей) – это набор числовых значений, которые ставятся в соответствие группе алфавитно-цифровых символов, знаков пунктуации и специальных символов. В Windows первые 128 символов всех кодовых страниц состоят из базовой таблицы символов ASCII (American Standard Code for Interchange of Information). Первые 32 кода базовой таблицы, начиная с нулевого, размещают управляющие коды. Символы с номерами от 128 до 255 представляют дополнительные символы и варьируются в зависимости от набора скриптов, представленных кодировкой символов.

Типы данных Вещественные данные обрабатываются математическим сопроцессором. Логические данные представляют собой бит информации и Типы данных Вещественные данные обрабатываются математическим сопроцессором. Логические данные представляют собой бит информации и могут записываться в виде последовательности битов. Каждый бит может принимать значение 0 или 1 (ЛОЖЬ или ИСТИНА). Логические данные могут начинаться с любой позиции в байте. Символьные данные задаются в кодах. Кодировка символов (часто называемая также кодовой страницей) – это набор числовых значений, которые ставятся в соответствие группе алфавитно-цифровых символов, знаков пунктуации и специальных символов. В Windows первые 128 символов всех кодовых страниц состоят из базовой таблицы символов ASCII (American Standard Code for Interchange of Information). Первые 32 кода базовой таблицы, начиная с нулевого, размещают управляющие коды. Символы с номерами от 128 до 255 представляют дополнительные символы и варьируются в зависимости от набора скриптов, представленных кодировкой символов.

Типы данных Коды управляющих символов Типы данных Коды управляющих символов

Типы данных Коды управляющих символов Типы данных Коды управляющих символов

Типы данных Типы данных

Типы данных Для русского языка существует несколько разных таблиц кодировки символов кириллицы: KOI 8 Типы данных Для русского языка существует несколько разных таблиц кодировки символов кириллицы: KOI 8 -R, IBM-866, CP-1251, ISO-8551 -5. Все они одинаково изображают символы первой половины таблицы (от 0 до 127) и различаются представлением символов русского алфавита и псевдографики. Для таких языков, как китайский или японский, 256 символов недостаточно. Кроме того, всегда существует проблема вывода или сохранения в одном файле одновременно текстов на разных языках (например, при цитировании). Поэтому была разработана универсальная кодовая таблица UNICODE, содержащая символы, применяемые в языках всех народов мира, а также различные служебные и вспомогательные символы (знаки препинания, математические и технические символы, стрелки, диакритические знаки и т. д. ). В UNICODE используются 16 -битовые (2 -байтовые) коды, что позволяет представить 65536 символов. Для совместимости с предыдущими кодировками первые 128 кодов совпадают со стандартом ASCII.

Типы данных Типы данных

Типы данных Типы данных

Типы данных Для перекодировки символов и русскоязычного вывода в окно консоли можно использовать функцию Типы данных Для перекодировки символов и русскоязычного вывода в окно консоли можно использовать функцию Windows API. BOOL Char. To. Oem(LPCTSTR lpsz. Src, LPSTR lpsz. Dst); lpsz. Src – указатель на строку-источник lpsz. Dst – указатель на строку-приемник.

Типы данных Числа в двоично-десятичном формате В двоично-десятичном коде представляются беззнаковые целые числа, кодирующие Типы данных Числа в двоично-десятичном формате В двоично-десятичном коде представляются беззнаковые целые числа, кодирующие цифры от 0 до 9. Числа в двоично-десятичном формате могут использоваться в упакованном и неупакованном виде. В случае неупакованных чисел в каждом байте хранится одна цифра, размещенная в младшей половине байта (биты 3… 0). Упакованный вид допускает хранение двух десятичных цифр в одном байте, причем старшая половина байта отводится под старший разряд.

Типы данных Числовые константы используются для обозначения арифметических операндов и адресов памяти. Десятичный формат Типы данных Числовые константы используются для обозначения арифметических операндов и адресов памяти. Десятичный формат – допускает использование десятичных цифр от 0 до 9 и обозначается последней буквой d, которую можно не указывать, например, 125 или 125 d. Ассемблер сам преобразует значения в десятичном формате в объектный шестнадцатеричный код и записывает байты в обратной последовательности. a DB 125 ; 1 байт f DD 125 d ; 4 байта Вещественные константы задаются с помощью директив DD, DQ и DT. Разделителем целой и дробной частей является точка. _dd_ DD 5. 65 ; 4 байта _dq_ DQ -122. 87 ; 8 байт _dt_ DT 168. 987 E-21 ; 10 байт

Типы данных Числовые константы используются для обозначения арифметических операндов и адресов памяти. Шестнадцатеричный формат Типы данных Числовые константы используются для обозначения арифметических операндов и адресов памяти. Шестнадцатеричный формат – допускает использование шестнадцатеричных цифр от 0 до F и обозначается последней буквой h, например 7 Dh. Так как ассемблер полагает, что с буквы начинаются идентификаторы, то первым символом шестнадцатеричной константы должна быть цифра от 0 до 9. Например, 0 Eh. Ассемблер сам записывает байты в обратной последовательности. d DD 12345678 h ; 4 байта ox db 12 h ; ox=18, 1 байт oy DB 0 A 0 h ; oy = 160 oz db 1 Fh ; oz = 31

Типы данных Числовые константы используются для обозначения арифметических операндов и адресов памяти. Двоичный формат Типы данных Числовые константы используются для обозначения арифметических операндов и адресов памяти. Двоичный формат – допускает использование цифр 0 и 1 и обозначается последней буквой b. Двоичный формат обычно используется для более четкого представления битовых значений в логических командах (AND, OR, XOR). b DB 00001100 b ; b = 12, 1 байт Восьмеричный формат – допускает использование цифр от 0 до 7 и обозначается последней буквой q или o, например, 253 q. w DW 1234 q ; w = 668, 2 байта

Типы данных Инициализация массивов Выделение десяти последовательных слов памяти и записывает в них значения Типы данных Инициализация массивов Выделение десяти последовательных слов памяти и записывает в них значения 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. My_array DW 0, 1, 2, 3 DW 4, 5, 6, 7 DW 8, 9 Для инициализации блоков памяти одними и теми же значениями можно использовать оператор DUP. Например, Block_array DW 100 DUP (12 h) В тех случаях, когда необходимо выделить память, но не инициализировать ее, используется знак ? . Например, no_init DD ? massiv DW 20 DUP (? )

Типы данных Инициализация символьных строк Символьные строки представляют собой набор символов для вывода на Типы данных Инициализация символьных строк Символьные строки представляют собой набор символов для вывода на экран. Содержимое строки отмечается одиночными кавычками, например, ‘pc’ или двойными кавычками (“pc”). Символьная строка определяется только директивой DB, в которой указывается более двух символов в нормальной последовательности слева направо. Символьная строка должна заканчиваться «нуль-символом» (‘’ = 0). Для перевода строки могут использоваться символы: – 13 (возврат каретки 0 Dh); – 10 (перевод строки 0 Ah). Stroka DB ‘Привет’, 13, 10, ”всем!”, 0

Типы данных Инициализация символьных строк В кодовой странице ASCII (UNICODE) символы цифр ‘ 0’… Типы данных Инициализация символьных строк В кодовой странице ASCII (UNICODE) символы цифр ‘ 0’… ‘ 9’ соответствуют значениям кодов 30 h… 39 h соответственно. Используя это, можно легко переводить числа, вводимые с клавиатуры, в эквивалент их целочисленного значения. При записи символьных констант следует помнить, что символьная константа представляет собой символы ASCII, а числовая константа представляет собой число. A DB ‘ 12’ ; A=31 h, (A+1) = 32 h, 2 байта B DB 12 ; B = 12 = 0 Ch 1 байт