Программирование на Ассемблере


Двухбайтовая кодировка


В 1988 году фирмы APPLE и XEROX предложили 2-х символьную (широкую) кодировку. В 1991 году - комитет по разработке стандартов утвердил Стандарт на символы UNICODE. В предыдущих версиях расширенные символы кодировались так, что младший байт был равен 0, это было признаком двух байтовой кодировки (например, кодировка функциональных клавиш F1 –F12). В UNICODE каждый символ кодируется 2 байтами, поэтому не надо анализировать первый байт, чтобы узнать назначение второго - сейчас в стандарт UNICODE входит »34000 символов. Для программистов оставлено »6000 кодов. В табл. 3.1 представлены коды символов в UNICODE.

Таблица 3.1 Коды символов для UNICODE

 

16-битный код

Символы

0000 - 007F

ASCII



0080 – 00FF

Символы LATIN 1

0100 - 017F

Европейские латинские

0180 – 01FF

Расширенные латинские

0250 – 02AF

Стандартные фонетические

02b0 – 02ff

Модифицированные литеры

0300 - 036f

Общие диакритические знаки

0400 – 04ff

Греческий

0530 - 058f

Кириллица

0590 – 05ff

Армянский

0600 – 06ff

Еврейский

0900 - 097f

Девангари

Достоинства использования UNICODE:

·        возможность создания многоязычных документов;

·        один exe или dll файл для разных языков;

·        увеличивается эффективность прикладных программ.

WINDOWS NT полностью построена на основе UNICODE. Если функции передается обычная строка, она сначала преобразуется в строку типа UNICODE (автоматически). Так как преобразование требует дополнительной памяти и времени, лучше сразу работать со строками типа UNICODE. В WINDOWS 95 не заложена работа с UNICODE, вся внутренняя работа основана на одно символьной кодировке, поэтому все 2-х символьные строки преобразуются в одно символьные.

В ассемблере нет специального обозначения[3]

для расширенной кодировки, поэтому мы используем для задания таких строк данные типа DW, что соответствует 2-х байтовым данным. Так строка «Hello» при двухбайтовой кодировке имеет вид:

Msg   dw     “H”, “e”, “l”, “l”,”o”



Содержание раздела