Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab_rab_1.doc
Скачиваний:
20
Добавлен:
13.11.2019
Размер:
698.37 Кб
Скачать

1.6. Коды символов

Для представления всех букв, цифр и знаков, появляющихся на экране компьютера, обычно используется всего один байт. Символы, соответствующие значениям от 0 до 127, то есть первой половине всех возможных значений байта, были стандартизированы и названы символами ASCII (хотя часто кодами ASCII именуют всю таблицу из 256 символов). Сюда входят некоторые управляющие коды (символ с кодом 0Dh - конец строки), знаки препинания, цифры (символы с кодами 30h - 39h), большие (41h - 5Ah) и маленькие (61h - 7 Ah) латинские буквы. Вторая половина символьных кодов используется для алфавитов других языков и псевдографики, набор и порядок символов в ней отличаются в разных странах и даже в пределах одной страны. Например, для букв одного только русского языка существует пять вариантов размещения во второй половине таблицы символов ASCII. Существует также стандарт, использующий слова для хранения кодов символов, известный как UNICODE или UCS-2, и даже двойные слова (UCS-4), но мы пока не будем на нем останавливаться.

1.7. Организация памяти

Память с точки зрения процессора представляет собой последовательность байтов, каждому из которых присвоен уникальный адрес со значениями от 0 до (4 Гб). Программы же могут работать с памятью как с одним непрерывным массивом (модель памяти flat) или как с несколькими массивами (сегментированные модели памяти). Во втором случае для задания адреса любого байта требуется два числа - адрес начала массива и адрес искомого байта внутри массива. Помимо основной памяти программы могут использовать регистрыспециальные ячейки памяти, расположенные физически внутри процессора, доступ к которым осуществляется не по адресам, а по именам. Но здесь мы вплотную подходим к рассмотрению собственно работы процессора.

2. Процессоры Intel в реальном режиме

Процессор Intel x86 после включения питания оказывается в так называемом режиме реальной адресации памяти, или просто реальном режиме. Большинство операционных систем сразу же переводит его в защищенный режим, позволяющий им обеспечивать многозадачность, распределение памяти и другие функции.

Пользовательские программы в таких операционных системах часто работают еще и в режиме V86, из которого им доступно все то же, что и из реального, кроме команд, относящихся к управлению защищенным режимом.

2.1. Регистры процессора

Начиная с 80386, процессоры Intel предоставляют 16 основных регистров для пользовательских программ плюс еще 11 регистров для работы с мультимедийными приложениями (ММХ) и числами с плавающей запятой (FPU/NPX). Все команды, так или иначе, изменяют значения регистров, и всегда быстрее и удобнее обращаться к регистру, чем к памяти.

Из реального режима помимо основных регистров доступны также регистры управления памятью (GDTR, IDTR, TR, LDTR), регистры управления (CRO, CR1 - CR4), отладочные регистры (DRO - DR7) и машинно-специфичные регистры, но они не применяются для решения повседневных задач.

2.1.1. Регистры общего назначения

32-битные регистры ЕАХ (аккумулятор), ЕВХ (база), ЕСХ (счетчик), EDX (регистр данных) могут использоваться без ограничений для любых целей - временного хранения данных, аргументов или результатов различных операций.

Примечание. Названия регистров происходят оттого, что некоторые команды применяют их специальным образом: так, аккумулятор часто необходим для хранения результата действий, выполняемых над двумя операндами, регистр данных в этих случаях получает старшую часть результата, если он не умещается в аккумулятор, регистр-счетчик работает как счетчик в циклах и строковых операциях, а регистр-база - при так называемой адресации по базе.

Младшие 16 бит каждого из этих регистров применяются как самостоятельные регистры с именами АХ, ВХ, СХ, DX. На самом деле в процессорах 8086-80286 все регистры были 16-битными и назывались именно так, а 32-битные ЕАХ - EDX появились с введением 32-битной архитектуры в 80386. Кроме этого, отдельные байты в 16-битных регистрах АХ - DX тоже могут использоваться как 8-битные регистры и иметь свои имена. Старшие байты этих регистров называются АН, ВН, СН, DH, а младшие - AL, BL, CL, DL (см. рис. 3).

Остальные четыре регистра - ESI (индекс источника), EDI (индекс приемника), ЕВР (указатель базы), ESP (указатель стека) - имеют более конкретное назначение и применяются для хранения всевозможных временных переменных.

Регистры ESI, EDI необходимы в строковых операциях, ЕВР и ESP - при работе со стеком. Так же как и в случае с регистрами ЕАХ - EDX, младшие половины этих четырех регистров называются SI, DI, BP и SP соответственно, и в процессорах до 80386 только они и присутствовали.

Рис. 3. Регистры общего назначения

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]