Главная страница
Навигация по странице:

  • Лабораторная работа № 3 Тема: Исследование выполнения логических операций. Цель работы

  • Ход работы: Вариант 11. Задание

  • Теоретические сведения

  • ЛР3_Овчинкина_Е.П._группа_ИВТ-б-з-201_Системное_программирование. Исследование выполнения логических операций


    Скачать 1.71 Mb.
    НазваниеИсследование выполнения логических операций
    Дата12.04.2023
    Размер1.71 Mb.
    Формат файлаdocx
    Имя файлаЛР3_Овчинкина_Е.П._группа_ИВТ-б-з-201_Системное_программирование.docx
    ТипЛабораторная работа
    #1057847

    МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ

    РОССИЙСКОЙ ФЕДЕРАЦИИ

    ФГАОУ ВО «Крымский федеральный университет имени В. И. Вернадского»

    Физико-технический институт

    Кафедра компьютерной инженерии и моделирования
    Лабораторная работа №3

    по курсу «Системное программирование»

    на тему: «Исследование выполнения логических операций»





    Выполнила:

    студентка 3 курса

    группы ИВТ-б-з-201

    Овчинкина Е.П.






    Проверил:

    доцент кафедры компьютерной инженерии и моделирования

    Ислямов Р.И.



    Симферополь, 2022




    Лабораторная работа № 3

    Тема: Исследование выполнения логических операций.

    Цель работы:

    1. Практически закрепить знание теоретических сведений о программировании логических операций микропроцессорами.

    2. Изучить команды МП КР580ВМ80А для выполнения логических операций.

    3. Привить практические навыки написания и выполнения программ для программирования логических операций в машинных кодах для микропроцессора.

    Ход работы:

    Вариант 11.

    Задание:

    Напишите в табличном виде программу, реализующую функцию алгебры логики согласно индивидуальному заданию и составьте ее блок-схему. Решите задачу аналитически, выполняя логические операции в том порядке, который указывает заданная ФАЛ с учетом принятого приоритета. Введите разработанную программу в память УМК и выполните ее в пошаговом режиме.

    Теоретические сведения:

    Все операции логики выполняются с двумя операндами, один из которых всегда находится в аккумуляторе, а результат операции сохраняется в аккумуляторе. Операции сдвига выполняются только над операндами, которые находятся в аккумуляторе, а из всех имеющихся флагов используются только флаги знака Z и переноса CY. Различают два типа команд сдвига: сдвиг циклический и сдвиг с переносом.
    Примером команды первого типа является команда RLC (сдвиг циклический по левую сторону), если содержимое аккумулятора сдвигается по левую сторону на один разряд. При этом устанавливается в состоянии бита старшего разряда аккумулятора А7, бит младшего разряда аккумулятора А0 и бит переноса CY.

    Блок-схема функции алгебры логики согласно индивидуальному заданию.



    Таблица 2. Индивидуальное задание.

    Номер варианта

    Функции алгебры логики

    Адрес ячейки памяти

    Данные

    11

    D=A1A16+MvB^C

    9A4

    23 6B 86 8

    Таблица 2. Таблица программы, реализующей заданную функцию алгебры логики.

    Адрес

    Мнемоника команды

    Код команды

    Комментарий


    800

    MVI A, 23

    3E 23

    Загрузка числа 2316 в аккумулятор

    802

    MVI B, 86

    06 86

    Загрузка числа 8616 в регистр B

    804

    MVI C, 08

    0E 08

    Загрузка числа 0816 в регистр С

    806

    LXI H, 9A4

    21 A4 09

    Загрузка регистровой пары Н адресом ячейки памяти М

    808

    MVI M, 6B

    36 6B

    Загрузка числа 6B16 в ячейку памяти М

    80B

    ANI 1A

    E6 1A

    логическое И, над содержимым аккумулятора

    80D

    XRA M

    AE

    Сложение по модулю 2 содержимого аккумулятора и ячейки памяти М.

    80E

    ORA B

    B0

    Логическое сложение содержимого аккумулятора А с содержимым регистра В

    80F

    ANA C

    A1

    Логическое умножение

    810

    MOV D, A

    57 A

    Загрузка содержимого регистра D в аккумулятор


    Операции «*» и «^» это побитовое логическое И между двумя числами (AND).

    Знак «+» - это сумма по модулю 2 или операция XOR.

    V - это операция ИЛИ между двумя числами (OR).

    A = 23

    M = 6B

    B = 86

    C = 08

    Последовательность команд будет выглядеть следующим образом:

    1. Размещаем данные в соответствующих регистрах;

    2. Заносим адрес ячейки памяти в регистровую пару H;

    3. Заносим данные в ячейку памяти;

    4. Выполняем логическое И регистра А с константы 1A с помощью команды ANI 1A;

    5. Выполняем сумму по модулю два регистра А с ячейкой памяти M с помощью команды XRA M;

    6. Выполняем логическое ИЛИ регистра А с регистром B с помощью ORA B;

    7. Делаем логическое И регистра А с регистром C с помощью команды ANA C;

    8. Записываем результат в регистр D c помощью MOV D, A.


    Расположение логических команд в системе команд микропроцессора KR580BM80.


    Рисунок 1. Расположение логических команд.

    Ввела данные в регистры и провела необходимые перемещения для начала выполнения логических операций.


    Рисунок 2. Загрузка данных в регистры.

    По завершению выполнения логических операций получила результат.



    Рисунок 3. Результат D = 08.

    Все значения в регистрах на каждом шаге выполнения программы соответствуют расчетным в таблице 2. Следовательно программа написана и выполнена успешно.

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

    Номер варианта

    Функции алгебры логики

    Данные

    11

    DE=HLvBC^DE

    E769 BC14 A1D7

    1. Таблица 4. Таблица программы по индивидуальному заданию задания

    для программирования логических операций над шестнадцатиразрядными числами.

    Адрес

    Мнемоника команды

    Код команды

    Комментарий

    800

    LXI B, BC14

    01 14 BC

    Загрузка числа BC1416 в регистр B

    803

    LXI D, A1D7

    11 D7 A1

    Загрузка числа A1D716 в регистр D

    809

    LXI H, E769

    21 69 E7

    Загрузка числа E769 16 в регистр H

    80A

    MOV A, L

    7D

    Загрузка содержимого регистра L в аккумулятор

    80B

    ORA C

    B1

    Логическое сложение содержимого аккумулятора с содержимым регистра C

    80C

    ANA E

    A3

    Логическое умножение

    80D

    MOV E, A

    5F

    Перемещение содержимого аккумулятора в регистр E

    80E

    MOV A, H

    7C

    Перемещение содержимого регистра H в аккумулятор

    80F

    ORA B

    B0

    Логическое сложение содержимого аккумулятора с содержимым регистра B

    810

    ANA D

    A2

    Логическое умножение

    811

    MOV D, A

    57

    Перемещение содержимого аккумулятора в регистр D


    HL = E769

    BC = BC14

    DE = A1D7

    Порядок выполнения

    1. Загружаем регистровые пары данными

    2. Выполняем логические операции для нижних байтов. Будем работать с регистрами C, E и L
      Загружаем L в А с помощью команды MOV A, L

    3. Делаем логическое ИЛИ регистров А и C с помощью команды ORA C

    4. Делаем логическое И регистров А и E с помощью команды ANA E

    5. Записываем результат A в регистр L с помощью команды MOV L, A

    6. Теперь работаем с высокими байтами, т.е. с регистрами B, D, H
      Загружаем H в А с помощью команды MOV A, H

    7. Делаем логическое ИЛИ регистров А и B с помощью команды ORA B

    8. Делаем логическое И регистров А и D с помощью команды ANA D

    9. Записываем результат A в регистр В с помощью команды MOV B, A




    Рисунок 4. Результат: DE = A155.

    Программа выполнена в соответствии с расчетом в таблице 4.

    Таблица 5. Индивидуальные задания для программирования для программирования операций сравнения двоичных чисел.

    Номер варианта

    Регистр

    Адрес ячейки памяти M

    11

    H

    9B4

    Таблица 6. Таблица программы для программирования операций сравнения двоичных чисел.

    Адрес

    Мнемоника команды

    Код команды

    Комментарий

    800

    MVI A, 69

    3E 69

    Загрузка аккумулятора

    802

    LXI H, 9B4

    21 B4 09

    Загрузка регистровой пары HL

    805

    MVI M, 69

    36 69

    Загрузка ячейки памяти M

    807

    MVI H, 14

    26 14

    Загрузка регистра H

    809

    CMP H

    BC

    Сравнение значений в аккумуляторе и в регистре

    80A

    CMP D7

    BA D7

    Сравнение значений в аккумуляторе и в регистре

    80B

    LXI H, 9B4

    21 B4 09

    Загрузка регистровой пары HL

    80C

    CMP M

    BE

    Сравнение значений в аккумуляторе и в ячейке памяти

    Таблица 7. Таблица сравнения двоичных чисел.

    Адрес

    Мнемокод команды

    Код команды

    Результат решения

    аналитически

    Программно

    P

    S

    Z

    CY

    P

    S

    Z

    CY

    809

    CMP M

    BE

    0

    0

    0

    1

    0

    0

    0

    1

    80A

    CPI 5

    FE 5

    0

    1

    0

    1

    0

    1

    0

    1

    80C

    CMP B

    B8

    1

    1

    0

    0

    1

    1

    0

    0

    Расположение логических команд в системе команд микропроцессора KR580BM80.



    Рисунок 5. Расположение логических команд

    В этом задании сравнила регистр А с регистром B, с ячейкой памяти M и с константой K. В качестве исходных данных взяла данные из задания 2, разместив их по своему усмотрению в аккумуляторе, заданных регистре и ячейке памяти, во втором байте команды

    В регистр А запишем 69

    В регистр HL запишем адрес 9B4

    В регистр M запишем 69

    В регистр H запишем 14

    Число K будет D7

    Порядок действий

    1. Запишем в регистры данные

    2. Сделаем сравнение регистра А с регистром B с помощью CMP B

    3. Сделаем сравнение регистра А с ячейкой памяти M с помощью CMP M

    4. Сделаем сравнение регистра А с константой K с помощью CPI C0

    Получила результат сравнения А с H.



    Рисунок 6. Результат сравнения А с H.

    Результат сравнения А с M



    Рисунок 7. Результат сравнения А с M

    Получила результат сравнения А с D716



    8. Результат сравнения А с D716

    Вывод: в процессе выполнения лабораторной работы я применила на практике знания, полученные из теоретического материала. На практике закрепила знание теоретических сведений о программировании логических операций микропроцессорами, изучила команды МП КР580ВМ80А для выполнения логических операций и получила практические навыки написания и выполнения программ для программирования логических операций в машинных кодах для микропроцессора.


    написать администратору сайта