Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методические указания. МПТ.doc
Скачиваний:
17
Добавлен:
24.02.2016
Размер:
1.09 Mб
Скачать

14. Як перейти від останова до запуску мікропроцесора? Практична робота №4 Тема: «Програмування мікропроцесора. Послідовні алгоритми»

Ціль роботи: опанувати програмування послідовних ділянок алгоритму.

Форма звіту: письмовий звіт з результатами виконання практичного завдання.

Завдання 1. Розглянути програмування ділянок алгоритму, що не містять розгалужень.

Методичні вказівки.

Приклад 1. Прийняти з ОЗП два числа, що зберігаються в сусідніх чарунках з адресами 0276 16 і 027716 і, обчисливши суму чисел, помістити її в ОЗП на місце другого з чисел.

На рис.1 наведена схема алгоритму рішення даної задачі мікропроцесором серії КР580. Розглянемо операції, що виконуються в кожному з блоків алгоритму.

Блок 1: в пару регістрів HL заноситься адреса першого числа.

Блок 2: в акумулятор приймається вміст чарунки ОЗП (перше число), адресою якої слугує вміст пари регістрів HL; ця операція виконується командою пересилки “регістр-регістр” (мнемонічне позначення команди MOV A,M).

Блок 3: в парі регістрів HL формується адреса другого числа, ця операція виконується командою приросту пари регістрів (мнемоніка команди INX H).

Блок 4: обчислюється сума вмісту акумулятора (А) і вмісту чарунки ОЗП (М), адресою якої служить вміст пари регістрів HL; операція виконується командою підсумовування ADD M.

Блок 5: одержана в акумуляторі сума пересилається в пам'ять; виконуюча цю операцію команда має мнемоніку MOV M,A.

TC

A7

A6

A5

A4

A3

A2

A1

A0

а.)

A7

A6

A5

A4

A3

A2

A1

A0

TC

б.)

TC

A7

A6

A5

A4

A3

A2

A1

A0

в.)

A7

A6

A5

A4

A3

A2

A1

A0

TC

г.)

Рис.1 Рис.2

У табл.1 наведена програма даної задачі з представленням команд в кодових комбінаціях.

Таблиця 1

Адреса команди в

ОП (в 16-річній системі)

Команда

Пояснення

Кодова

комбінація

Число

байтів

Число

тактів

0050

0051

0052

0053

0054

0055

0056

00101110

01110110

00000010

01111110

00100011

10000110

01111011

3

1

1

1

1

10

7

5

7

7

Блок1: HL027616

Блок2: А (М)

Блок3:HL(HL)+1

Блок4:А(А)+(М)

Блок5:М (А)

Команди програми за відсутності умовних і безумовних переходів (так званої послідовної програми) розміщуються в елементах пам'яті з послідовно наростаючими адресами. При побудові даної програми розміщення команд проведено, починаючи з чарунки, що має адресу 005016.

Загальне число тактів, необхідних для виконання приведених п'яти команд, Nт = 10+7+5+7+7=36,и при тривалості T=0,5 мкс загальний час

t исп =Nт*T = 36*0,5=18 мкс.

Розглянемо приклад програмування з використанням вмісту трігера регістра ознак.

Приклад 2. Вимагається виконати операцію арифметичного зсуву управо вмісту регістра D.

У системі команд мікропроцесора передбачено чотири команди операцій зсуву вмісту акумулятора – по дві команди операцій зсуву вліво і управо. Кожна операція зсуву носить циклічний характер, тобто здійснюється в замкнутому кільці, в яке окрім акумулятора може входити трігер перенесення ТС регістра ознак (“зсув через ТС”, рис.2, в і г) або цей трігер може бути зовні кільця (“зсув без ТС”, рис.2, а і б ) .В обох випадках значення розряду числа ( залежно від напряму зсуву старшого або молодшого розряду), що висувається з акумулятора, поступає в трігер ТС.

У нашому прикладі особливість арифметичного зсуву управо полягає в тому, що при зсуві вміст старшого (знакового) розряду регістра зберігається незмінним (рис.3,а). Таким чином, при виконанні цієї операції необхідно заздалегідь запам'ятати вміст старшого розряду і потім, зсунувши управо вміст регістра, вписати в його старший розряд цифру, яку раніше запам'ятали.

Ці дії виконуються у фрагменті програми, схема алгоритму якої представлена на рис.3,б. Оскільки операції зсуву виконуються тільки над вмістом акумулятора, блок 1 пересилає в акумулятор вміст регістра D.

Операції, виконувані в подальших блоках, ілюструються табл. 2.В результаті виконання операції “зсув вліво без ТС” ( блок 2) знак числа (в табл.2 знак виділений напівжирним шрифтом) передається в молодший розряд акумулятора і в трігер перенесення ТС. Потім двічі виконується операція “зсув управо через ТС” (блоки 3 і 4). В результаті виконання першої операції зсуву в акумуляторі відновлюється початкове число, а в трігері ТС опиняється продубльованим знак числа. Після виконання другої операції зсуву управо в акумуляторі опиняється число, що є результатом виконання арифметичного зсуву управо.