Система команд микропроцессора КР580вм80а на базе микро-ЭВМ "Электроника 580". Технические характеристики микро-ЭВМ, страница 13

Аналогично выполняется команда «циклический сдвиг аккумулятора вправо». При этом содержимое младшего разряда аккумулятора передается в его старший разряд и в разряд переноса (С) регистра состояния, а содержимое каждого разряда аккумулятора перемещается в соседний, младший разряд.

Командой «циклический сдвиг аккумулятора влево через бит переноса» все данные, находящиеся в аккумуляторе и разряде переноса (С) регистра состояния, сдвигаются на одну позицию влево. При этом содержимое флага переноса перемешается в младший разряд аккумулятора, а содержимое старшего разряда аккумулятора перемещается в разряд переноса (С) регистра состояния.

Команда «циклический сдвиг аккумулятора вправо» выполняет аналогичное действие, при этом данные перемещаются по кольцу в противоположном направлении.

5.3. Задания к лабораторной работе

Задание №1.

В заданном массиве (10х1) среди чисел, содержащих во втором и пятом разрядах двоичного кода единицу, найти наибольшее.

Для этого необходимо:

а) составить программу обработки массива в соответствии со следующим алгоритмом:

1. Загрузить в один из регистров общего назначения (РОН) количество элементов массива.

2. Загрузить в регистровую пару HL начальный адрес массива.

3. Обнулить регистр результата.

4. Сравнить текущий элемент массива с «маской».

5. Если второй и пятый разряды двоичного кода текущего элемента не содержат единицы, перейти к п.9.

6. Сравнить текущий элемент с числом, находящемся в регистре результата.

7. Если текущий элемент меньше содержимого регистра результата, перейти к п.9.

8. Записать текущий элемент в регистр результата.

9. Увеличить на 1 текущий адрес массива.

10. Уменьшить на 1 число элементов массива.

11. Если число элементов массива не равно 0, то перейти к п.4.

12. Останов.

Текст программы и исходные данные желательно расположить в адресном пространстве ОЗУ в соответствии с таблицей 5.1;

Таблица 5.1

Адрес

Содержимое

8000

81FF

Текст программы

8200

Массив

820А

б) ввести исходный массив (при вводе массива предусмотреть не менее трех различных элементов, содержащих единицу во втором и пятом разрядах двоичного кода) и выполнить программу в пошаговом режиме;

в) после выполнения каждого шага программы заносить в таблицу 5.2 содержимое регистров А, В, С, H, L, а также состояние флагов нулевого результата и переноса;

Таблица 5.2

шага

Регистры

Флаг

нуля

Флаг

переноса

Комментарий

А

В

С

H

L

0

00

00

00

00

00

X

X

Исходные данные

1

2

Задание №2.

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

Для этого необходимо:

а) составить программу в соответствии со следующим алгоритмом:

1. Загрузить вычитаемое в аккумулятор.

2. Инвертировать содержимое аккумулятора.

3. Увеличить полученное число на единицу.

4. К полученному дополнительному коду вычитаемого прибавить уменьшаемое.

5. Сохранить полученный результат как разность.

6. Сдвинуть полученный результат влево через флаг переноса.

7. Если содержимое флага переноса равно нулю, перейти к п.10.

8. Проинвертировать результат полученный в п.4 с последующим прибавлением к нему единицы младшего разряда.

9. Сохранить полученный результат как разность.

10. Останов.

Текст программы и исходные данные желательно расположить в адресном пространстве ОЗУ в соответствии с таблицей 5.3;

Таблица 5.3