Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab. №16 (чистовик (ё)).doc
Скачиваний:
23
Добавлен:
13.02.2016
Размер:
196.61 Кб
Скачать

7 Содержание отчёта

    1. Наименование и цели работы.

    2. Условия, проверочные программы и результаты выполнения заданий № 1…4 в виде таблиц.

    3. Ручной расчёт ожидаемого результата.

    4. Краткие пояснения по ходу выполнения и результатам для каждого задания.

    5. Ответы на контрольные вопросы.

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

    1. Поясните разницу между командами ADD E и ADC E.

    2. Поясните разницу между командами ADI, 50H и ACI, 50H.

    3. Укажите, какой командой выполняется сложение 16-разрядных чисел.

    4. Укажите, за сколько циклов и тактов выполняется команда SBB M и поясните, какие действия выполняет МП в каждом цикле.

    5. Укажите, за сколько циклов и тактов выполняется команда ACI, 0FH и поясните, какие действия выполняет МП в каждом цикле.

9 Требования к знаниям и умениям студентов

В результате выполнения лабораторной работы студенты должны знать:

  • систему команд МП КР580ВМ80;

  • арифметические команды;

  • назначение команд системной программы МОНИТОР УМК.

Должны уметь:

  • составлять программы, содержащие арифметические команды;

  • готовить к работе УМК;

  • вводить и выполнять программы в автоматическом режиме.

10 Методические указания

    1. Теоретическое обоснование

В микропроцессоре КР580ВМ80 предусмотрены следующие команды двоичной арифметики:

  1. сложение 8-разрядных чисел;

  2. сложение 16-разрядных чисел;

  3. вычитание 8-разрядных чисел;

  4. инкремент;

  5. декремент.

Все арифметические операции с 8-разрядными операндами предполагают, что один из операндов размещается в регистре-аккумуляторе, а другой либо в регистре, либо в памяти (при этом адрес ячейки задаётся в регистровой паре HL), либо является непосредственным числом, заданным в самой команде. Вычитание производится всегда из регистра-аккумулятора. Результат арифметической операции пересылается в регистр-аккумулятор. Кроме того, по результату арифметических операций сложения и вычитания устанавливаются биты признаков: С – переноса, Z – нуля, S – знака, P – чётности, AC – вспомогательного переноса.

Команды сложения 16-разрядных чисел, так называемые команды двойного сложения, предусматривают, что один из операндов находится в регистровой паре HL, а второй – либо в DE, либо в BC. Результат записывается в HL. Кроме того, по результату операции устанавливается либо сбрасывается бит переноса – C.

Команды инкремента увеличивают содержимое регистров, ячейки памяти по адресу в HL и регистровых пар на 1. Команда инкремент регистра и памяти изменяет биты признаков: Z, S, P, AC. Инкремент регистровой пары не затрагивает биты признаков.

Команды декремента уменьшают содержимое регистров, ячейки памяти по адресу в HL и регистровых пар на 1. Затрагиваемые биты признаков аналогичны команде инкремент.

    1. Команды сложения 8-разрядных чисел

ADD ri – сложение с содержимым регистра: A, B, C, D, E, H или L;

ADD M – сложение с содержимым ячейки памяти по адресу HL;

ADI <B2> – сложение с непосредственным числом, B2 – второй байт;

ADC ri – сложение с содержимым регистров A, B, C, D, E, H или L плюс бит переноса C;

ADC M – сложение с содержимым ячейки памяти по адресу HL плюс бит переноса C;

ACI <B2> – сложение с непосредственным числом (B2 – второй байт) плюс бит переноса С.

      1. Записать в память, начиная с адреса 0800H, коды программы (таблица 1), реализующей операцию:

A ← (A) + (B) + (M) + 1.

Таблица 1 – Контрольная программа сложения 8-разрядных чисел

Адрес

Команда

Операнд

Машинный код

Комментарий

0800

ADD

B

80

; A ← (A) + (B)

0801

LXI

H, 0900H

21 00 09

; Загр. HL=0900H, адр. M

0804

ADD

M

86

; A ← (A) + (M) по адр.

; HL

0805

ADI

01H

C6 01

; A ← (A) + 1

      1. Выполнить программу, предварительно задавая исходные значения в соответствии с таблицей 2 и проверить полученные результаты (результат операции в рег. A, биты признаков в рег. F):

СТ0800 0807ВП.

Таблица 2 – Исходные данные для контрольной программы сложения 8-разрядных чисел

Вариант

1

2

3

4

5

6

(A) – исх.

00

00

00

F0

FF

55

(B)

00

02

10

0E

00

AA

(M)

00

03

45

00

00

FF

(A) – рез.

01

06

56

FF

00

FF

(F)

02

06

06

86

57

86

Задание 1:

1. Написать и выполнить программу, реализующую операцию C ← (D) + (E) и заполнить таблицу 3. До выполнения программы вручную определить ожидаемый результат операции.

