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

2. Порядок выполнения лабораторной работы

    1. Изучить команды условных переходов микропроцессора К580ИК80А.

    2. Предложить алгоритм выполнения циклического вычислительного процесса.

    3. Составить циклическую программу для перезаписи из одной области памяти в другую своей фамилии на языке ассемблера.

    4. Провести ассемблирование предложенной программы и ее набор на УМК.

    5. Ввести в соответствующие ячейки памяти исходную информацию.

    6. Выполнить программу в пошаговом режиме.

3. Содержимое отчета

    1. Формат команд условных переходов

    2. Алгоритм выполнения программы

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

    4. Выводы

Контрольные вопросы

  1. Что такое цикл?

  2. Какие команды микропроцессора КР580ИК80А используются для образования циклического процесса?

  3. Что такое алгоритм циклической структуры?

  4. Как организовывается счетчик циклов?

Лабораторная работа 5

Программирование алгоритмов

с разветвленной структурой

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

1. Общие сведения

Алгоритм разветвленной структуры — алгоритм, в котором предусмотрено изменение естественного порядка выполнения действий в зависимости от результата проверки какого-то условия. Изменять естественный порядок выполнения команд программы позволяют команды перехода (ветвления) и вызова программ. Существуют два способа изменения порядка выполнения команд программы: безусловный и условный переход.

При безусловном способе последовательность выполнения программы изменяется всякий раз, когда встречается команда безусловного перехода (JMP).

В соответствии со вторым способом последовательность изменяется только в том случае, если значение указанного условия совпадает с заданным. Для организации такого изменения служат команды условного перехода (см. лабораторную работу №4).

Обычно алгоритмы с ветвящейся структурой содержат в себе циклические элементы. Пример алгоритма с ветвящейся структурой можно рассматривать на примере многобайтных чисел. Диапазон чисел, представляемых в машинах с микропроцессором К580ИК80А, небольшой. Поэтому при сложении больших чисел (число байт больше двух) применяется побайтное сложение с переносом (ADC), причем операция начинается со сложения младших байтов. Все последующие байты складываются с переносом предыдущего сложения. Схема алгоритма сложения многобайтовых чисел приведена на рис.5.1.

Рис.5.1

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

Загрузка адресов памяти, в которых хранится значение байтов слагаемых чисел, производится с помощью команд LXI.

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

В блоке 6 алгоритма осуществляется условный переход, который определяет по условию равенства нулю содержимое счетчика. Если счетчик не равен нулю, процесс сложения продолжается. При этом в седьмом блоке с помощью команд инкремента в регистрах адресов слагаемых байтов устанавливается следующий адрес и, используя команду безусловного перехода JMP,происходит возврат к блоку 4 для выполнения операции сложения. В случае равенства 0 содержимое счетчика вычислительный процесс прекращается и происходит переход на конец программы.

Программа сложения приведена в табл.5.1.

В программе N— количество байтов слагаемого числа,FIRST — адрес младшего байта 1-го слагаемого,SECND — адрес младшего байта 2-го слагаемого,LOOP, DONE— метки программы. Байты слагаемых чисел расположены в следующих друг за другом ячейках памяти, причем младший байт находится в ячейке с меньшим номером.

Таблица 5.1

MVI E,

N

Организация счетчика до N

XRA A

Очистка бита перехода

LXI B,

FIRST

Загрузка адреса младших байтов обоих слагаемых в регистры BC и HL

LXI H,

SECOND

LOOP:

LDAX B

Загрузка байта из регистра BC в аккумулятор

ADC M

Сложение байтов запомнить в BC

STAX B

DCR E

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

JZ DONE

Условный переход по «0»

INX B

Увеличение BC на 1

INX H

Увеличение HL на 1

JMP LOOP

Перейти на метку

DONE:

HLT

Выход