Мікропроцесорна техніка

Основні дані які характеризують досліджуваний мікропроцесор: виводи і сигнали керування, вихідні керуючі сигнали, структурна схема. Програмування процесору: набір регістрів, передача з регістра в регістр. Алгоритм роботи програми, результати її виконання.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 04.06.2015
Размер файла 186,8 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Міністерство освіти і науки України

Дніпропетровський національний університет ім. О. Гончара

Факультет фізики, електроніки

та комп'ютерних систем

Кафедра радіоелектроніки

Курсова робота з курсу

"Мікропроцесорна техніка"

Виконавець: студент групи КМ-11-1

Березкін Д.Л.

Керівник: ст. викладач каф. РЕ

Морозов О.С.

Члени комісії:

проф., д.ф.-м.н., Тонкошкур О.С

доц., к.ф.-м.н., Іванченко О.В

Дніпропетровськ, 2015

Реферат

Курсова робота містить 26 стор., 5 рис., 10 табл.

Мета роботи: вивчення основ функціонування мікропроцесору КР580ВМ80 та розробка програми для розв'язання поставленої задачі.

У ході роботи було досліджено вивчено його основи функціонування мікропроцесору КР580ВМ80, вивчено програмування для здійснення множення та ділення чисел, та розроблено програму для розв'язання поставленої задачі.

Ключові слова: МІКРОПРОЦЕСОР, РЕГІСТР ОЗНАК, АРИФМЕТИЧНО-ЛОГІЧНИЙ ПРИСТРІЙ, СТЕК, ШИНА ДАНИХ, ШИНА АДРЕСУ, МАШИННИЙ КОД, МНЕМОКОД.

мікропроцесор сигнал програмування регістр

Зміст

Вступ

1. Основні дані які характеризують мікропроцесор КР580ВМ580

1.1 Виводи і сигнали керування ВІС КР580ВМ80

1.2 Вихідні керуючі сигнали

1.3 Структурна схема мікропроцесора

2. Програмування КР580ВМ80

2.1 Набір регістрів

2.2 Передача з регістра в регістр

3. Постановка задачі

4. Алгоритм роботи програми

5. Початкові дані, програма та результати її виконання

Список літератури

Вступ

КР580ВМ80 являє собою 8-розрядний процесор, у якому поєднані операційний і керуючий пристрої. Керуюча пам'ять недоступна користувачу, у ній вже в процесі виготовлення ВІС записуються мікропрограми операцій (мікропрограми, за якими виконуються команди). Таким чином, передбачається використання деякої фіксованої системи команд, у яку користувач не може внести змін. У зв'язку з цим даний мікропроцесор відноситься до числа немікропрограмуємих, тобто програмуємих не на рівні мікрокоманд, а на рівні команд. Для розв'язання поставленої задачі потрібно розробити програму у вигляді команд мікропроцесору, перевірити її дієздатність і повну відповідність поставленій задачі, тобто повне розв'язання поставленої задачі з можливими варіантами.

1. Основні дані, які характеризують мікропроцесор КР580ВМ80

Мікросхема КР580ВМ80 є аналогом мікропроцесора i8080, фірми INTEL. Це - функціонально закінчений однокристальний, паралельний, восьмирозрядний мікропроцесор з фіксованою системою команд, який застосовується як центральний процесор у пристроях обробки даних і керування.

Мікропроцесор має роздільні 16-розрядну шину адресів А і 8-розрядну шину даних D. Шина адресів забезпечує пряму адресацію зовнішньої пам'яті об'ємом до 65536 байт, 256 пристроїв введення. Восьмирозрядний арифметично-логічний пристрій мікропроцесора забезпечує виконання арифметичних і логічних операцій над двійковими даними, представленими в додатковому коді, а також обробку двійково-десяткових упакованих чисел.

1.1 Виводи і сигнали керування ВІС КР580ВМ80

Умовне графічне позначення мікропроцесора на принципових електричних схемах показане на рис. 2.1.

D7…D0 - входи/виходи шини даних (ШД), яка забезпечує двосторонній обмін між мікропроцесором (МП), запам'ятовуючим пристроєм (ЗП) і портами введення-виведення (ПВВ).

A15…A0 - виходи шини адресів (ША), які забезпечують адресацію 64 кБ (у тому числі 256 пристроїв введення і 256 пристроїв виведення).

