Мікропроцесорна техніка
Основні дані які характеризують досліджуваний мікропроцесор: виводи і сигнали керування, вихідні керуючі сигнали, структурна схема. Програмування процесору: набір регістрів, передача з регістра в регістр. Алгоритм роботи програми, результати її виконання.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | украинский |
Дата добавления | 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