Партнерка на США и Канаду по недвижимости, выплаты в крипто

  • 30% recurring commission
  • Выплаты в USDT
  • Вывод каждую неделю
  • Комиссия до 5 лет за каждого referral

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

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

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

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

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

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

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

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

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

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

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

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

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.1.

НЕ нашли? Не то? Что вы ищете?

A

CMA

INR

DCR

ADD

ANA

ORA

CMP

DAA

1

1Eh

E1h

1Fh

1Dh

3Ch

1Eh

1Eh

1Eh

30

2

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

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

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

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

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

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

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

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.2.

B

C

ADD

SUB

ANA

ORA

XRA

CMP

1

7Ch

1Eh

9Ah

5Eh

1Ch

7Eh

62

7C

2

7Ch

7Ch

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

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

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

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

3.4.  Содержание отчета

Отчет должен содержать:

1.  Название работы, фамилию и инициалы студента, номер группы, цель ра­боты.

2.  Информацию о способах адресации МП КР580.

3.  Информацию о группах и подгруппах системы команд МП КР580.

4.  Программы Прогр. 2.1, Прогр. 2.2 и программу, разработанную при выполнении п. 5 задания для самоподготовки (стр. 37) с комментариями и в печатном виде.

5.  Таблицы Табл. 2.2 и Табл. 2.3 с результатами выполнения заданий – числа в 16-ричной системе счисления.

6.  Выводы по лабораторной работе.

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

1.  Способы адресации МП КР580.

2.  Что такое машинный такт и машинный цикл?

3.  Какие бывают в МП КР580 машинные циклы?

4.  Назначение общих регистров процессора (РОН), указателя стека, счетчика команд, регистра флагов.

5.  Какие бывают команды пересылки, арифметические команды, логические команды, команды передачи управления, специальные команды?

6.  Как работают команды CMP, CPI?

Лабораторная работа №4.  Подпрограммы и стек

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

4.1.  Краткие сведения из теории

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

Подпрограмма – последовательность команд, которая может быть вызвана из любого места программы любое количество раз. Процесс передачи управления подпрограмме называется ее вызовом. Данные и адреса, требуемые для работы подпрограммы, называются входными параметрами. Результат работы подпрограммы – выходные параметры. Для безусловного вызова подпрограммы и возврата из нее используются команды CALL <Адрес> и RET. Команда CALL <Адрес> загружает в программный счетчик (СК, PC) МП содержимое байтов <Адрес>, записанных в последних двух байтах после байта кода команды. Содержимое первого байта это младший байт адреса перехода, а содержимое второго байта это старший байт адреса перехода. Команда RET (C9) помещает в программный счетчик последнее записанное на данный момент в стеке число (адрес возврата из подпрограммы). После этого выполнение программы будет осуществляться с этого адреса. Любая подпрограмма должна заканчиваться командой RET.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14