F1 і F2 - вхідні тактові імпульси (дві послідовності імпульсів, які не перетинаються між собою, що мають однакову частоту проходження і синхронізують роботу МП).

RDY - готовність, служить для введення сигналу, який вказує на готовність даних до введення в мікропроцесор, чи на готовність пам'яті і периферійних пристроїв (ПП) до прийому інформації із шин даних (сигнал дозволяє синхронізувати роботу мікропроцесора з пам'яттю і периферійними пристроями будь-якої швидкодії).

RESET - скидання, призначений для подачі вхідного сигналу, який установлює внутрішні вузли мікросхеми у вихідний стан (при надходженні цього сигналу вміст програмного лічильника стає рівним нулю і наступна команда починається з нульової комірки; сигнали HLDA і INTE установлюються в нульовий стан).

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Рис. 1.1. Умовне графічне позначення мікропроцесора КР580ВМ80

HOLD - захват шин, призначений для подачі вхідного сигналу, який використовується периферійними пристроями для запиту доступу до шин адреси і даних.

INT - запит маскованого переривання, служить для подачі вхідного сигналу, який забезпечує можливість роботи мікросхеми в реальному масштабі часу (сигнал сприймається МП у стані зупинки чи наприкінці останнього машинного циклу поточної команди і за умови, що сигнал INTE=1).

1.2 Вихідні керуючі сигнали

SYNC - синхронізація, служить для видачі вихідного сигналу, який визначає початок кожного машинного циклу. Під час дії цього сигналу інформація стану посилається в зовнішній регістр стану.

DBIN - прийом, призначений для видачі вихідного сигналу, який показує, що ШД знаходиться в режимі прийому, тобто мікропроцесор очікує надходження даних від пам'яті, пристрою введення чи інших пристроїв системи.

- служить для видачі вихідного сигналу, який показує, що мікропроцесор вивів на ШД дані для запису в пам'ять чи периферійний пристрій.

WAIT - очікування, служить для видачі вихідного сигналу, який підтверджує, що мікропроцесор знаходиться в стані чекання.

HLDA - підтвердження захоплення шин, служить для видачі вихідного сигналу, який є відповіддю на сигнал HOLD і який показує, що шини адреси і даних знаходяться у високоімпедансному (відключеному) стані.

INTE - дозвіл переривання, призначений для видачі вихідного сигналу, який є індикатором одиничного логічного стану внутрішнього тригера дозволу переривання.

Виводи живлення:

UCC1 - призначений для подачі напруги джерела живлення (+5В);

UCC2 - призначений для подачі напруги джерела живлення (+12В);

UIO - служить для подачі напруги зсуву на підкладку (-5В);

GND - загальний провід для напруги живлення +5, -5, +12В.

1.3 Структурна схема мікропроцесора

МП складається з наступних основних функціональних вузлів: арифметико-логічного пристрою ALU (Arithmetic-Logic Unit), пристрою керування і блоку регістрів (рис. 2.2).

До складу блоку регістрів входять: 16-розрядний регістр адреси команди або програмний лічильник PC (Program Counter), 16-розрядний покажчик стека SP (Stack Pointer), 16-розрядний регістр тимчасового збереження (WZ), 16-розрядна схема інкременту/декременту адреси INC/DEC (Increment/Decrement) і шість 8-розрядних регістрів загального призначення (РЗП) B, C, D, E, H, L, які можуть використовуватися і як три 16-розрядних регістри (регістрові пари) BC, DE, HL. РЗП призначені для збереження і видачі даних. Назва регістрової пари завжди визначається назвою першого регістра, у якому зберігається старший байт шістнадцятирозрядного числа. Практично всі арифметичні і логічні дії над даними виконуються в регістрі-акумуляторі ACC (Accumulator).

Рис. 1.2. Структурна схема МП КР580ВМ80

Регістри відіграють роль акумуляторів, коли в них містяться оброблювані дані, або роль покажчиків, коли в них зберігаються адреси операндів. Вони вибираються за допомогою схеми вибору регістру. Восьмирозрядні дані можуть передаватися на внутрішню шину даних МП через мультиплексор (MUX). Шістнадцятирозрядні адреси обмінюються між регістрами і буфером адреси BA через адресний регістр-засувку і схему інкременту/декременту адреси.