Таблица 3 – Исходные данные для проверочной программы сложения 8-разрядных чисел и результаты выполнения

Вариант

1

2

3

4

5

6

(D)

10

FF

C7

19

AA

E5

(E)

80

01

85

49

55

F0

(C)

(F)

Проверочную программу сложения записать в таблицу, аналогичную по форме таблице 1. Начальный адрес проверочной программы 0A00H.

    1. Команды вычитания 8-разрядных чисел

SUB ri – вычитание содержимого регистра: A, B, C, D, E, H или L;

SUB M – вычитание содержимого ячейки памяти по адресу HL;

SUI <B2> – вычитание непосредственного числа, B2 – второй байт;

SBB ri – вычитание содержимого регистров A, B, C, D, E, H или L минус бит переноса C;

SBB M – вычитание содержимого ячейки памяти по адресу HL минус бит переноса С;

SBI <B2> – вычитание непосредственного числа (B2 – второй байт) минус бит переноса C.

      1. Записать в память, начиная с адреса 0810H, коды программы (таблица 4), реализующей операцию:

A ← (A) – (B) – (M) – 1.

Таблица 4 – Контрольная программа вычитания 8-разрядных чисел

Адрес

Команда

Операнд

Машинный код

Комментарий

0810

SUB

B

90

; A ← (A) – (B)

0811

LXI

H, 0900H

21 00 09

; Загр. HL=0900H, адр. M

0814

SUB

M

96

; A ← (A) – (M) по адр.

; HL

0815

SBI

01H

DE 01

; A ← (A) – 1

      1. Выполнить программу, предварительно задавая исходные значения в соответствии с таблицей 5, и проверить полученные результаты:

СТ0810 0817ВП.

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

Вариант

1

2

3

4

5

6

(A) – исх.

FF

00

01

25

00

05

(B)

01

FF

01

20

00

06

(M)

01

00

00

04

00

FF

(A) – рез.

FC

00

FF

00

FF

FF

(F)

96

56

87

56

87

87

Задание 2:

1. Написать и выполнить программу, реализующую операцию C ← (D) – (E) – 10H, и заполнить таблицу 6. До выполнения программы вручную определить ожидаемый результат операции.

Таблица 6 – Исходные данные для проверочной программы вычитания 8-разрядных чисел и результаты выполнения

Вариант

1

2

3

4

5

6

(D)

1F

2E

3B

3C

4A

5D

(E)

02

0A

0A

11

20

3A

(C)

(F)

Проверочную программу вычитания записать в таблицу, аналогичную по форме таблице 4. Начальный адрес проверочной программы 0A10H.

    1. Команды двойного сложения

DAD H – сложение HL ← (HL) + (HL);

DAD B – сложение HL ← (HL) + (BC);

DAD D – сложение HL ← (HL) + (DE).

      1. Записать в память, начиная с адреса 0820H, коды программы (таблица 7), реализующей операцию:

HL ← (BC) + (DE).

Таблица 7 – Контрольная программа сложения 16-разрядных чисел

Адрес

Команда

Операнд

Машинный код

Комментарий

0820

MOV

H, B

60

; Пересылка H ← (B)

0821

MOV

L, C

69

; Пересылка L ← (C)

0822

DAD

D

19

; HL ← (HL) + (DE)

      1. Выполнить программу, предварительно задавая исходные значения в соответствии с таблицей 8, и проверить результаты (результат операции в паре рег. HL, биты условий в рег. F):

СТ0820 0823ВП.

Таблица 8 – Исходные данные для контрольной программы суммирования 16-разрядных чисел

Вариант

1

2

3

4

5

6

(BC) исх.

0000

7FFF

8000

55AA

ECB9

FFFF

(DE) исх.

7FFF

8000

8000

AA55

1347

8000

(HL) рез.

7FFF

FFFF

0000

FFFF

FFFF

7FFF

(F)

46

46

47

46

47

47

    1. Команды инкремента

INR ri – увеличение на 1 содержимого регистра: A, B, C, D, E, H или L;

INR M – увеличение на 1 содержимого ячейки памяти, адрес М в HL;

INX ri – увеличение на 1 содержимого пары регистров: BC, DE, HL или SP (указателя стека). В команде указывается идентификатор старшего регистра пары, например, INX B.

      1. Записать в память, начиная с адреса 0830H, код команды, которая указана в таблице 9.

Таблица 9 – Контрольная команда инкремента содержимого регистра E

Адрес

Команда

Операнд

Машинный код

Комментарий

0830

INR

E

1C

; E ← (E) + 1

      1. Выполнить данную команду для следующих исходных значений регистра E (таблица 10) и проверить полученные результаты:

СТ0830 0831ВП.

Таблица 10 – Исходные данные для контрольной команды инкремента содержимого регистра E

Вариант

1

2

3

4

(E) – исх.

00

0F

F0

FF

(E) – рез.

01

10

F1

00

(F)

02

12

82

56

      1. Записать в память, начиная с адреса 0840H, коды команд, которые указаны в таблице 11.

