Если каждому символу алфавита сопоставить определенное целое число (например, порядковый номер), то с помощью двоичного кода можно кодировать и текстовую информацию…
Все современные таблицы кодировок происходят от …
Кодировка 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 |