Система команд МП містить команди довжиною в 1, 2 і 3 байти інформації. Перший байт команди завжди міститься в регістрі команд IR (Instruction Register). Другий і третій байти багатобайтних команд розміщаються в допоміжних регістрах W і Z. Вибір того чи іншого регістра, які приймають участь у виконанні команди, здійснюється схемою вибору регістрів, яка дешифрує код команди.

2. Програмування КР580ВМ80

2.1 Набір регістрів

Програмування КР580ВМ80 ускладнюється асиметричністю системи команд цих процесорів. Багато команд застосовуються лише до певних регістрів, пар регістрів або наборів регістрів. Майже кожен регістр володіє індивідуальними особливостями, і майже кожна команда має свою специфіку. У таблиці 1 знаходяться регістри завдовжки в байт і команди, які оперують з ними. У таблиці 2 знаходяться пари регістрів (або регістри завдовжки в слово) і команди, що оперують з ними (всі команди, звичайно, неявно змінюють програмний лічильник). У таблиці 3 знаходяться ті, що містять в парах регістрів непрямі адреси і команди, в яких використовуються ці адреси. У таблиці 4 знаходяться команди, застосовні лише до акумулятора, а в таблиці 5 - команди, застосовні лише до певних пар регістрів. У таблиці 6 знаходяться команди, що відносяться до стека.

Таблиця 2.1 8-розрядні регістри та застосовувані команди

Регістр

Команда

A

ACI, ADC, ADD, ADI, ANA, ANI, СМА, CMP, CPI, DAA, DCR, IN, INR, LDA, LDАХ, MOV, MVI, ОRA, ORI, OUT, RAL, RAR, RLC, RRC, SBB, SBI, STA, STАХ, SUB, SUI, XRA, XRI

В, С, D, Е, Н, L

ADC, ADD, ANA, CMP, DCR, INR, MOV, MVI, ORA, SBB SUB, XRA

F (прапори)

CMC, STC (см. також пару регістрів PSW)

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

Пара регістрів

Команда

В (В и С)

DAD, DCX, INX, LXI, POP, PUSH

D (D и E)

DAD, DCX, INX, LXI, POP, PUSH, XCHG

H (H и L)

DAD, DCX, INX, LHLD, LXI, PCHL, POP, PUSH, SHLD, SPHL, XCHG, XTHL

PSW (А та прапори)

POP, PUSH

Лічильник команд

Команди виклику підпрограми, команди переходу, команди повернення з підпрограми, RST

Покажчик стека

Команди виклику підпрограми, DAD, DCX, INX, LXI, POP PUSH, команди повернення з підпрограми, RST, SPHL

Таблиця 2.3 Непрямі адреси та їх команди

В (В и С)

LDАХ, STAX

D (D и E)

LDAX, STAX

H (H и L)

ADC, ADD, ANA, CMP, DCR, INR, MOV, MVI, ORA, SBB, SUB, XRA

Покажчик стека

Команди виклику підпрограми, POР, PUSH, команди повернення з підпрограми, RST, XTHL

Таблиця 2.4 Команди, які застосовуються тільки до акумулятору

Команда

Функція

Команда

Функція

ACI

Безпосереднє складання з перенесенням

RAR

Циклічний зсув управо через перенесення

ADI

Безпосереднє складання

RLC

Циклічний зсув вліво

ANI

Безпосереднє логічне ТА

RRC

Циклічний зсув управо

CMA

Доповнення (логічне)

SBI

Безпосереднє віднімання з позикою

CPI

Безпосереднє порівняння

OUT

Вивід

DAA

Десяткова корекція

STA

Пряме запам'ятовування

IN

Ввід

STAX

Непряме запам'ятовування

LDA

Пряме завантаження

SUI

Безпосереднє віднімання

LDAX

Непряме завантаження

XRI

Безпосереднє що логічне ВИКЛЮЧНЕ АБО

ORI

Безпосереднє логічне АБО

RAL

Циклічний зсув вліво через перенесення

Таблиця 2.5 Команди, які використовуються до одної або двох пар регістрів

Команда

Пари регістрів

Функція

LDAX

В або D

Непряме завантаження акумулятора

LHLD

H

Пряме завантаження H і L

PCHL

Н,РС

Пересилка H і L в РС

SHLD

H

Прямий запис в пам'ять H і L

STAX

В або D