Таблица 11 – Контрольная программа инкремента содержимого ячейки памяти

Адрес

Команда

Операнд

Машинный код

Комментарий

0840

LXI

H, 0900H

21 00 09

; Загр. HL=0900H, адрес M

0843

INR

M

34

; M = (M) + 1

      1. Выполнить данную последовательность команд для следующих исходных значений содержимого ячейки памяти (таблица 12) и проверить полученные результаты:

СТ0840 0844ВП.

Таблица 12 – Исходные данные для контрольной программы инкремента содержимого ячейки памяти

Вариант

1

2

3

4

(M) – по адр. 0900H, исх. данные

00

0F

F0

FF

(M) – по адр. 0900H, результаты

01

10

F1

00

(F)

02

12

82

56

      1. Записать в память по адресу 0850H код команды, которая указана в таблице 13.

Таблица 13 – Контрольная команда инкремента пары регистров

Адрес

Команда

Операнд

Машинный код

Комментарий

0850

INX

D

13

; DE ← (DE) + 1

      1. Выполнить команду для следующих исходных значений пары регистров DE (таблица 14) и проверить полученные результаты:

СТ0850 0851ВП.

Таблица 14 – Исходные данные для контрольной команды инкремента пары регистров

Вариант

1

2

3

4

(DE) – исх.

0000

0F0F

00FF

FFFF

(DE) – рез.

0001

0F10

0100

0000

(F)

02

12

82

56

Так как команда инкремент пары регистров не затрагивает биты признаков, значение регистра признаков остаётся равным значению регистра признаков в последнем задании (10.5.4).

Задание 3:

1. Написать с адреса 0A20H и выполнить программу заполнения массива памяти (0900H…0904H) данными соответственно (00…04), используя команды инкремента пары регистров и регистра, а также загрузки регистра и пересылки. Программу записать в таблицу, аналогичную по форме таблице 11. Проверить полученные результаты.

    1. Команды декремента

DCR ri – уменьшение на 1 содержимого регистра: A, B, C, D, E, H или L;

DCR M – уменьшение на 1 содержимого ячейки памяти, адрес М в HL;

DCX ri – уменьшение на 1 содержимого пары регистров: BC, DE, HL или SP (указателя стека). В команде указывается идентификатор старшего регистра пары, например, DCX B.

      1. Записать в память, начиная с адреса 0860H, код команды, которая указана в таблице 15.

Таблица 15 – Контрольная команда декремента содержимого регистра C

Адрес

Команда

Операнд

Машинный код

Комментарий

0860

DCR

C

0D

; C ← (C) – 1

      1. Выполнить данную команду для следующих исходных значений регистра C (таблица 16) и проверить полученные результаты:

СТ0860 0861ВП.

Таблица 16 – Исходные данные для контрольной команды декремента содержимого регистра C

Вариант

1

2

3

4

(C) – исх.

00

01

10

11

(C) – рез.

FF

00

0F

10

(F)

86

56

06

12

      1. Записать в память, начиная с адреса 0870H, коды команд, которые указаны в таблице 17.

Таблица 17 – Контрольная программа декремента содержимого ячейки памяти

Адрес

Команда

Операнд

Машинный код

Комментарий

0870

LXI

H, 0910H

21 10 09

; Загр. HL=0910H, адрес M

0873

DCR

M

35

; M = (M) – 1

      1. Выполнить данную последовательность команд для следующих предварительно записанных исходных значений содержимого ячейки памяти (таблица 18) и проверить полученные результаты:

СТ0870 0874ВП.

Таблица 18 – Исходные данные для контрольной программы декремента содержимого ячейки памяти

Вариант

1

2

3

4

(M) – по адр. 0910H, исх. данные

00

01

10

11

(M) – по адр. 0910H, результаты

FF

00

0F

10

(F)

86

56

06

12

      1. Записать в память по адресу 0880H код команды, которая указана в таблице 19.

Таблица 19 – Контрольная команда декремента содержимого пары регистров HL

Адрес

Команда

Операнд

Машинный код

Комментарий

0880

DCX

H

2B

; HL ← (HL) – 1

      1. Выполнить команду для следующих исходных значений содержимого регистров HL (таблица 20) и проверить полученные результаты:

СТ0880 0881ВП.

Таблица 20 – Исходные данные для контрольной команды декремента содержимого пары регистров HL

Вариант

1

2

3

4

(HL) – исх.

0000

1000

FFFF

0001

(HL) – рез.

FFFF

0FFF

FFFE

0000

(F)

86

56

06

12

Команда декремент пары регистров не затрагивает биты признаков.

Задание 4:

1. Написать с адреса 0A40H и выполнить программу заполнения массива памяти (090FH…090AH) данными соответственно (0F…0A), используя команды декремента пары регистров и регистра, а также загрузки регистра и пересылки. Программу записать в таблицу, аналогичную по форме таблице 19. Проверить полученные результаты.

План 2003/04, поз. 124

Богородов Владимир Ильич