Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛАБОРАТОРНА РОБОТА общее.doc
Скачиваний:
18
Добавлен:
18.03.2015
Размер:
5.16 Mб
Скачать

Непряма адресація

У додатку в командах MOV записаний регістр М. Однак це не реальний регістр. Так позначається комірка пам'яті, адреса якої запам'ятовується в регістрах H і L. Така адресація називається непрямою, тобто команда вказує, де запам'ятовується адреса, а не дійсна адреса (у цьому випадку регістри H,L). Наприклад. Якщо регістр Н містить 12, а регістр L - 37 команда MOV A, M буде завантажувати в акумулятор зміст ячейки пам’яті з адресою 1237. Результат буде той же, як при команді LDA 1237. Це являє приклад того, як одна операція може бути виконана 2-ма способами. MOV A, M є однобайтною командою, але вимагає попереднього навантаження H, l. З іншого боку, LDA 1237 є 3-байтной командою. Однак її часто використовують, тому що вона не вимагає запам'ятовування адреси в регістрах H, L. Непряма адресація особливо зручна при роботі з таблицею.

Проведемо експеримент для показу використання регістрів загального призначення при роботі команди MOV.

  1. Ввести програму, яка наведена в таблиці 4./програма спочатку заносить в регістр В число 37, потім переносить його зміст в регістр Н, потім нарощує регістр Н/.

Таблиця 4.

Адреси

Дані

Команди

Коментарі

8000

8001

8002

8003

06

37

60

24

MVI B,37

MOV H,B

INR H

завантаження числа 37 у регістр В

Завантаження регістра Н змістом регістра В

Збільшення змісту регістру Н

2. Упевніться, що програма правильно записана у пам’яті.

3. Встановити тумблер АВТ-ШАГ у положення ШАГ.

4. Натисніть послідовно кнопки 8,0,0,0, УСТ.АД.

5. Натисніть кнопку ПУСК. При цьому виконується команда MVI B,37 на індикаторі висвітлюється число 8002 - це адреса наступної команди, записана в програмному лічильнику. На індикаторі данних у двох правих розрядах висвітлюється зміст флагового регістру, а у двох лівих - зміст акумулятора.

6. Натисніть послідовно кнопки 8,3,Е,9, УСТ.АД. На індикаторі адрес установиться адреса регістра В. На індикаторі даних у двох правих розрядах висвітлюється число 37 - зміст регістра В після виконання команди MVI B,37.

Таблиця 5.

Адреси

Дані

Команди

Коментарі

8000

8001

8002

8003

8004

8005

8006

8007

8008

8009

800А

800У

800С

800D

800E

800F

21

F7

83

36

00

CD

C0

01

21

F7

83

D7

34

C3

05

80

LXI H, 83F7

MVI M, 0

CALL SEG

LXI H, 83F7

RST2

INR M

JMP 8005

завантаження в регістр (L, H) адреса комірки висвітлюваного індикатору

очищення комірки висвітлюваного індикатору

виклик підпрограми висвітлюваного символу

відновлення змісту регістра (L,H)

крапка переривання

збільшення змісту комірки висвітлюваного індикатора

перехід до програми висвітлюваного символу

Програма обробки переривання

8015

8016

8017

8018

8019

801А

801У

801С

801D

801E

801F

83D1

83D2

83D3

CD

16

02

10

СА

ОС

80

C3

05

80

З3

15

80

CALL KEY IN

СРІ 10

JZ

800C

JMP 8005

JMP 8015

виклик підпрограми опитування клавіатури

перевірка: чи натиснута кнопка ПУСК

перехід до збільшення змісту комірки

відновлення змісту регістру (L,H)

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

перехід до підпрограми обробки переривання

  1. Натисніть кнопку ВОЗВР. На індикаторі адрес висвітлюється адреса 8003. При цьому виконається команда MOV H,B.

  2. Установити на індикаторі адрес число 83Е5 - адреса регістра Н. На індикаторі даних у двох правих розрядах висвітлюється число 37 - зміст регістра Н після виконання команди MOV H,B. Установивши на індикаторі адрес адреса регістра В, переконаєтеся, що цей регістр усе ще містить число 37.

  3. Натисніть кнопку ВОЗВР. На індикаторі адрес висвітлюється адреса 8004-адреса наступної команди. При цьому виконається команда INR H. Установивши на індикаторі адрес адреса регістра Н, переконаєтеся, що його вміст збільшився на 1, тобто стало дорівнює 38.

Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.

Оставленные комментарии видны всем.