Непрямий запис в пам'ять акумулятора

XCHG

D, H

Обмін HL с DE

XTHL

H

Обмін HL з вершиною стека

Таблиця 2.6 Команди, в яких використовується стек

Команда

Функція

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

Перехід і збереження лічильника команд в стек

POP

Завантаження пари регістрів із стека

PUSH

Запис пари регістрів в стек

Команди повернення з підпрограми

Завантаження лічильника команд із стека

RST

Перехід за адресою вектора із збереженням лічильника команд в стек

XTHL

Обмін H і L з вершиною стека

Регістри зазвичай використовуються таким чином:

Акумулятор є центром обробки даних; для більшості арифметичних і логічних команд він служить джерелом одного з операндів і місцем призначення для результату.

Регістри H і L (пара регістрів H) є основним регістром адреси пам'яті. Команди, які посилаються на регістр M, насправді посилаються на адресу пам'яті в цій парі регістрів.

Регістри D і E (пара регістрів D) є додатковим регістром адреси пам'яті, оскільки програміст може поміняти їх вміст з вмістом H і L, використовуючи команду XCHG.

Регістри B і C (пара регістрів B) є регістрами загального призначення без яких-небудь відмітних особливостей, хоча команди LDAX (завантажити акумулятор побічно) і STAX (запам'ятати акумулятор побічно) можуть використовувати їх як адресні регістри.

Зазвичай програмісти використовують регістри B і C для лічильників і тимчасового зберігання даних. Індивідуальні особливості окремих регістрів можна описати таким чином:

Акумулятор. Єдиний регістр завдовжки в байт, який може бути прямо завантажений або записаний в пам'ять. Єдиний регістр, зміст якого можна зсувати, інвертувати або коректувати в двійково-десятковий вигляд за допомогою однієї команди. Єдиний регістр, який може бути записаний в порт виводу (за допомогою команди OUT) або завантажений з порту виводу (за допомогою команди IN). Вихідний регістр і регістр призначення для всіх арифметичних і логічних команд, за винятком DAD, DCR, DCX, INR і INX.

Регістри H і L - єдина пара регістрів, яка може бути використана побічно (за допомогою посилання на регістр M) в командах ADC, ADD, ANA, CMP, DCR, INR, MOV, MVI, ORA, SBB, SUB і XRA. Єдина пара регістрів, яка може бути прямо завантажена або записана в пам'ять. Початкові регістри і регістри призначення для команди DAD. Єдина пара регістрів, яку можна обміняти з регістрами D і E і з вершиною стека. Єдина пара регістрів, яку можна переслати в покажчик стека (використовуючи команду SPHL) або в лічильник команд (командою PCHL). Єдина пара регістрів, зміст якої може бути зсунутий однією командою (DAD H).

Регістри D і E. Єдина пара регістрів, для якої можливий обмін даними з регістрами H і L (за допомогою команди XCHG).

Покажчик стека. Єдиний адресний регістр, який забезпечує автоприріст (приріст адреси після виконання команди) і автозменшення (зменшення адреси до виконання команди). Може бути завантажений тільки командою LXI або SPHL. Його значення можна визначити тільки за допомогою завантаження 0 в пару регістрів H і L з подальшим використанням команди DAD SP. Єдина пара регістрів, яка може бути використана для передачі інших пар регістрів в пам'ять або з пам'яті (команди PUSH і POP) або для запису в пам'ять або читання з неї лічильника команд (команди CALL)

Слово стану процесора (PSW). Містить в собі акумулятор (старший байт) і прапори (молодший байт). Може бути тільки передано в стек або із стека за допомогою команд PUSH і POP.

Відзначимо наступне:

Тільки акумулятор і регістри H і L можуть бути прямо завантажені з пам'яті або записані в пам'ять.

Тільки адреса в H і L (регістр M) можна використовувати для всіх команд, окрім завантаження або запису акумулятора в пам'ять. Тільки адреса в H і L може бути використана для передачі даних в інші регістри або з них в арифметичних або логічних командах.

Тільки команди DCR, DCX, DAD, INR і INX дозволяють виконувати арифметичні операції без використання акумулятора . З цих команд тільки DCR, DAD і INR змінюють значення прапорів; DCR і INR змінюють всі прапори окрім перенесення, тоді як DAD змінює тільки прапор перенесення.

2.2 Передача з регістра в регістр

Команда MOV може передавати будь-який 8-розрядний регістр загального призначення (A,B,C,D,E,H або L) в будь-який інший 8-розрядний регістр загального призначення. Регістр прапорів (F) може бути тільки переданий в стек або отриманий із стека разом з акумулятором (за допомогою PUSH PSW і POP PSW). Команда XCHG обмінює пари регістрів D і H.

Зазвичай використовують наступні команди передачі:

MOV A,R передає вміст регістра в акумулятор;

MOV R,А передає вміст акумулятора в регістр;

MOV R,M завантажує регістр вмістом пам'яті за адресою в регістрах H і L

MOV М,R записує вміст регістра в пам'ять за адресою в регістрах H і L;

XCHG обмінює вміст пари регістрів D (регістри D і E) з вмістом пари регістрів H (регістри H і L)

У команді MOV регістр призначення є першим операндом, таким чином, MOV R1,R2 передає вміст R2 в R1. Команда MOV змінює регістр призначення, але не впливає на регістр-джерело. Команда XCHG змінює чотири регістри (D, E,H і L); таким чином, ця команда еквівалентна чотирьом командам MOV плюс деяким проміжним командам, що зберігають один байт даних під час передачі іншого. Ні MOV, ні XCHG не впливають на прапори.

3. Постановка задачі

Розробити програму яка розраховує значення виразу z=max(x+y,x3+,3y+x). В якості Х ? 6;

x + y ? 255;

y ? 9;

x3 - y2/3 ? 0;

4. Алгоритм роботи програми

ПОЧАТОК

Рис. 4.1. Блок-схема основної програми

а) б)

