Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lr3_ArhPC.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
68.18 Кб
Скачать

4. Порядок виконання експериментів.

Запустіть емулятор.

Експеримент 1. Виконання простих команд завантаження та пересилання даних.

Виконайте наведені нижче приклади програм в потактовому режимі. Зафіксуйте, скільки циклів та тактів займає виконання кожної із програм.

1. Завантаження регістра В числом 3Fh за допомогою команди MVI В, 3Fh

Введіть таку програму:

Адреса комірки ОЗП

код команди

Мнемонічний запис команди

Команда мікропроцесора

0000

06 3F

MVI B, 3Fh

3Fh → регістр В

-

-

-

-

2. Завантаження регістрової пари DE двобайтним числом 3А76h за допомогою команди MVI R, d8

Введіть таку програму:

Адреса комірки ОЗП

код команди

Мнемонічний запис команди

Команда мікропроцесора

0000

1E 76

MVI E, 76h

76h → регістр E

0002

16 3A

MVI D, 3Ah

3Ah→ регістр D

-

-

-

-

3. Завантаження комірки пам'яті за адресою 000Bh числом A6h за допомогою команди MVI М, А6h

Задайте початкові значення регістрів H=00; L=0В.

Введіть таку програму:

Адреса комірки ОЗП

код команди

Мнемонічний запис команди

Команда мікропроцесора

0000

21 0B 00

LXI H, 000Bh

000Bh→ регістрову пару H

0003

36 A6

MVI М, 0A6h

0A6h → регістр M, що рівносильне 0A6h → комірка ОЗП за адресою 000Bh

-

-

-

-

4. Пересилання даних з одного регістра в інший (наприклад з В в Е) за допомогою команди MОV Е, В

Задайте початкові значення регістра В=55

Введіть таку програму:

Адреса комірки ОЗП

код команди

Мнемонічний запис команди

Команда мікропроцесора

0000

06 55

MVI B, 55h

55h → регістр В

0000

58

MОV Е, В

дані регістру В → регістр Е

-

-

-

-

5. Обмін даними між регістрами HL та DE за допомогою команди XCHG. Задайте початкові значення регістрів D=55; E=66; H=07; L=0E.

Введіть таку програму:

Адреса комірки ОЗП

код команди

Мнемонічний запис команди

Команда мікропроцесора

0000

11 66 55

LXI D, 5566h

55h → регістр D; 66h → регістр Е

0003

21 0E 07

LXI H, 070Eh

07h → регістр H; 0Eh → регістр L

0007

EB

XCHG

рег. H ↔ рег. D; рег. L ↔ рег. Е

-

-

-

-

Зробіть висновки.

Експеримент 2. Створення масиву даних в пам'яті за допомогою команд пересилання даних.

Завдання: Створити в пам'яті масив даних згідно таблиці 2:

Таблиця 2. Завдання на створення масиву чисел в пам’яті

Адреса

Значення

Адреса

Значення

Адреса

Значення

1020h

ААh

1024h

А2h

1028h

9Аh

1021h

А8h

1025h

А0h

1029h

98h

1022h

А6h

1026h

9Еh

1023h

А4h

1027h

9Сh

Неважко замітити, що послідовність значень являє собою арифметичну прогресію з показником -2. Тому необхідно виконати такі пересилання:

АА-2×і → M(HL+i) для всіх і = 0...10.

Алгоритм програми можна представити в вигляді:

Для написання програми нам потрібні деякі команди, які детальніше будуть розглядатися в наступних лабораторних роботах.

Це арифметичні команди:

INX H - збільшення значення регістрової пари HL на одиницю;

SUI d8 – віднімання від акумулятора A константи d8 з розміщенням результату в акумуляторі A;

CPI d8 - віднімання від акумулятора A константи d8 без розміщенням результату в акумуляторі A;

та команди передачі керування:

JNC addr - перехід на команду програми за адресою addr в випадку, якщо в результаті арифметичних дій встановлено прапорець стану C=1 (був нульовий результат попередніх математичних чи логічних операцій);

JNC addr - умовний перехід на команду програми за адресою addr. Ця команда трибайтова, в другому і третьому байтах записана адреса комірки програмної пам'яті, в якій міститься команда, що буде виконуватись наступною. Якщо C=0 не виконана, то виконується команда, що записана наступною. Умова C=1 може бути виконана, якщо в результаті арифметичних дій над вмістом регістрів загального призначення чи комірки пам'яті було отримано від’ємний результат.

Команда INX H - однобайтова, результат її виконання не впливає на значення прапорців стану.

Спочатку в регістри заносяться початкові дані: спочатку командою XRA A признак переносу в старший байт установлюється в 0 заодно установлюється в 0 і вміст регістру А. Потім в регістр А заноситься константа 0ААh – значення першої комірки майбутнього масиву, а регістрову пару Н заноситься константа 1020h – початкова адреса першої комірки майбутнього масиву. Після чого вміст акумулятора А передається в регістр М, в якості якого завжди виступає комірка пам’яті з адресою, розміщеною в регістровій парі Н. Долі, вміст регістрової пари Н збільшується на 1, тим самим змінюється адреса комірки пам’яті, яка буде виконувати роль регістра М. Таким чином змінюється комірка пам’яті для наступного елемента масиву. Потім, вміст А зменшується на константу 02h, тим самим формується значення вмісту наступного елемента масиву. Це є підготовкою вихідних даних для наступного кроку програми. Для з’ясування кінця формування масиву необхідно порівняти значення вмісту наступного елементу масиву з значення вмісту кінцевого елемента масиву. Якщо значення вмісту наступного елемента масиву не менше значення вмісту кінцевого елемента масиву, то командою умовного переходу передаємо керування на раніше виконану команду, якою вміст акумулятора А передається в регістр М з повторенням вище зазначених дій . Якщо ж значення вмісту наступного елемента масиву менше значення вмісту кінцевого елемента масиву, то в цьому випадку формування заданого масиву завершується.

Занесіть програму в пам'ять та виконайте її.

Адреса комірки ОЗП

код команди

Мнемонічний запис команди

Команда мікропроцесора

0000

AF

XRA A

(A) ← 00h; (C) ← 0

0001

3E AA

MVI A, 0AAh

(A) ← 0AAh

0003

21 20 10

LXI H,1020h

(H) ← 10H; (L) ) ← 20h

0006

77

MOV M, A

((HL)) ← (A)

0007

23

INX H

(H) ← (H)+1

0008

D6 02

SUI 02h

(A) ← (A) – 02h

000A

FE 98

CPI 98h

(A) – 98h

000C

D2 05 00

JNC 0006h

якщо (C) = 0 то (PC) ← 0006h

000F

00

NOP

Перевірте значення комірок пам'яті починаючи з адреси 1020h.

Запишіть значення комірок. Зробити висновок.

Висновок: На даній лабораторній роботі ми навчилися створювати програми з командами пересилання даних.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]