Кодирование текстовых данных
Если каждому символу алфавита сопоставить определенное целое число (например, порядковый номер), то с помощью двоичного кода можно кодировать и текстовую информацию…
Все современные таблицы кодировок происходят от …
Кодировка ASCIIприведена в таблице …
Аналогичные системы кодирования текстовых данных были разработаны и в других странах. Так, например, в СССР в этой области действовала система кодирования КОИ-7 (код обмена информацией, семизначный). Однако поддержка производителей оборудования и программ вывела американский код ASCIIна уровень международного стандарта, и национальным системам кодирования пришлось «отступить» во вторую, расширенную часть системы кодирования, определяющую значения кодов со 128 по 255. Отсутствие единого стандарта в этой области привело к множественности одновременно действующих кодировок. Только в России можно указать три действующих стандарта кодировки и еще два устаревших.
Все это привело к появлению нового кодового стандарта, так называемого кода КОИ-8…
На базе ГОСТ КОИ-8 сделана koi8-r (кодовая страница 878) — применяется в мире Linux…
Кодировка Microsoft Windows, обозначаемая сокращением CP1251…
Кодировка CP866...
Кодировка Mac…
Кодировка ISO 8859…
Юнико́д, или Унико́д (англ. Unicode) — стандарт кодирования символов, позволяющий представить знаки практически всех письменных языков…
В связи с изобилием систем кодирования текстовых данных, действующих в России, возникает задача межсистемного преобразования данных — это одна из распространенных задач информатики.
Практическая разработка
2.1 Блок – схема алгоритма


Распределение памяти и листинг программы с комментарием
SP – адрес дна стека программы
С – счетчик цикла, также регистр C используется для хранения старшего байта
H,L – текущий адрес элемента исходного массива
D,E – текущий адрес элемента результирующего массива
500016 – адрес начала массива исходных чисел
700016 – адрес начала массива результатов
| Адрес | Данные | Ассемблерный код | Комментарий |
| LXI SP,A000h | Создание стека программы | ||
| A0 | |||
| LXI H,5000h | Загрузка в H,L адреса, начиная с которого будет считан массив исходных констант | ||
| LXI D,7000h | Загрузка в пару D,E адреса, начиная с которого будет записан массив результатов | ||
| LXI B,000Ah | Создание в регистре С счетчика цикла преобразования | ||
| 400A | 0A | ||
| 400B | |||
| 400C | 7E | MOV A,M | Загрузка констант из памяти |
| 400D | C5 | PUSH B | Сохранение в стек счетчика цикла |
| 400E | 0E | MVI C,00h | Обнуление регистра С |
| 400F | |||
| C3 | JMP 402Ah | Переход к подпрограмме, получения старшего байта | |
| 2A | |||
| CE | ACI 64h | Сложение аккумулятора с 6416 для восстановления значения при лишнем вычитании | |
| MOV B,A | Сохранение аккумулятора в регистре В | ||
| 3E | MVI A,00h | Обнуление аккумулятора | |
| C3 | JMP 4033h | Переход к подпрограмме, получения младшего байта | |
| 401A | |||
| 401B | STAX D | Сохранение младшего байта двоично-десятичного числа в памяти | |
| 401C | MOV A,C | Загрузка в аккумулятор из регистра С старшего байта двоично-десятичного кода | |
| 401D | INX D | Переход к следующему адресу записи | |
| 401E | STAX D | Сохранение старшего байта двоично-десятичного числа | |
| 401F | INX D | Переход к следующему адресу записи | |
| C1 | POP B | Восстановление из стека счетчика цикла | |
| OD | DCR C | Отрицательное приращение регистра С | |
| CA | JZ 403Dh | Если счетчик достиг нуля, то программа завершена | |
| 3D | |||
| 4F | MOV C,A | Иначе аккумулятор копируем в регистр С | |
| INX H | Переход к следующему адресу записи | ||
| C3 | JMP 400Ch | Возврат к началу подпрограммы | |
| 0C | |||
| 402A | D6 | SUI 64h | Вычитание из аккумулятора 6416, для получения старшего байта |
| 402B | |||
| 402C | DA | JC 4013h | Если число станет меньше 6416, то возвращаемся к основной процедуре |
| 402D | |||
| 402E | |||
| 402F | 0C | INR C | Положительное приращение регистра С |
| C3 | JMP 402Ah | Возврат к началу подпрограммы для получения старшего байта | |
| 2A | |||
| DCR B | Отрицательное приращение регистра В, для получения младшего числа | ||
| CA | JZ 401Bh | Если Z=0, весь остаток исходных констант записывается в аккумулятор; если Z=1, то возврат по адресу 4018 | |
| 1B | |||
| C6 | ADI 01 | Увеличение аккумулятора на 1 | |
| DAA | Двоично-десятичная коррекция аккумулятора | ||
| 403A | C3 | JMP 4033h | Возврат к началу подпрограммы |
| 403B | |||
| 403C | |||
| 403D | C3 | JMP 40h | Выход из программы в монитор |
| 403E | |||
| 403F |