Рис. 4.2. а) Блок-схеми підпрограми MULTIPLY; б) Блок-схеми підпрограми DIVIDE

5. Початкові дані, програма та результати її виконання

Таблиця 5.1 Розподіл пам'яті для даних

Адрес

Hex

Десятк.

Формули

Читання/запис

08A0

06

6

x

Вхідні дані

08А1

04

4

y

Проміжні обчислення

08A2

0A

10

x+y

08A3

D8

216

x3

08A4

10

16

y2

08A5

05

5

y2/3

08A6

D3

211

x3- y2/3

08A7

12

18

3y2+x

08A8

D3

211

max

Таблиця 5.2 Основна програма

Адрес

Мітка

Мнемоніка

Код

Коментар

0800

LXI H, 08A0

21

Завантаження реєстрової пари (HL)

0801

A0

0802

08

0803

MOV D, M

56

Передати з пам'яті (HL) в регістр D

0804

INX H

23

Значення реєстрової пари HL збільшується на одиницю.

0805

MOV B, M

46

Передати з пам'яті (HL) в регістр B.

0806

MOV A, B

78

Передати з регістра B в регістр A.

0807

ADD D

82

Вміст регістра D додається до вмісту акумулятора

0808

INX H

23

Значення реєстрової пари HL збільшується на одиницю.

0809

MOV M, A

77

Передати з регістра A в пам'ять (HL)

080A

INX H

23

Значення реєстрової пари HL збільшується на одиницю

080B

PUSH H

E5

Запис у стек (HL)

080C

MOV H, D

62

Передати з регістра D в регістр H.

080D

CALL LABEL1

CD

Безумовний виклик підпрограми.

080E

60

080F

08

0810

POP H

E1

Читання з стека в HL

0811

MOV M, C

71

Передати з регістра C в пам'ять (HL)

0812

INX H

23

Значення реєстрової пари HL збільшується на одиницю

0813

PUSH H

E5

Запис у стек (HL)

0814

NK:

MOV H, C

61

Передати з регістра C в регістр H

0815

CALL LABEL1

CD

Безумовний виклик підпрограми.

0816

60

0817

08

0818

POP H

E1

Читання з стека в HL

0819

MOV M, C

71

Передати з регістра C в пам'ять (HL)

081A

INX H

23

Значення реєстрової пари HL збільшується на одиницю

081B

PUSH H

E5

Запис у стек (HL)

081C

LDA 08A1

3A

Завантаження акумулятора пряма

081D

A1

081E

08

081F

MOV B, A

47

Передати з регістра A в регістр B

0820

MOV H, B

60

Передати з регістра B в регістр H.

0821

MOV D, B

50

Передати з регістра B в регістр D.

