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

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

    1. Поясните, как с помощью команды JMPорганизовать бесконечный цикл.

    2. Поясните, как в контрольной программе выделения из массива оперативной памяти цифровых символов (таблица 11) определяется, что значение числа лежит в пределах 30H…39H.

    3. Поясните, на что влияет содержимое регистра Dв проверочной программе регулируемой временной задержки.

    4. Поясните, для чего выполняется операция логического сложения содержимого регистров А и С в проверочной программе регулируемой временной задержки.

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

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

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

  • команды безусловного и условных переходов;

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

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

  • составлять программы, содержащие последовательности команд безусловного и условных переходов;

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

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

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

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

В системе команд микропроцессора КР580ВМ80 предусмотрены команды изменения последовательности выполнения команд для организации циклов, обработки условий, передачи управления и т. д. Существуют два типа команд перехода: безусловный и условный.

При выполнении команды безусловного перехода осуществляется передача управления по адресу, заданному во втором и третьем байтах команды, либо по адресу, заданному в регистровой паре.

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

Существуют команды условного перехода для следующих битов признаков:

бита нуля;

бита переноса;

бита знака;

бита чётности

Для каждого бита признака предусмотрены две команды перехода: переход по установленному биту признака (=1) и по сброшенному биту признака (=0).

Соответствие выполняемых команд и признаков приведены в таблице 1.

Таблица 1 – Соответствие выполняемых команд и признаков

Признак

Ноль, Z

Перенос, С

Четность, Р

Знак, S

Команда

1

0

1

0

1

0

1

0

JZ

да

JNZ

да

JC

да

JNC

да

JPE

да

JPO

да

JM

да

JP

да

    1. Команды безусловного перехода

JMP<B3B2> – безусловный переход по адресу, указанному во втором и третьем байтах команды;

PCHL– безусловный переход по адресу, заданному в паре рег.HL.

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

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

Адрес

Команда

Операнд

Машинный код

Комментарий

0800

NOP

00

; Пустая команда

0801

NOP

00

;Пустая команда

0802

NOP

00

;Пустая команда

0803

JMP

0800H

C3 00 08

; Безусловный переход на

; начало программы

      1. Выполнить программу:

СТ0800ВП

Данная программа будет выполнять бесконечный цикл.

      1. Нажать кнопку ПРЕРЫВАНИЕ.

На дисплее отобразится адрес точки прерывания – в пределах от 0800Hдо 0803H.

    1. Команды перехода по признаку – НОЛЬ

JZ<B3B2> – переход если (TZ)=1;

JNZ<B3B2> – переход если (TZ)=0.

      1. Записать в память, начиная с адреса 0810H, программу заполнения 10Hячеек памяти нулями, которая указана в таблице 3.

Таблица 3 – Контрольная программа заполнения 10Hячеек памяти нулями, содержащая команду условного перехода по содержимому триггера нуляTZ

Адрес

Команда

Операнд

Машинный код

Комментарий

0810

MVI

C, 10H

0E 10

; Загр. C=10H, длина масс.

0812

LXI

H, 0900H

21 00 09

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

; массива

0815

MVI

M, 00H

36 00

; Загр.M=00H

0817

INX

H

23

; HL=(HL)+1, след. адрес

0818

DCR

C

0D

; C=(C)–1, длина массива

0819

JNZ

0815H

C2 15 08

; Переход, если (С)>0

      1. Выполнить программу:

СТ0810 081СВП.

      1. Проверить результаты выполнения программы в соответствии с таблицей 4.

Таблица 4 – Результаты выполнения программы заполнения 10Hячеек памяти нулями

(С)

(HL)

(М) по адр. 0900H…(M) по адр. 090FH

00

0910

00

    1. Команды перехода по признаку С – ПЕРЕНОС

JC<B3B2> – переход если (TС)=1;

JNC<B3B2> – переход если (TС)=0.

      1. Записать в память, начиная с адреса 0820H, программу подсчёта нулей в байте (таблица 5). Исходное значение байта задано в регистре С.

Таблица 5 – Контрольная программа подсчёта нулей в байте, содержащая команды условного перехода по содержимому триггеров переноса TCи нуляTZ

Адрес

Команда

