Расширение таблицы ASCII

Стандарт ASCII имеет лишь 128 символов с кодами от 0 до 127. Набор символов IBM PC вдвое больше. Коды обычно называют "расширенными " кодами ASCII, хотя строго говоря, кодами ASCII являются только первые 127 кодов.

Первая половина кодов символов ПК имеет официальный статус и широко используется многими типами ЭВМ и другим электронным оборудованием. Другое дело - расширенные коды ASCII. Нет универсальной договорен-

ности относительно значений этих кодов, которые были разработаны специально для ПК.

Расширение таблицы с десятичными кодами от 128 до 255 может быть различным в различных моделях ПК.

Для кодирования каждого символа в этой части таблицы необходимы уже 8 битов. Здесь размещают символы национальных алфавитов, символы псевдографики, а также математические и другие символы.

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

Неанглийские символы (коды 128-175) включают все необходимые знаки, позволяющие приспособить ПК для всех основных европейских языков,

включая буквы ( коды 128-154 и , знак цента(155), фунта стерлингов (156) и др.

Псевдографические символы ( 176-223) предназначены для изображения простых рисунков с помощью набора символов.

Некоторые из них используются для изображения заштрихованных областей с различной плотностью.

Очень широко используемые символы псевдографики (коды 1позволяют рисовать точные прямоугольные фигуры на экране дисплея.

Графические символы с кодами 220-223 могут применяться для построения гистограмм. Научные символы 224-254 включают буквы греческого алфавита, различные математические символы, символ бесконечности (236), два кода (244 и 245 ) для изображения интеграла, есть символы

возведения в квадрат и извлечение квадратного корня.

В кодировке IBM отсутствуют символы кириллицы, поэтому были созданы различные модификации кодов IBM, содержащие символы кириллицы.

Наиболее распространены следующие кодировки кириллицы:

1) " Основная " кодировка ГОСТа - один из вариантов расширения ASCII таблицы с русскими буквами, ( буквы А-Я имеют коды , буквы а-я - коды Символы псевдографики смещены, поэтому

возникает расхождение с принятой кодировкой этих символов в IBM - совместимых ПК

2) Альтернативная кодировка ГОСТа - другой вариант расширения ASCII таблицы с русскими буквами. Здесь символы псевдографики расположены в тех же кодовых позициях, что и в стандартной таблицы для IBM PC.

При этом обеспечивается возможность использования зарубежных коммерческих программ без настройки на новую кодировку символов псевдографики. Символы кириллицы расположены на тех позициях, где в кодировке IBM расположены относительно редко используемые символы национальных алфавитов и греческие буквы ( буквы А - Я имеют коды 128-159, буквы а – п - коды 160-175, р - я коды 224-239.

3) Модифицированная альтернативная кодировка ГОСТа совпадает с альтернативной кодировкой ГОСТа во всех позициях кроме или , в которых применяется кодировка символов IBM для математических и специальных символов.

4) Восьмибитный код КОИ-8. Здесь символы кириллицы А-Я имеют коды 224-254, а-я 192-223. Причем буквы расположены в перетасованном порядке. Эта кодировка имеет те же недостатки, что и основная кодировка ГОС-

Та, кроме того в ней затруднена сортировка русских текстов и отсутствует символ " Ъ" ( прописной твердый знак). Латинские буквы и остальные символы КОИ-8 и КОИ-7 совпадают.

3. Адресное пространство. Адресация памяти.

В наборе команд любой ЭВМ имеются адресные команды, т. е. команды, обеспечивающие доступ в основную память для чтения или записи данных или передачу управления на различные участки программы.

Введем понятия адресного пространства вычислительной системы и реального адресного пространства.

Под адресным пространством вычислительной системы понимается множество возможных адресов, определяемое адресной структурой, или максимальной длиной адреса. Адресное пространство называют также виртуальным адресным пространством, а элемент этого адресного пространства - виртуальным адресом. Реальное адресное пространство вычислительной системы - множество адресов, определяемое реальной основной памятью данной вычислительной системой. Элемент реального адресного пространства - реальный адрес. Чаще всего реальное адресное пространство – лишь часть адресного пространства вычислительной системы. Логическим адресным пространством называется множество адресов команд и данных в той или иной программе. Следовательно, понятие логического адресного пространства относится к программе и поэтому иногда называется адресным пространством программы. Логическое адресное пространство может быть частью реального адресного пространства или выходить за его пределы. При загрузке, редактировании или в процессе выполнения программы

логические адреса преобразуются в реальные адреса основной памяти.

Наиболее популярны следующие варианты логического адресного пространства:

