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

1.3 Кодирование текстовых данных

Если каждому символу алфавита сопоставить определенное целое число (например, порядковый номер), то с помощью двоичного кода можно кодировать и текстовую информацию…

Все современные таблицы кодировок происходят от …

Кодировка ASCII приведена в таблице …

Аналогичные системы кодирования текстовых данных были разработаны и в других странах. Так, например, в СССР в этой области действовала система кодирования КОИ-7 (код обмена информацией, семизначный). Однако поддержка производителей оборудования и программ вывела американский код ASCII на уровень международного стандарта, и национальным системам кодирования пришлось «отступить» во вторую, расширенную часть системы кодирования, определяющую значения кодов со 128 по 255. Отсутствие единого стандарта в этой области привело к множественности одновременно действующих кодировок. Только в России можно указать три действующих стандарта кодировки и еще два устаревших.

Все это привело к появлению нового кодового стандарта, так называемого кода КОИ-8…

На базе ГОСТ КОИ-8 сделана koi8-r (кодовая страница 878) — применяется в мире Linux…

Кодировка Microsoft Windows, обозначаемая сокращением CP1251…

Кодировка CP866...

Кодировка Mac…

Кодировка ISO 8859…

Юнико́д, или Унико́д (англ. Unicode) — стандарт кодирования символов, позволяющий представить знаки практически всех письменных языков…

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

2 Практическая разработка

2.1 Блок – схема алгоритма

да

нет

нет

нет

да

да

2.2 Распределение памяти и листинг программы с комментарием

SP – адрес дна стека программы

С – счетчик цикла, также регистр C используется для хранения старшего байта

H,L – текущий адрес элемента исходного массива

D,E – текущий адрес элемента результирующего массива

500016 – адрес начала массива исходных чисел

700016 – адрес начала массива результатов

Адрес

Данные

Ассемблерный код

Комментарий

4000

21

LXI SP,A000h

Создание стека программы

4001

00

4002

A0

4003

21

LXI H,5000h

Загрузка в H,L адреса, начиная с которого будет считан массив исходных констант

4004

00

4005

50

4006

11

LXI D,7000h

Загрузка в пару D,E адреса, начиная с которого будет записан массив результатов

4007

00

4008

70

4009

01

LXI B,000Ah

Создание в регистре С счетчика цикла преобразования

400A

0A

400B

00

400C

7E

MOV A,M

Загрузка констант из памяти

400D

C5

PUSH B

Сохранение в стек счетчика цикла

400E

0E

MVI C,00h

Обнуление регистра С

400F

00

4010

C3

JMP 402Ah

Переход к подпрограмме, получения старшего байта

4011

2A

4012

40

4013

CE

ACI 64h

Сложение аккумулятора с 6416 для восстановления значения при лишнем вычитании

4014

64

4015

47

MOV B,A

Сохранение аккумулятора в регистре В

4016

3E

MVI A,00h

Обнуление аккумулятора

4017

00

4018

C3

JMP 4033h

Переход к подпрограмме, получения младшего байта

4019

33

401A

40

401B

12

STAX D

Сохранение младшего байта двоично-десятичного числа в памяти

401C

79

MOV A,C

Загрузка в аккумулятор из регистра С старшего байта двоично-десятичного кода

401D

13

INX D

Переход к следующему адресу записи

401E

12

STAX D

Сохранение старшего байта двоично-десятичного числа

401F

13

INX D

Переход к следующему адресу записи

4020

C1

POP B

Восстановление из стека счетчика цикла

4021

OD

DCR C

Отрицательное приращение регистра С

4022

CA

JZ 403Dh

Если счетчик достиг нуля, то программа завершена

4023

3D

4024

40

4025

4F

MOV C,A

Иначе аккумулятор копируем в регистр С

4026

23

INX H

Переход к следующему адресу записи

4027

C3

JMP 400Ch

Возврат к началу подпрограммы

4028

0C

4029

40

402A

D6

SUI 64h

Вычитание из аккумулятора 6416, для получения старшего байта

402B

64

402C

DA

JC 4013h

Если число станет меньше 6416, то возвращаемся к основной процедуре

402D

13

402E

40

402F

0C

INR C

Положительное приращение регистра С

4030

C3

JMP 402Ah

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

4031

2A

4032

40

4033

05

DCR B

Отрицательное приращение регистра В, для получения младшего числа

4034

CA

JZ 401Bh

Если Z=0, весь остаток исходных констант записывается в аккумулятор; если Z=1, то возврат по адресу 4018

4035

1B

4036

40

4037

C6

ADI 01

Увеличение аккумулятора на 1

4038

01

4039

27

DAA

Двоично-десятичная коррекция аккумулятора

403A

C3

JMP 4033h

Возврат к началу подпрограммы

403B

33

403C

40

403D

C3

JMP 40h

Выход из программы в монитор

403E

40

403F

00