0822

CALL LABEL1

CD

Безумовний виклик підпрограми.

0823

60

0824

08

0825

POP H

E1

Читання ІЕ стека в HL

0826

MOV M, C

71

Передати з регістра C в пам'ять (HL)

0827

MOV B, C

41

Передати з регістра С в регістр B

0828

MVI C, 03

0E

Завантаження регістра безпосереднє

0829

03

082A

PUSH H

E5

Запис у стек (HL)

082B

CALL LABEL2

CD

Безумовний виклик підпрограми.

082C

84

082D

08

082E

MOV B, H

44

Передати з регістра H в регістр B

082F

POP H

E1

Передати з регістра H в регістр B

0830

MOV M, B

70

Передати з регістра B в пам'ять (HL)

0831

INX H

23

Значення реєстрової пари HL збільшується на одиницю

0832

MOV M, D

72

Передати з регістра D в пам'ять (HL)

0833

INX H

23

Значення реєстрової пари HL збільшується на одиницю

0834

LDA 08A4

3A

Пряме завантаження в в акумулятор змісту комірки

0835

A4

0836

08

0837

SUB B

90

Віднімання від змісту акумулятора регістру В

0838

MOV M,A

77

Передати з акумулятора в пам'ять (HL)

0839

INX H

23

Збільшення регістрової пари HL на 1

083A

MOV D,C

51

Передати з регістра С в регістр D

083B

LDA 08A1

3A

Пряме завантаження в в акумулятор змісту комірки

083C

A1

083D

08

083E

PUSH H

E5

Запис у стек (HL)

083F

MOV D, C

51

Передати з регістра С в регістр D

0840

MOV H,A

67

Передати з акумулятора до регістру Н

0841

CALL 0860

CD

Безумовний виклик підпрограми Label1

0842

60

0843

08

0844

MOV B,C

41

Передати з регістра С в регістр B

0845

LDA 08A0

3A

Пряме завантаження в в акумулятор змісту комірки

0846

0A

0847

08

0848

ADD B

80

Додавання до змісту акумулятора регістру В

0849

POP H

E1

Читання з стека в HL

084A

MOV M,A

77

Передати з акумулятора до пам'яті

084B

LDA 08A2

3A

Пряме завантаження в в акумулятор змісту комірки

084C

A2

084D

08

084E

MVI C,02

OE

Завантаження регістра безпосереднє

084F

02

0850

LXI H,08A6

21

Завантаження реєстрової пари (HL)

0851

A6

0852

08

0853

LABEL4

INX H

23

Збільшення регістрової пари HL на 1

0854

CMP M

BE

Порівняння з пам'яттю

0855

JNC 0859

D2

Умовний перехід по (НЕ С)

0856

59

0857

08

0858

MOV A,M

7E

Передати до акумулятора з пам'яті

0859

LABEL3

DCR C

0D

Декримент регістру

085A

JNZ 0853

C2

Умовний перехід по (НЕ Z)

085B

53

085C

08

085D

INX H

23

Збільшення регістрової пари HL на 1

085E

MOV M,A

77

Передати з акумулятора до пам'яті

085F

HLT

76

Зупинка процесора

Таблиця 5.3 Підпрограма MULTIPLY. Вхідні параметри: D - множник 1, H - множник 2. Вихідні параметри: BC - множення.

Адрес

Мітка

Мнемоніка

Код

Коментар

0860

MUL:

LXI B, 0000

01

Скидання часткової суми

0861

00

0862

00

0863

MVI L, 08

2E

Завантаження лічильника

0864

08

0865

NXBITM:

MOV A, H

7C

Множник в акумулятор

0866

RAR

1F

Аналізований біт в прапорі С

0867

MOV H, A

67

Повернення зсунутого множника

0868

JNC 0851

D2

Біт множника дорівнює нулю?

0869

51

086A

08

086B

MOV A, B

78

Ні

086C

ADD D

82

Додаток множимого

086D

MOV B, A

47

Повернення старшої часткової суми

086E

NOADDM:

MOV A, B

78

Зсунення часткової суми

086F

RAR

1F

Акумулятор зсувається вправо на 1 розряд

0870

MOV B, A

47

Перенесення акумулятора в В

0871

MOV A, C

79

Перенесення дані регістра С в акумулятор

0872

RAR

1F

