Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по ТСА.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
914.94 Кб
Скачать

2.2.Задания для самоподготовки

  1. Изучить способы адресации МП КР580.

  2. Ознакомиться с языком программирования Ассемблер и с программированием в машинных кодах для МП БИС КР580.

  3. Ознакомиться с системой команд МП КР580.

  4. Рассмотреть особенности выполнения команд пересылки данных, арифметических и логических команд (в частности, подробно рассмотреть особенности выполнения команд INR A, DCR A, ADD A, ANA A, ORA A, CMP A, DAA).

  5. Самостоятельно составить программу сравнения двух 8-разрядных чисел, находящихся в ячейках памяти с адресами 0100h и 0101h, и записи большего из них в память по адресу 0102h.

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

Задание 2.2. Исследование программы по выполнению арифметических и логических операций с одним операндом (над содержимым аккумулятора).

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

  1. Ввести программу Прогр.  2 .2, исправить ошибки, осуществить пуск.

  2. Исследовать процесс выполнения программы в пошаговом режиме (обратить особое внимание на изменения регистра флагов).

  3. Заменяя во второй строке программы число, записываемое в регистр B, исследовать программу при различном значении этого числа.

  4. Занести результаты выполнения программы в таблицу Табл.  2 .2 (см. ниже, числа в таблицу заносить в 16-ричной системе счисления).

Прогр. 2.2. Программа по выполнению арифметических и логических операций с одним операндом.

LHLD 0100h

;В HL адрес ячейки памяти (начало массива).

MVI B, 1Eh

;Записать число в регистр B (исходное число).

MOV A, B

; Записать исходное число в Акк.

CMA

;1. Инверсия Акк.

CALL PROC_1

; Переход на подпрограмму PROC_1.

INR A

;2. Инкрементация Акк.

CALL PROC_1

; Переход на подпрограмму PROC_1.

DCR A

;3. Декрементация Акк.

CALL PROC_1

; Переход на подпрограмму PROC_1.

ADD A

;4. Умножить Акк. на 2

CALL PROC_1

; Переход на подпрограмму PROC_1.

ANA A

;5. Выполнить над Акк. операцию лог. И.

CALL PROC_1

; Переход на подпрограмму PROC_1.

ORA A

;6. Выполнить над Акк. операцию лог. ИЛИ.

CALL PROC_1

; Переход на подпрограмму PROC_1.

CMP A

;7. Сравнить Акк с самим собой.

CALL PROC_1

; Переход на подпрограмму PROC_1.

DAA

;8. Выполнить десятичную коррекцию над Акк.

CALL PROC_1

; Переход на подпрограмму PROC_1.

HLT

;Завершение программы.

PROC_1 :

MOV M, A

; Записать содержимое Акк в ячейку по адресу из HL.

INX H

; Инкрементация регистровой пары HL.

MOV A, B

; Записать исходное число в Акк.

RET

;Возврат из подпрограммы.

Табл. 2.2. Результаты выполнения программы Прогр.  2 .2.

A

CMA

INR

DCR

ADD

ANA

ORA

CMP

DAA

1

1Eh

E1h

1Fh

1Dh

3Ch

1Eh

1Eh

1Eh

30

2





















Задание 2.3. Исследование программы по выполнению арифметических и логических операций с двумя операндами (один из операндов – аккумулятор).

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

  1. Ввести программу Прогр.  2 .3, исправить ошибки, осуществить пуск.

  2. Исследовать процесс выполнения программы в пошаговом режиме (обратить особое внимание на изменения регистра флагов).

  3. Заменяя в третьей строке программы число, записываемое в регистр C, исследовать программу при различном значении этого числа.

  4. Занести результаты выполнения программы в таблицу Табл.  2 .3 (см. ниже, числа в таблицу заносить в 16-ричной системе счисления).

Прогр. 2.3. Программа по выполнению арифметических и логических операций с двумя операндами.

LHLD 0100h

;В HL адрес ячейки памяти (начало массива).

MVI B, 7Ch

;Записать число в регистр B (первый операнд).

MVI C, 1Eh

;Записать число в регистр C (второй операнд).

MOV A, B

; Записать 1-й операнд в Акк.

ADD C

;1. Сложение операндов.

CALL PROC_1

; Переход на подпрограмму PROC_1.

SUB C

;2. Вычитание 2-го операнда из 1-го.

CALL PROC_1

; Переход на подпрограмму PROC_1.

ANA C

;3. Выполнение над операндами операции лог. И.

CALL PROC_1

; Переход на подпрограмму PROC_1.

ORA C

;4. Выполнение над операндами операции лог. ИЛИ.

CALL PROC_1

; Переход на подпрограмму PROC_1.

XRA C

;5. Выполнение над операндами операции лог. исключающего ИЛИ.

CALL PROC_1

; Переход на подпрограмму PROC_1.

CMP C

;6. Сравнение операндов.

CALL PROC_1

; Переход на подпрограмму PROC_1.

HLT

;Завершение программы.

PROC_1 :

MOV M, A

; Записать результат (Акк) в ячейку по адресу из HL.

INX H

; Инкрементация регистровой пары HL.

MOV A, B

; Записать исходное число в Акк.

RET

;Возврат из подпрограммы.

Табл. 2.3. Результаты выполнения программы Прогр.  2 .3.

B

C

ADD

SUB

ANA

ORA

XRA

CMP

1

7Ch

1Eh

9Ah

5Eh

1Ch

7Eh

62

7C

2

7Ch

















7Ch

Задание 2.4. Исследование программы сравнения двух чисел из памяти и записи большего из них обратно в память.

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

  1. Ввести программу, разработанную при выполнении п. 5 задания для самоподготовки (см. выше).

  2. Осуществить пуск программы и проверить результат сравнения следующих чисел: 33h и 2Eh, D8h и 25h, 98h и A5h.