Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект, часть 4 (05.10.10), чистовик.doc
Скачиваний:
28
Добавлен:
29.04.2019
Размер:
15.45 Mб
Скачать

Программирование циклических вычислительных процессов

При программировании участков алгоритмов, содержащих разветвления и циклы, используются команды условных переходов. При выполнении этих команд МП проверяет состояние соответствующего разряда регистра флажков RF. Если при проверке условие не подтверждается, то выполняется следующая по порядку команда программы. Все команды условных переходов трехбайтные. Первый байт содержит код команды, второй и третий байты – адрес команды, которой передается управление. Таким образом, команды условных переходов позволяют строить ветвящиеся алгоритмы и в зависимости от текущего значения результата выполнения программы переходить на различные участки программы.

Для счета числа повторений цикла на одном из внутренних регистров МП организуется счетчик. В этот регистр предварительно записывается число повторений цикла и после каждого его повторения из регистра вычитается единица, а затем проверяется, равно ли нулю содержимое регистра. При достижении нулевого значения производится выход из цикла.

Пример 2 – Составить циклическую программу сложения массива однобайтных чисел (число слагаемых равно 05 H) с получением двухбайтного результата. Начальный адрес исходных данных 0A00 H. Счетчик циклов организовать на регистре B. Старший байт суммы записать в регистр C, а младший – в аккумулятор AC. Начальный адрес программы 0800 H. Схема алгоритма программы сложения (рисунок 16) состоит в том, что после прибавления каждого элемента массива определяется переполнение аккумулятора AC (значение бита C в регистре флажков RF равно единице), и если это имеет место, то содержимое регистра C

Рисунок 16 – Схема алгоритма циклической программы суммирования однобайтных чисел

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

Циклическая программа суммирования однобайтных чисел на языке Ассемблера представлена в таблице 9.

Таблица 9 – Циклическая программа суммирования однобайтных чисел на языке

Ассемблера

Адрес

Метка

Команда

Операнд

Машинный код

Комментарий

0800

LXI

H,0A00H

21 00 0A

; адрес первого слагаемого

0803

MVI

B,05H

06 05

; количество слагаемых

0805

ADDB:

XRA

AC

AF

; обнуление регистра AC

0806

MOV

C,AC

4F

; обнуление регистра C

0807

M1:

ADD

M

86

; суммирование

0808

JNC

M2

D2 0C 08

; условный переход на

; M2, если (TC) = 0

080B

INR

C

0C

; увеличение содержимого

; регистра C на единицу

080C

M2:

INX

H

23

; увеличение содержимого

; пары регистров H-L на

; единицу

080D

DCR

B

05

; уменьшение на единицу

; содержимого счетчика

; циклов

080E

JNZ

M1

C2 07 08

; условный переход на M1, если (TZ) = 0

0811

HLT

76

; останов