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

2.1 Блок-схема алгоритма с поясняющим текстом.

Сначала я представлю краткую блок-схему программы.

Ниже расположена более подробная блок-схема, которая, конечно не описывает дословно все процессы, происходящие внутри процессора (засылка содержимого регистра B в аккумулятор и т.д.), но зато подробно и доступно объясняет, как выполняется программа.

Блок-схема основной программы.

Блок-схема п/п обработки положительного числа.

Оставляем в числе только его старшую часть

нет

да

Блок-схема п/п для преобразования числа в код КОИ-7.

Создание кода буквы

Сохранение кода старшей части числа

да

нет

Создание кода арабской цифры

Создание кода буквы

Создание кода арабской цифры

Блок-схема п/п печати на экране символов.

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

Распределение памяти.

Регистры D,E – в них хранятся адреса результатов (с 6000h).

Регистры H,L – в них находятся адреса исходных данных (с 5000h).

Регистр В – счетчик на 10 шагов (в основной программе).

Аккумулятор А – регистр, который использовался для промежуточных вычислений.

Регистр В – регистр, в котором находилась старшая тетрада числа (в подпрограмме).

Регистр С – регистр, в котором находилась младшая тетрада числа (в подпрограмме).

Указатель стека – адрес 7000h.

В ячейках памяти с 5000h до 5009h находятся исходные однобайтные целые числа со знаком в прямом коде.

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

Адрес

Данные

Код Ассемблера

Комментарии

4000

31 00 70

LXI SP,7000h

Создание стека

4003

11 00 60

LXI D,6000h

Адрес массива результата в пару DE

4006

21 00 50

LXI H,5000h

Адрес массива данных в пару H,L

4009

06 0A

MVI B,0Ah

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

400B

05

M1:DCR B

Уменьшение счетчика на 1

400C

F5

PUSH PSW

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

400D

7E

MOV A,M

Засылка в аккумулятор исходного числа

400E

FA 11 40

JM 4011

4011

CD 1C 40

CALL OBR

Вызов п/п обработки числа

4014

23

INX H

Продвижение по памяти к следующему числу

4015

F1

POP PSW

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

4016

C2 0B 40

JNZ M1

Прыжок на М1 до исчерпания счётчика

4019

CD 40 00

CALL 40h

Вход в режим ожидания ввода команды монитора

401C

C2 34 40

OBR:JNZ KON

Обработка только положительных чисел

401F

7E

MOV A,M

Засылка в аккумулятор исходного числа для дальнейшей обработки

4020

E6 0F

ANI 0Fh

Обнуление младшей тетрады

4022

1F

RAR

Циклический сдвиг старшей тетрады на место младшей

4023

1F

RAR

4024

1F

RAR

4025

1F

RAR

4026

CD 35 40

CALL PR

Вызов п/п для создания кода КОИ-7

4029

47

MOV B,A

Сохранение кода КОИ-7 символа старшей тетрады в регистре В

402A

7E

MOV A,M

Засылка в аккумулятор исходного числа для дальнейшей обработки

402B

E6 0F

ANI 0Fh

Обнуление старшей тетрады

402D

CD 35 40

CALL PR

Вызов п/п для создания кода КОИ-7

4030

4F

MOV C,A

Сохранение кода КОИ-7 символа младшей тетрады в регистре С

4031

CD 40 40

CALL GOT

Вызов п/п сохранения кодов и вывода символов на экран

4034

C9

KON:RET

Выход в основную программу

4035

FE 0A

PR:CPI 0Ah

Анализ символа

4037

D2 3D 40

JNC M2

Прыжок на М2, если символ - буква

403A

F6 30

ORI 30h

Создание кода КОИ-7 арабской цифры

403C

C9

RET

Выход в п/п обработки числа

403D

C6 37

M2:ADI 37h

Создание кода КОИ-7 буквы

403F

C9

RET

Выход в п/п обработки числа

4040

78

GOT:MOV A,B

Засылка кода символа старшей тетрады по адресу в D,E

4041

12

STAX D

4042

CD 4D 40

CALL VIV

Вызов п/п вывода символа на экран

4045

13

INX D

Продвижение по памяти в D,E

4046

79

MOV A,C

Засылка кода символа младшей тетрады по адресу в D,E

4047

12

STAX D

4048

CD 4D 40

CALL VIV

Вызов п/п вывода символа на экран

404B

13

INX D

Продвижение по памяти в D,E

404C

C9

RET

Выход в п/п обработки числа

404D

3E 20

VIV:MVI A,20h

Печать пробела на экране

404F

CD 58 00

CALL 58h

4052

1A

LDAX D

Печать символа на экране

4053

CD 58 00

CALL 58h

4056

C9

RET

Выход в программу сохранения кодов