Акумулятор зсувається вправо на 1 розряд

0873

MOV C, A

4F

Повернення молодшої часткової суми

0874

DCR L

2D

Лічильник зменшився на 1

0875

JNZ 0848

C2

Організація циклу

0876

48

0878

08

0879

RET

C9

Повернення

Таблиця 5.4 Підпрограма DIVIDE Вхідні параметри: B - ділене, C - дільник. Вихідні параметри: H - частка, D - залишок

Адрес

Мітка

Мнемоніка

Код

Коментар

087A

DIVIDE:

LXI H, 0008

21

Завантаження вказівника Н та лічильника

087B

08

087C

00

087D

MVI D, 00

16

Скидання регістра

087E

00

087F

NXBITD:

MOV A, B

78

Ділене в акумулятор

0880

RAL

17

Зсунення діленого вліво

0881

MOV B, A

47

Повернення діленого

0882

MOV A, D

7A

Проміжний залишок

0883

RAL

17

Зсунення залишку

0884

SUB C

91

Віднімання дільника

0885

JNC 0839

D2

Залишок додатній

0886

74

0887

08

0888

ADD C

81

Відновлення залишку

0889

NOADD:

MOV D, A

57

Запам'ятовування залишку

088A

CMC

3F

Інвертування С (створення біта частки)

088B

MOV A, H

7C

Запис числа частки

088C

RAL

17

Акумулятор зсувається вліво на 1 розряд

088D

MOV H, A

67

З акумулятора в Н

088E

DCR L

2D

Зменшення лічильника на 1

088F

JNZ 082F

C2

Ділення на наступний біт

0890

6A

0891

08

0892

RET

C9

Повернення

Список літератури

1. Злобин В.К., Григорьев В.Л. Программирование арифметических операций в микропроцессорах: Учебное пособие для технических вузов. - М.: Высшая школа, 1991. - 303 с.: ил.

2. Лихтциндер Б.Я. Микропроцессоры и вычислительные устройства в радиотехнике: Учеб. пособие / Б.Я. Лихтциндер, В.Н. Кузнецов. - К.: Вища школа. - 1988. - 272 с.

Размещено на Allbest.ru

...

