Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
L_r__12_19_03_10.doc
Скачиваний:
4
Добавлен:
19.08.2019
Размер:
319.49 Кб
Скачать

Вопросы для самоконтроля

  1. Поясните, как формируется адрес следующей команды в линейных программах?

  2. Поясните, как формируется адрес следующей команды в циклических программах при выполнении команд условных переходов на примере команды JC 0A10H, если условие перехода выполняется либо не выполняется?

  3. Поясните, что понимают под способом адресации? Укажите, какие способы адресации используются в МП КР580ВМ80 и поясните их сущность?

  4. Укажите выполняемую операцию, способы адресации, формат, число циклов и тактов, машинный код, а также действия МП в каждом машинном цикле для следующих команд:

а) MOV C,D; б) ANA M; в) SUI 10H;

г) MVI A, 10H; д) JNZ 0B50H; е) CNZ 0B50H;

е) CALL 0950H; ж) RET; з) JNC 0900H;

и) LXI B, 0920H.

Порядок выполнения работы

  1. Проверка подготовки студентов к занятию по вопросам для самоконтроля в виде фронтального или программированного опроса.

  2. Выполнить индивидуальное задание № 1. Составить схему алгоритма и программу линейного вычислительного процесса на языке Ассемблер для МП КР580ВМ80, которая реализует последовательности арифметических или логических операций согласно варианту, заданному в таблице 1.

Таблица 1 – Исходные данные к индивидуальному заданию № 1

№ варианта

Последовательность

операций

Значения операндов (P = 16)

(A)

(B)

(C)

(D)

(E)

(M1)

(M2)

1

M2 = 2((C) + (D)) – (M1)

05

1A

10

2

M1 = (  (A)   (M2)

03

05

F0

3

M2 = ((M1) – (A)) : 2

15H

25H

4

M1 = (( )   (M2))   (A)

2D

E1

32

5

M2 = (D) – 2 (M1) + 10 H

30

08

6

M1 = (  (A)   (D)

35

30

1F

7

M2 = ((C) – (A)) : 4 – 05 H

05

2D

8

M1 = ( )   ((A)   (M2))

1E

32

A0

9

M2 = 4((D) – (M1)) + (A)

10H

0A

05

10

M1 = (B)   ( )   (M2)

25

11

2F

Примечания

  1. M1 – ячейка памяти по адресу 09XXH, где XX – номер варианта в шестнадцатиразрядной систем счисления.

  2. M2 – ячейка памяти по адресу 0AXXH.

  3. Начальный адрес программы 08XXH.

    1. Составить алгоритм решения задачи с учетом программной загрузки исходных данных. При составлении алгоритма следует помнить, что в МП КР580ВМ80А умножение и деление на 2 выполняется с помощью команд циклического сдвига влево RLC (RAL) и вправо RRC (RAR) соответственно.

    2. Составить программу на языке Ассемблер в виде таблицы (таблица 2).

Таблица 2 – Линейная программа на языке Ассемблер

Адрес

Метка

Команда

Операнд

Машинный код

Комментарий

1

2

3

4

5

6

    1. Определить ожидаемый результат вычисления. Для этого при выполнении арифметических операций следует подставить в заданное уравнение значения переменных в десятичной системе счисления и выполнить указанные арифметические операции в десятичной системе счисления. Порядок расчета и ожидаемый результат записать в отчет в десятичной и шестнадцатеричной системах счисления.

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

  1. Выполнить индивидуальное задание № 2. Составить программу циклического вычислительного процесса на языке Ассемблер для МП КР580ВМ80, которая реализует умножение двух восьмиразрядных двоичных чисел без учета знака (кодовое умножение) согласно варианту, заданному в таблице 3.

Таблица 3 – Исходные данные к индивидуальному заданию № 2

Номер варианта

Значения операндов (P = 16)

Начальный адрес

программы

(DE)

(A)

1

00A3

B2

0801

2

00B4

C3

0802

3

00D5

24

0803

4

00E6

35

0804

5

00F1

DA

0805

6

00D4

35

0806

7

00B2

47

0807

8

00C3

5B

0808

9

00B3

74

0809

10

00D2

A3

080A

Пусть множимое хранится в паре регистров DE, где оно занимает младший регистр E, старший регистр D пары регистров установлен в нуль. Множитель хранится в аккумуляторе A. 16-разрядное произведение будем формировать в паре регистров HL. Счетчик числа повторений цикла организуем на регистре B.

Процесс умножения организуем следующим образом. Будем анализировать разряды множителя, начиная с его старшего разряда. Поэтому частичные произведения будут формироваться, начиная со старшего частичного произведения. Накопление суммы частичных произведений будем производить в паре регистров HL, т.е. к содержимому предварительно сброшенной в нуль пары регистров HL вначале прибавим восьмое частичное произведение. Затем, сдвинув на один разряд влево содержимое пары регистров HL, прибавим седьмое частичное произведение и так далее, пока не будут просуммированы все частичные произведения.

Таким образом, процесс умножения носит циклический характер. Цикл содержащий операции сдвига влево содержимого пары регистров HL, формирования и прибавления к содержимому пары регистров HL очередного частичного произведения, должен быть повторен восемь раз.

Алгоритм решения задачи представлен на рисунке 1.

Рисунок 1 – Схема алгоритма кодового умножения восьмиразрядных чисел

Блок 1 производит загрузку множимого в пару регистров DE и множителя в регистр A. Блок 2 производит загрузку нулевого значения в пару регистров HL. Блок 3 устанавливает в регистре B (счетчике циклов) начальное значение 8. Блок 4 производит сдвиг на один разряд влево содержимого пары регистров HL. Эта операция выполняется путем удвоения содержимого пары регистров: HL  (HL) + (HL). Блок 5 предназначен для анализа очередного разряда множителя. Для этого содержимое аккумулятора сдвигается влево, в результате чего очередной разряд множителя пересылается в триггер TC регистра признаков. Блок 6 производит разветвление (условный переход) по содержимому триггера TC. При (TC) = 1 в блоке 7 выполняется операция суммирования множимого к сумме предыдущих частичных произведений в паре регистров HL. При (TC) = 0 операция суммирования не выполняется, по команде условного перехода JNC M1 осуществляется переход к команде блока 8. Блок 8 производит вычитание единицы из содержимого регистра B, после чего блок 9 выполняет разветвление по содержимому триггера TZ регистра признаков. Если (TZ) = 0 (содержимое регистра B не равно нулю), то команда условного перехода JNZ M2 производит переход к команде блока 4, вызывая очередное повторение выполнения тела цикла. Если (TZ) = 1 (содержимое регистра B равно нулю), то происходит выход из цикла и переход к очередной команде.

    1. Составить программу на языке Ассемблер в виде таблицы 4.

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

Адрес

Метка

Команда

Операнд

Машинный код

Комментарий

1

2

3

4

5

6

    1. Определить время выполнения операции умножения для тактовой частоты равной 2 МГц. Для этого определить количество тактов, требуемое для однократного прохождения цикла алгоритма и полученный результат умножить на восемь. Суммарное число тактов умножить на длительность тактового периода (0,5 мкс).

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

  2. Оформить отчет и сдать зачет.

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