Плоское - ( иногда говорят линейное) логическое пространство. Состоит из массива байтов, не имеющего определенной структуры. Трансляция адреса в этом случае не требуется, поскольку логический адрес совпадает с физическим.

Сегментированное - состоит из нескольких или большого числа сегментов, каждый из которых содержит переменное число байтов.

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

Сегментно-страничное. Состоит из сегментов, которые в свою очередь состоят из страниц. Логический адрес состоит из идентификатора сегмента и смещения внутри сегмента.

БУП производит трансляцию логического адреса в номер

страницы и смещение в ней, которые затем транслируются

в физический адрес.

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

пространстве. Например, она может определить логическое адресное пространство так, как это делается во многих архитектурах, т. е. как простой массив из 2 в 32 степени байт.

С другой стороны, она может организовать это пространство как набор сегментов переменной длины, количество которых будет зависеть от ее представления о логической памяти.

Процессор предоставляет ОС возможность определить адресное пространство в виде одного или многих сегментов. Сегменты являются логическими единицами, хорошо приспособленными под программные структуры, имеющие по своей сути переменную длину. Сегмент может иметь любой размер от 1 байта до 4 Гбайт. В случае реализации сегментного механизма, ОС для каждого сегмента обязана поддерживать заданный архитектурой дескриптор, содержащий описание сегмента. Это описание включает 32 – битный адрес и длину ( предел ) сегмента, а также информацию о защите, предотвращающую неправильное использование сегмента.

3.2. Способы адресации

В ЭВМ используется схема адресации основной памяти с помощью базирования и смещения или базирования, смещения и индексирования. В первом случае адрес операнда в основной памяти вычисляется как сумма

содержимого определенного общего регистра, номер которого указывается в одном из полей команды и 32 разрядного смещения, также записанного в

команде (см. РИС 3).Регистр, используемый для формирования адреса операнда, называется базовым, а его содержимое - базой.

Способы адресации.

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

Эффективный адрес задает смещение ( расстояние ) от начала соответствующего сегмента. Адрес 0 есть адрес первого байта в сегменте, адрес 1 - второго байта и т. д. независимо от физического начального или

базового адреса сегмента.

Процессор вычисляет смещение логического адреса по следующей формуле:

СМЕЩЕНИЕ=БАЗА+(ИНДЕКС * МАСШТАБ)+ОТКЛОНЕНИЕ

Для вычисления смещения могут быть использованы все переменные - база, индекс и отклонение. Переменные база и индекс хранятся в общих регистрах, отклонение содержится в команде. Для хранения базы или индекса может быть использован любой общий регистр. Величина индекса может быть умножена на масштабный коэффициент (1,2,4,8) что дает возможность ссылки на элементы массива или записи соответствующей длины.

Отклонение может иметь разрядность 8 или 32 бита и интерпретируется процессором как величина со знаком в дополнительном коде.

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

памяти с фиксированным адресом.

Базовая адресация. В этом режиме эффективный адрес находится в любом регистре общего назначения. этот режим относится к косвенной регистровой адресации.

Базовая адресация со смещением. Этот режим, называемый еще " база + смещение" предназначен для обращения к соседним ячейкам памяти относительно эффективного адреса в базовом регистре. Он очень удобен для доступа к элементам структур данных и переменных, находящимся в стеке. Смещения считаются целыми двоичными числами со знаком. Их длина может составлять 8, 16, и 32 бита; при необходимости короткие смещения расширяются со знаком.

Индексная адресация со смещением. Индексирование реализуется, как и базовая адресация, посредством использования содержимого регистра общего назначения в качестве компоненты эффективного адреса. Индексная

адресация наиболее удобна при работе с массивами : прямой адрес определяет начало массива, а индекс элемент массива. В общем, индексная адресация со смещением очень похожа на базовую адресацию со смещением. Однако индексирование обладает интересной и удобной возможностью, которой нет у базовой адресации. В процессоре 80386 производятся операции с массивами, элементы которых имеют размер 1, 2, 4, и 8 байт. Если

индексной переменной служит i, то для получения адреса i-го элемента массива, значение i необходимо умножить на размер элемента массива.

Например, для массива V двойных слов адрес третьего элемента V[3] равен V+4*3=V+12 . Процессор может автоматически произвести коррекцию индекса для получения адреса памяти. Такая коррекция называется масштабированием.

Базовая индексная адресация со смещением. Это наиболее сложный режим адресации. Он применяется для доступа к структурам данных в стеке и к массивам, базовые адреса которых находятся в регистре.

Стековая адресация. Во всех современных процессорах аппаратно поддерживается стек, т. е. область оперативной памяти, предназначенная для временного хранения любой информации.