Подобные документы

  • Структурна і функціональна схема комутації мікросхеми. Синтез T-тригера та D-тригера на основі універсального JК-тригера. Завантаження в тригер сигналу. Робота в статичному режимі. Контроль станів тригера до виходів. Сигнали з тумблерних регістрів.

    лабораторная работа [835,2 K], добавлен 19.03.2011

  • Поняття мови програмування С++, її сутність та особливості, призначення та використання. Структура програми, її основні елементи та загальні правила роботи. Охорона праці при роботі з обчислювальною технікою. Апаратні вимоги для виконання програми.

    курсовая работа [126,2 K], добавлен 29.03.2009

  • Ведення протоколу роботи комп’ютера. Розробка програми для створення списку розширень файлів і занесення часу і дати доступу до них на мові програмування Асемблер. Виклик переривання 21h код-функції та занесення до регістрів. Алгоритм та лістинг програми.

    курсовая работа [14,1 K], добавлен 08.08.2009

  • Створення програми, що видає результати голосування та підсумки виборів. Алгоритм розробки програми. Опис структури даних та вимоги до них, стандартних процедур та функцій, файлів та їх призначення. Приклад тестування та результати роботи програми.

    курсовая работа [1,0 M], добавлен 28.06.2012

  • Робота з цілими значеннями за допомогою арифметичних команд. Механізм роботи команд передачі керування мови Assembler. Типи даних "FPU" та система регістрів. Програма та її структура на мові Assembler, робота з директивами. Текстовий режим відеоадаптера.

    лабораторная работа [1,7 M], добавлен 31.05.2014

  • Поняття черги в програмуванні, основні операції з чергою і їх реалізація. Опис алгоритму й специфікація програми. Розробка додатку з використанням задачі Ларсона по опису зв'язного неорієнтованого графа. Алгоритм розв’язку і результати виконання програми.

    курсовая работа [1,1 M], добавлен 14.09.2012

  • Дослідження цифрових систем автоматичного керування. Типові вхідні сигнали. Моделювання цифрової та неперервної САК із використання MatLab. Результати обчислень в програмі MatLab. Збільшення періоду дискретизації цифрової системи автоматичного керування.

    лабораторная работа [173,7 K], добавлен 14.03.2009

  • Методи використання предикатів Cut, Fail. Організація циклу (repeat), складання програми. Алгоритм роботи зі списками та рядками. Елементарні операції і базові функції мови програмування Лісп. Робота зі складними типами даних на прикладі бази даних АТС.

    контрольная работа [219,3 K], добавлен 17.06.2011

  • Шина ISA (Industrial Standart Arhitecture) як стандартна для персональних комп'ютерів типа IBM PC/AT. Адресний простір при зверненні до пам'яті. Конструктивне виконання плат, що вставляються в роз’єм ISA. Командні сигнали, центральні сигнали управління.

    реферат [108,8 K], добавлен 19.06.2010

  • Історія виникнення та стисла характеристика мікропроцесора Power. Основні характеристики MPC8640D, його структурна схема. Порівняння процесорів MPC8640D й Corei5650. Будова мікропроцесорної системи, материнська плата, опис блоків та оперативної пам'яті.

    курсовая работа [1,1 M], добавлен 13.06.2010

  • Структурна систематика архітектури Р. Хокні та К. Джессхоупа. Технологія SMM та SSE, нові команди для роботи з графікою і звуком. Набори мікросхем системної логіки процесорів Pentium II/III. Суперскалярний мікропроцесор та конвеєри виконання команд.

    контрольная работа [17,4 K], добавлен 19.10.2009

  • Процес послідовної передачі даних, режим її здійснення. Типова схема інтерфейсу. Структурна схема модуля шифрування. Розробка генератора псевдовипадкових чисел на основі регістра зсуву з оберненими зв’язками. Симуляція роботи розробленої моделі пристрою.

    курсовая работа [594,1 K], добавлен 09.04.2013

  • Призначення менеджеру пристроїв. Обґрунтування вибору мови програмування. Розробка структурної схеми і опис діалогового інтерфейсу програми. Блок-схема програмного додатку, основні функції і алгоритм його роботи. Методики і інструкція його тестування.

    курсовая работа [3,4 M], добавлен 17.11.2014

  • Головні принципи візуального програмування, опис компонентів Delphi, використаних при розробці проекту. Опис програми-додатку "Психологічний тест" та список дій користувача. Алгоритм роботи програми, її форма та ієрархія. Опис графічного інтерфейсу.

    курсовая работа [1,2 M], добавлен 08.06.2010

  • Створення програми, яка здатна перетворювати двовимірні зображення у об’ємні. Проект для побудови ландшафтів, отримання фотографій об’єктів під іншим кутом огляду, досліджень поверхонь зрізів матеріалів. Опис алгоритму програми. Вхідні та вихідні дані.

    курсовая работа [548,3 K], добавлен 09.06.2010

  • Розробка програми автоматизації роботи з матрицями. Оформлення даних у вигляді матриць цілих чисел. Перелік операцій над матрицями, які реалізуються у програмі. Програмне забезпечення, мови програмування. Опис логічної структури та алгоритм програми.

    курсовая работа [312,2 K], добавлен 01.04.2016

  • Загальний опис алгоритмів головної програми та процедур запису і зчитування повідомлень на рівні блок-схем, детальний опис розробленої програми на рівні програмного коду. Характеристика процедури відображення стану регістрів. Опис екранних форм програми.

    курсовая работа [552,5 K], добавлен 09.06.2010

  • Дані як складова частина інформації, що являють собою зареєстровані сигнали, опис основних операцій, виконуваних з ними: збір, формалізація, фільтрація, сортування, архівування, захист, транспортування, перетворення. Елементи діалогового вікна Windows.

    контрольная работа [17,9 K], добавлен 12.10.2012

  • Галузі застосування та принцип роботи мови програмування "Пролог". Керування процесом пошуку рішень, типи даних та використання списків. Рекурсивні процедури та цикли за допомогою пошуку з поверненням. Виконання арифметичних та логічних операцій.

    курс лекций [99,7 K], добавлен 06.07.2011

  • Розробка та схема алгоритму проектованої гри. Особливості мови програмування та середовища "Microsoft Visual Studio C++ 2008 Express Edition". Лістинг програми та загальний опис її роботи, аналіз отриманих результатів та оцінка практичної ефективності.

    курсовая работа [762,8 K], добавлен 03.05.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.