Операнд

Машинный код

Комментарий

0820

MOV

A, C

79

; A←(C)

0821

MVI

B, 08H

06 08

; Загр. B=8, кол. разрядов в

; байте

0823

MVI

E, 00H

1E 00

; Загр. E=00H, исх. знач. ко-

; личества нулей в байте

0825

RAR

1F

; Зн. мл. бита в бит переноса ; и сдвиг вправо

0826

JC

082A

DA 2A 08

; Если (TС)=1, обойти ин-

; кремент счётчика нулей

0829

INR

E

1C

; E=(E)+1, инкремент счёт

; чика нулей

082А

DCR

B

05

; B=(B)–1, след. разряд

082В

JNZ

0825H

C2 25 08

; Переход на проверку след.

; разряда байта

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

СТ0820 082ЕВП.

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

Вариант

1

2

3

4

(С) – исх.

00

DB

FF

03

9A

55

13

7A

(Е) – рез.

08

02

00

06

04

04

05

03

Задание 1:

Написать и выполнить программу подсчёта количества единиц в байте и заполнить таблицу 7.

Исходное значение задать в рег. D. Счётчик циклов организовать на рег. С, счётчик количества единиц на рег. В, начальный адрес программы 0А00H.

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

Вариант

1

2

3

4

(D) – исх.

00

DB

02

AD

05

FE

0A

10

(B) – рез.

Проверочную программу подсчёта количества единиц в байте записать в таблицу, аналогичную по форме таблице 5.

    1. Команды перехода по признаку Р – ЧЁТНОСТЬ

JPE<B3B2> – переход если (TP)=1;

JPO<B3B2> – переход если (TP)=0.

      1. Записать в память, начиная с адреса 0830H, программу дополнения байта до чётности в старшем разряде (таблица 8). Исходное число в рег. С.

Таблица 8 – Контрольная программа дополнения байта до чётности в старшем разряде, содержащая команду условного перехода по содержимому триггера чётности TP

Адрес

Команда

Операнд

Машинный код

Комментарий

0830

MOV

A, C

79

; A  (C), исх. байт

0831

ANI

7FH

E6 7F

; Обнуление ст. разряда

0833

ORA

A

B7

; (A) OR (A) – уст. триггера

; TP

0834

JPE

0839H

EA 39 08

; Переход, если (TP)=1

0837

ORI

80H

F6 80

; Дополнить до чётности

; A(A)OR80H

0839

MOV

C, A

4F

; Результат

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

СТ0830 083АВП.

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

Вариант

1

2

3

4

(C) – исх.

01

FF

C6

83

CD

F5

13

41

(C) – рез.

81

FF

C6

03

4D

F5

93

41

Задание 2:

Написать и выполнить программу дополнения байта до нечётности и заполнить таблицу 10. Начальный адрес программы 0А20H.

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

Вариант

1

2

3

4

(C) – исх.

01

FF

C6

83

CD

F5

13

41

(C) – рез.

Проверочную программу дополнения байта до нечётности записать в таблицу, аналогичную по форме таблице 8.

Задание 3:

  1. Составить программу регулируемой временной задержки в соответствии с алгоритмом, который представлен на рисунке 1.

Рисунок 1 – Алгоритм проверочной программы регулируемой временной задержки.

Начальный адрес программы 0840Н. В регистр Dзагрузить исходное число 02Н. Программу записать в таблицу, аналогичную по форме таблице 8.

  1. Запустить программу с начального адреса до конечного. Конечный адрес появится на дисплее УМК через время задержки. Для измерения времени задержки использовать часы с секундной стрелкой.

  2. Изменить содержимое регистра Dв соответствии с данными таблицы 11 и повторно запустить программу. Определить время задержки. Результат записать в таблицу 11.

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

Вариант

1

2

3

4

5

(D)

03

0A

03

10

03

08

03

06

03

0B

Время зад., с.

  1. Доказать, что внутренний цикл (рисунок 1) обеспечивает фиксированную задержку 0,786 с, если период следования тактовых импульсов равен 0,5 мкс. Для этого следует подсчитать общее число тактов, требуемых для выполнения команд внутреннего цикла и умножить на длительность одного такта (0,5 мкс).

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

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