Диплом, курсовая, контрольная работа
Помощь в написании студенческих работ

Описание алгоритма программы

РефератПомощь в написанииУзнать стоимостьмоей работы

В программе используется цикл на убывание. В паре создаётся счётчик на десять шагов, так как требуется закодировать десять констант. Затем все действия повторяются применительно к каждой заданной константе в цикле. Переход к следующей ячейке массива исходных констант. Запись получившегося числа в массив кодов КОИ-7. Запись получившегося числа в массив кодов КОИ-7. Переход к следующей ячейке… Читать ещё >

Описание алгоритма программы (реферат, курсовая, диплом, контрольная)

Как известно, цифра, закодированная при помощи кода КОИ-7, отличается от незакодированной на число 30, а буквенное обозначение шестнадцатеричного числа — на 3716. Исходя из этой информации, принцип работы данной программы заключается в том, что константы из массива, начинающегося с адреса 500 016, по очереди копируются в аккумулятор и над каждой из них осуществляются следующие действия: данное двузначное число подвергается четырём сдвигам вправо с помощью команды «RAR», в результате чего его символы «меняются местами». Это нужно, чтобы закодировать первый символ. Затем обнуляется первый символ результата путём применения команды «ANI 0F». С помощью команды «CPI 0A» определяется, цифра или буква стоит на второй позиции.

На следующем этапе, в зависимости от того, цифра это или буква, результат складывается с числом 30 или 37 соответственно. После этого с исходным числом проделывается вышеописанная работа за исключением сдвигов вправо. Тем самым осуществляется кодировка второго символа исходной константы.

После того, как первая константа закодирована, получившееся в результате двухбайтное число заносится из аккумулятора в массив, начинающийся с адреса 600 016.

Затем все действия повторяются применительно к каждой заданной константе в цикле.

В программе используется цикл на убывание. В паре создаётся счётчик на десять шагов, так как требуется закодировать десять констант.

2.2 Листинг программы.

Адрес.

Текст ассемблера.

Коды ассемблера.

Комментарии.

LXI B, 500 016.

01 00 50.

Загрузка начала исходного массива.

LXI D, 600 016.

11 00 60.

Загрузка начала массива кодов КОИ-7.

MVI H, 0Ah.

26 0A.

Создание счётчика в регистре H на 10 шагов.

JP 500 016.

F2 00 50.

Выбор положительного числа.

400B.

LDAX B.

0A.

Запись первого числа в аккумулятор

400C.

RAR.

1 °F.

Сдвиг вправо.

400D.

RAR.

1 °F.

Сдвиг вправо.

400E.

RAR.

1 °F.

Сдвиг вправо.

400 °F.

RAR.

1 °F.

Сдвиг вправо.

ANI 0Fh.

E6 0 °F.

Обнуление первой тетрады числа.

CPI 0Ah.

FE 0A.

Сравнение результата с 0Аh.

JP 401E16.

F2 1E 40.

Если это буква, прыжок к адресу 401E.

ADI 30h.

C6 30.

Сложение результата с константой 30h.

JMP 402 116.

C3 20 40.

Прыжок к адресу 4020.

401C.

ADI 37h.

C6 37.

Сложение результата с константой 37h.

401E.

STAX D.

Запись получившегося числа в массив кодов КОИ-7.

401 °F.

INX D.

Переход к следующей ячейке массива кодов КОИ-7.

LDAX B.

0A.

Запись первого числа в аккумулятор

ANI 0Fh.

E6 0 °F.

Обнуление первой тетрады числа.

CPI 0Ah.

FE 0A.

Сравнение результата с 0Аh.

JNC 403 016.

D2 2 °F 89 213 647 048 40.

Если это буква, прыжок к адресу 402 °F.

ADI 30h.

C6 30.

Сложение результата с константой 30h.

402A.

JMP 403 216.

C3 32 40.

Прыжок к адресу 4032.

402D.

ADI 37h.

C6 37.

Сложение результата с константой 37h.

402 °F.

STAX D.

Запись получившегося числа в массив кодов КОИ-7.

INX D.

Переход к следующей ячейке массива кодов КОИ-7.

INX B.

Переход к следующей ячейке массива исходных констант.

DCR H.

Уменьшение счётчика на 01h.

JP 400 816.

F2 08 40.

Прыжок к началу цикла, если в счётчике не 00h.

JMP 4 016.

C3 40 00.

Выход в монитор

Показать весь текст
Заполнить форму текущей работой