8026

Вивчення будови та принципів роботи восьмирозрядного мікропроцесора КР580ВМ80 (Intel 8080)

Лабораторная работа

Информатика, кибернетика и программирование

Вивчення будови та принципів роботи восьмирозрядного мікропроцесора КР580ВМ80 (Intel 8080). 1. Мета роботи Вивчити основні функціональні вузли восьмирозрядного мікропроцесора, послідовність виконання ним команд програми, навчитися користуватися прог...

Украинкский

2013-02-01

338 KB

26 чел.

Вивчення будови та принципів роботи

восьмирозрядного мікропроцесора КР580ВМ80 (Intel 8080).

1. Мета роботи

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

2. Обладнання

Програма - емулятор мікропроцесорної системи на базі одно-кристального КР580ВМ80.

3. Короткі відомості з теорії

3.1. Внутрішня будова мікропроцесора.

Мікропроцесор складається з таких основних частин (Мал.1):

Малюнок 1. структурна схема мікропроцесора КР580ВМ80.

- арифметико-логічний пристрій (АЛП) з регістром А (акумулятор);

- блок регістрів загального призначення (РЗП) зі схемою вибірки;

- регістр команд з дешифратором команд і формувачем машинних циклів;

- лічильник команд (РС – program counter)

- регістр стекової області (SPstack pointer - вказівник стеку);

- регістр стану (прапорцевий регістр);

- регістри тимчасового зберігання даних (РТЗД) W та Z;

- схема приросту та зменшення (СПЗ);

- пристрій керування та синхронізації.

Буфери шини даних (БШД) та адреси (БША) є додатковими блоками, які обслуговують мікропроцесор, хоча і не входять до його складу.

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

Регістр – це спеціальний запам’ятовуючий пристрій, який складається з лінійки тригерів і може запам’ятовувати декілька біт інформації одночасно. Більшість регістрів мікропроцесора 8-розрядні, деякі (PC, SP) - 16-розрядні. Всі регістри розбиті на групи і відрізняються різним функціональним призначенням.

Доступними програмісту є такі регістри:

- шість 8-розрядних регістрів, до яких можна звертатися поодинці або парами (регістри B і C, D і E, H і L);

- 8-розрядний акумулятор А;

- 16-розрядні регістри PC (лічильник команд) та SP (вказівник стеку).

В деяких спеціальних випадках можуть бути доступними дані регістра команд (8 розрядів) та регістр стану (5 розрядів). Програмно недоступними є регістри тимчасового зберігання даних W та Z.

Регістри загального призначення. Ці регістри розміром в 1 байт позначаються B, C, D, E, H, L. Вони використовуються для зберігання даних та проміжних результатів обчислень, які виконуються за допомогою арифметико-логічного пристрою. Під час роботи з 16-розрядними числами можна звертатися до пар регістрів (B,C), (D,E), (H,L).

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

Регістр команд – однобайтовий регістр, в якому знаходиться код команди, яка виконується. Цей регістр безпосередньо користувачу недоступний. Це не означає, однак, що не існує команди, яка б могла явним чином змінити його значення. Після виконання чергової команди в регістр команд автоматично записується код наступної команди із комірки оперативної пам’яті, адреса якої знаходиться в лічильнику команд (PC).

Лічильник команд (PC) – двобайтовий (16-розрядний) регістр, який часом іще називають програмним лічильником. Цей регістр містить адресу команди, яка повинна виконуватися наступною. Лічильник команд автоматично отримує приріст адреси, яку містить в залежності від того, яку по тривалості команду (одно-, дво-, чи трибайтову) мікропроцесор зчитує з пам’яті, вказуючи завжди на 1-й байт наступної команди. На зміст цього регістру користувач може вплинути тільки за допомогою команд, які змінюють послідовне виконання програми (наприклад, команд безумовного переходу), а також за допомогою деяких спеціальних команд.

Вказівник стеку (SP) – двобайтовий (16-розрядний) регістр, який містить адресу наступної комірки стеку. Стеком називається особливим чином організована область оперативної пам’яті, яка виділяється програмістом для тимчасового зберігання внутрішніх регістрів мікропроцесора зі спеціальним режимом доступу. Ця область оперативної пам’яті необхідна в тому випадку, коли необхідно припинити виконання поточної послідовності команд та вернутись до неї пізніше, наприклад для негайного виконання підпрограми чи в результаті переривання програми. Дані від мікропроцесора поступають в верхню частину стекової пам’яті, в такому випадку значення вказівника стеку зменшується на одиницю для того, щоби завжди вказувати на адресу останньої заповненої комірки стеку (дно стеку). Коли дані вибираються зі стеку, значення вказівника стеку збільшується на одиницю з кожним вибраним байтом. Такі операції зі стеком називаються стековими. З їхньою допомогою легко організовуються багаторівневі (вкладені) переривання та звернення до підпрограм із підпрограм (вкладені підпрограми).

Регістр стану (прапорцевий регістр) – регістр, який містить 5 двійкових розрядів, що називаються прапорцями, і які містять спеціальні ознаки результатів деяких операцій. Часом його називають регістром ознак, або регістром бітів умов. Регістр містить такі прапорці: прапорець нуля (Z - zero), прапорець перенесення (C - carry), прапорець знаку (S - sign), прапорець парності (P - parity) та прапорець додаткового перенесення (ACauxiliary carry). Прапорці завжди встановлюються чи скидаються  автоматично після виконання наступної команди, яка впливає на прапорці, в залежності від результату операції. Прапорець вважається встановленим, якщо відповідний розряд регістра набуває значення 1, і скидається, якщо значення розряду 0. Стани прапорців використовують в командах умовного переходу. Результати виконання арифметичних і логічних операцій над вмістом акумулятора, регістрів загального призначення та комірок пам’яті впливають на прапорці наступним чином:

Прапорець нуля встановлюється в 1, якщо в результаті виконання якої-небудь команди отримано нульовий результат (всі біти задіяного регістру чи комірки пам’яті встановлено в 0) і скидається в 0 в випадку ненульового результату.

Прапорець перенесення встановлюється в 1, якщо в результаті операцій додавання та зсуву появляється одиниця перенесення зі старшого розряду байта даних, а також, якщо виконується запозичення зі старшого розряду після виконання операцій віднімання чи порівняння. В іншому випадку прапорець скидається в 0.

Прапорець знаку встановлюється в 1, якщо в результаті виконання операцій появляється одиниця в старшому розряді байту даних (вказує на від’ємний результат) і скидається в 0 в випадку нульового значення старшого розряду (вказує на додатній результат).

Прапорець парності встановлюється в 1, якщо після виконання операцій сума одиниць в байті даних парна (значення суми по модулю 2 рівне 0) і скидається в 0, якщо кількість одиниць непарна.

Прапорець додаткового перенесення встановлюється в 1, якщо в результаті виконання команди появляється одиниця перенесення з третього розряду байта даних в четвертий і скидається в 0, якщо такого перенесення нема. Прапорець додаткового перенесення використовується в багатьох схемах обчислень, однак він особливо необхідний для додавання чисел в двійково-десятковій формі.

3.2. Виконання команди мікропроцесором.

Мікропроцесор містить 16-розрядну однонапрямлену шину адреси та 8-розрядну двонапрямлену шину даних. Інформація, яка може одночасно передаватись, відповідає одному байту (8 розрядів). Можливі такі передавання даних:

- пересилання байта даних від пристрою введення;

- пересилання байта даних до пристрою виведення;

- зчитування байта даних з пам’яті або запис в пам'ять;

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

Робота мікропроцесора базується на принципі мікропрограмного керування. Це означає, що кожна команда реалізується як деяка послідовність мікрокоманд чи мікрооперацій, які приводять до необхідного результату. Команда, а фактично її 8-розрядний код зчитується з пам’яті і поступає в регістр команд, де і зберігається до кінця її виконання. Відповідно до результату дешифрування коду команди відбувається формування послідовності мікрокоманд (мікропрограма), процес виконання якої визначає всі наступні операції, необхідні для виконання зчитаної команди. Виконання окремих мікрооперацій синхронізується відповідно до сигналів Ф1 та Ф2 тактового генератора. Найважливішим поняттям всього процесу виконання команд є поняття машинного циклу.

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

Кожна команда в залежності від її виду може займати від одного до п’яти машинних циклів. Мікропроцесор КР580ВМ80 має 10 типів машинних циклів, а кожний машинний цикл може містити від 3 до 5 машинних тактів.

3.3. Система команд мікропроцесора КР580ВМ80.

Система команд мікропроцесора КР580ВМ80 представлена 244 кодами операцій (Табл.1), які можна розкласифікувати згідно кількох ознак. Найбільш суттєвими ознаками є такі:

- довжина команди або число байтів, які вона займає в пам’яті;

- функціональна ознака або операції, які вона виконує;

- спосіб адресації.

Із 256 можливих кодів команд не використовуються 12 кодових комбінацій, тому число всіх команд: 256-12=244. Всі команди поділяються на три групи відповідно до кількості байтів, які вони займають в пам’яті: однобайтові, двобайтові та трибайтові. В будь-якій команді перший байт завжди містить код команди, другий і третій байт містять або дані, або адресу комірки пам’яті, яка містить дані.

Мікропроцесор КР580ВМ80 може виконувати 78 базових команд відповідно до функціональної ознаки, а саме 200 однобайтових, 18 двобайтових та 26 трибайтових команд відповідно до довжини, яку дана команда займає в пам’яті ОЗП.

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

0

NOP

LXI

B, d16

STAX

B

INX

B

INR

B

DCR

B

MVI

B, d8

RLC

-

DAD

B

LDAX

B

DCX

B

INR

C

DCR

C

MVI

C, d8

RRC

1

-

LXI

D, d16

STAX

D

INX

D

INR

D

DCR

D

MVI

D, d8

RAL

-

DAD

D

LDAX

D

DCX

D

INR

E

DCR

E

MVI

E, d8

RAR

2

-

LXI

H, d16

SHLD

adr

INX

H

INR

H

DCR

H

MVI

H, d8

DAA

-

DAD

H

LHLD

adr

DCX

H

INR

L

DCR

L

MVI

L, d8

CMA

3

-

LXI

SP, d16

STA

adr

INX

SP

INR

M

DCR

M

MVI

M, d8

STC

-

DAD

SP

LDA

adr

DCX

SP

INR

A

DCR

A

MVI

A, d8

CMC

4

MOV

B, В

MOV

B, C

MOV

B, D

MOV

B, E

MOV

B, H

MOV

B, L

MOV

B, M

MOV

B, A

MOV

C, В

MOV

C, C

MOV

C, D

MOV

C, E

MOV

C, H

MOV

C, L

MOV

C, M

MOV

C, A

5

MOV

D, В

MOV

D, C

MOV

D, D

MOV

D, E

MOV

D, H

MOV

D, L

MOV

D, M

MOV

D, A

MOV

E, В

MOV

E, C

MOV

E, D

MOV

E, E

MOV

E, H

MOV

E, L

MOV

E, M

MOV

E, A

6

MOV

H, В

MOV

H, C

MOV

H, D

MOV

H, E

MOV

H, H

MOV

H, L

MOV

H, M

MOV

H, A

MOV

L, В

MOV

L, C

MOV

L, D

MOV

L, E

MOV

L, H

MOV

L, L

MOV

L, M

MOV

L, A

7

MOV

M, В

MOV

M, C

MOV

M, D

MOV

M, E

MOV

M, H

MOV

M, L

HLT

MOV

M, A

MOV

A, В

MOV

A, C

MOV

A, D

MOV

A, E

MOV

A, H

MOV

A, L

MOV

A, M

MOV

A, A

8

ADD

B

ADD

C

ADD

D

ADD

E

ADD

H

ADD

L

ADD

M

ADD

A

ADC

B

ADC

C

ADC

D

ADC

E

ADC

H

ADC

L

ADC

M

ADC

A

9

SUB

B

SUB

C

SUB

D

SUB

E

SUB

H

SUB

L

SUB

M

SUB

A

SBB

B

SBB

C

SBB

D

SBB

E

SBB

H

SBB

L

SBB

M

SBB

A

A

ANA

B

ANA

C

ANA

D

ANA

E

ANA

H

ANA

L

ANA

M

ANA

A

XRA

B

XRA

C

XRA

D

XRA

E

XRA

H

XRA

L

XRA

M

XRA

A

B

ORA

B

ORA

C

ORA

D

ORA

E

ORA

H

ORA

L

ORA

M

ORA

A

CMP

B

CMP

C

CMP

D

CMP

E

CMP

H

CMP

L

CMP

M

CMP

A

C

RNZ

POP

B

JNZ

adr

JMP

adr

CNZ

adr

PUSH

B

ADI

d8

RST

0

RZ

RET

JZ

adr

-

CZ

adr

CALL

adr

ACI

d8

RST

1

D

RNC

POP

C

JNС

adr

OUT

N

CNC

adr

PUSH

C

SUI

d8

RST

2

RC

-

JC

adr

IN

N

CC

adr

-

SBI

d8

RST

3

E

RPO

POP

D

JPO

adr

XTHL

CPO

adr

PUSH

D

ANI

d8

RST

4

RPE

PCHL

JPE

adr

XCHG

CPE

adr

-

XRI

d8

RST

5

F

RP

POP

PSW

JP

adr

DL

CP

adr

PUSH

PSW

ORI

d8

RST

6

RM

SPHL

JM

adr

EI

CM

adr

-

CPI

d8

RST

7

Таблиця 1. Команди мікропроцесора КР580ВМ80.

Для всіх можливих пересилань даних з регістрів в регістри, чи з пам’яті в регістри та навпаки, розрізняють регістри – джерела даних, які позначаються символом S (source – джерело), та регістри – приймачі даних, які позначаються символом D (destination – місце призначення). В регістрових парах (B, C), (D, E) та (H, L) старшими є перші регістри пар. Коди регістрів загального призначення, пар регістрів та прапорців строго фіксовані (Табл.2).

Регістр

Код

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

Код

Мнемонічне позначення

Код

A

111

B (B, C)

00

NZ (Z=0)

000

B

000

D (D, E)

01

Z (Z=1)

001

C

001

H (H, L)

10

NC (CY=0)

010

D

010

SP

11

C (CY=1)

011

E

011

PO (P=0)

100

H

100

PE (P=1)

101

L

101

P (S=0)

110

M (пам'ять)

110

M (S=1)

111

Таблиця 2. Коди регістрів та прапорців мікропроцесора КР580ВМ80.

Мікропроцесор КР580ВМ80 використовує доволі простий формат команд:

dst (Destination) адресат - приймач;

src (Source) адресат - джерело;

n = 0..7;

Код операції завжди розміщений в першому байті програми. кожен біт відмічено "х". В першому біті може знаходитися інформація про місцезнаходження операндів dst, src або ціле число 0..7. Другий, а якщо необхідно, і третій байти відводяться під безпосередні дані, адресу порту чи комірки пам'яті.

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

Безпосередня адресація є найбільш економічним способом зберігання та пошуку інформації, оскільки необхідні дані містить сама команда. Ці дані містяться в другому та третьому байтах трибайтової команди та в другому байті двобайтової команди. В випадку трибайтової команди молодші розряди 16-бітового числа містяться в другому байті, а старші – в третьому байті команди.

Менш економічною, але також досить простою є пряма адресація. В такому випадку в другому і третьому байтах міститься повна 16-бітна адреса комірки пам’яті, в якій знаходяться дані. Молодшим байтом адреси є другий байт команди, а старшим – третій байт команди.

В випадку регістрової адресації код команди вказує на регістр або пару регістрів в яких містяться дані. Команди, які використовують регістрову адресацію є однобайтними. В такому випадку адреси регістрів задаються за допомогою трьох або 6-ти молодших бітів команди.

Непряма адресація відрізняється від регістрової тільки тим, що в регістровій парі містяться не дані, а повна 16-розрядна адреса комірки пам’яті, яка містить дані. Старший байт адреси записується в першому регістрі пари, а молодший в другому. Зазвичай вказівником адреси в випадку непрямої адресації є пара регістрів H, тобто регістри (H, L), але інколи використовуються пари (B, C) і (D, E).

Для всіх можливих пересилань даних з регістрів в регістри, чи з пам’яті в регістри та навпаки, розрізняють регістри – джерела даних, які позначаються символом S (source – джерело), та регістри – приймачі даних, які позначаються символом D (destination – місце призначення). В регістрових парах (B, C), (D, E) та (H, L) старшими є перші регістри пар. Коди регістрів загального призначення, пар регістрів та прапорців строго фіксовані.

Всі команди відповідно до функціональної ознаки можуть бути розбиті на п’ять груп:

- група команд пересилання даних;

- арифметичні команди;

- логічні команди;

- команди переходів;

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

3.4. Емулятор мікропроцесорної системи на базі КР580ВМ80.

Емулятор – це програма, яка відтворює всі процеси, що відбуваються в реальних системах на екрані монітору. Даний емулятор позволяє створювати програми на мові асемблера, використовуючи систему команд мікропроцесора КР580ВМ80, налагоджувати їх виконання в тактовому, командному та наскрізному режимах, вивчати принципи і порядок виконання команд, отримувати уяву про організацію зовнішньої та внутрішньої (регістрової) пам’яті та стекової області.

Головне вікно програми має вигляд, представлений на малюнку 2:

Зміст головного вікна програми:

1. Головне меню програми;

2. Структурна схема мікропроцесорної системи;

3. Таблиця змісту ОЗП мікропроцесорної системи

4. Зовнішні периферійні пристрої, які під’єднані до портів МП системи;

5. Панель редагування значення вибраної (поточної) комірки ОЗП;

Малюнок 2. Вигляд головного вікна програми емулятора.

6. Панель редагування значення вмісту вибраного регістра загального призначення МП системи;

7. Група кнопок «Сброс» для обнулення всіх комірок ОЗП та регістрів загального призначення;

8. Панель системи команд мікропроцесора КР580ВМ80;

9. Група кнопок «Выполнение» для виконання програми в наскрізному, командному та тактовому режимах.

Структурна схема містить такі елементи:

- регістр слова стану мікропроцесора (PSW) і регістр ознак (прапорців), а також їх в двійковій системі числення та словесній формі;

- буфер даних МП системи, регістр А (акумулятор), буферні регістри, регістр команд, блок регістрів загального призначення, регістри тимчасового зберігання даних, регістри – вказівник стеку та лічильник команд, а також їхні значення в шістнадцятірковій системі числення;

- блок АЛП та десяткової корекції;

- блок синхронізації та керування;

- дешифратори команд та лічильники машинних мікроциклів;

- Індикатори стану і тактування мікропроцесора: F1, F2, SYNC, READY, WAIT, HOLD, HLDA, INT, INTE, DBIN, WR;

- порти системи від 00h до 04h для монітору, дисководу, мережевого адаптера та принтера відповідно;

- шини даних, адреси, керування, внутрішня шина та шина зовнішніх пристроїв.

ОЗП МП системи представлено в вигляді блоку-таблиці:

- адреса ОЗП – кожна комірка має адресу від 0000h до FFFFh (від 0d до 65535d) всього 64К комірок;

- значення комірки ОЗП – поточне значення вибраної комірки ОЗП (8 біт). Представлено в шістнадцятірковій системі числення від 00h до FFh (від 0d до 255d) всього 256 значень;

- команда мікропроцесора – розшифроване значення комірки ОЗП в виді мнемо коду на мові асемблера. Деякі комірки можуть містити не команди, а дані, однак їхні значення будуть перекодовані в мнемокод автоматично.

Адреса вибраної комірки автоматично відображається в регістрі – лічильнику команд.

В нижній області ОЗП встановлено виділення коричневим кольором тієї комірки, на яку вказує вказівник стеку. Стекова область виділена жовтим кольором.

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

Панелі редагування значення комірок ОЗП чи регістрів дозволяють вводити програми та задавати початкові умови, а також редагувати введені чи зчитані з файлу програми.

Комірки «Сброс» дозволяють обнуляти всі комірки ОЗП, або регістри МП системи.

Панель системи команд мікропроцесора КР580ВМ80 представлена в вигляді прихованої таблиці 16х16 рядки і стовпчики якої пронумеровані в шістнадцятірковій системі числення. Їхня послідовна комбінація (рядок-стовпчик) є кодом вибраної команди. Всі команди умовно розбиті на дванадцять груп, об’єднаних за функціональною ознакою, кожна з яких позначена своїм кольором комірки. Панель системи можна активізувати за допомогою клавіші «Space» або наводячи на неї курсор мишки. Панель полегшує програмування емулятора, оскільки вибрані команди можна «перетягувати» в комірки ОЗП за допомогою лівої клавіші мишки, а права клавіша позволяє отримати повну інформацію про команду.

Група кнопок «Выполнение».

- «Виконати такт» - це виконати один такт команди ОЗП на яку вказує лічильник команд. Якщо команда виконана на повністю, деякі елементи керування стають недоступними для редагування., а ті елементи, які є активними в даному такті відмічаються червоним кольором;

- «Виконати команду» позволяє виконати програму покомандно і контролювати її виконання та стан регістрів і пам’яті;

- «Виконати програму» запускає програму на виконання до тих пір, поки дана кнопка не буде натиснута повторний раз, або в випадку команди HLT(76h).

Основні принципи роботи з програмою.

Початок роботи з програмою полягає в написанні або завантаженні програми на асемблері в емулятор. Для цього можна скористатися або панеллю системи команд програми, або панеллю редагування значень комірок ОЗП емулятора, або завантажити образ ОЗП з носія.

В випадку необхідності можна заповнити відповідними значеннями регістри загального призначення емулятора.

Для детального вивчення кожного такту конкретної команди можна скористатися кнопкою по тактового виконання команди. Для налаштовування програми використовується кнопка по командного виконання.

Написану програму на мові асемблера можна зберегти в вигляді образа ОЗП та РЗП на будь-який носій, а також в випадку необхідності завантажити з носія в емулятор.

Програма також позволяє можливість експорту частини ОЗП та/чи РЗП емулятора в MS Excel, MS Word та текстовий файл.

4. Порядок виконання експериментів.

Запустіть емулятор.

Експеримент 1. Занесення початкових даних в регістри і пам'ять та виконання простої програми.

Виконання: Задайте в полі 6 емулятора початкові значення регістрів загального призначення: A=0F; B=F1; C=12; D=55; E=66; H=00; L=0E.

Введіть в полі 5 таку програму:

Таблиця 3.

Адреса комірки ОЗП

код команди

Мнемонічний запис команди

Команда мікропроцесора

0000

3C

INR A

A+1 -> A

0001

06

MVI B, d8

дані -> B

0002

1F

RAR

дані 1F

0003

05

DCR B

B-1 -> B

0004

81

ADD C

A+C -> A

0005

82

ADD D

A+D -> A

0006

93

SUB E

A-E -> A

0007

77

MOV M,A

A -> пам'ять (000D)

0008

76

HLT

зупинка

0009

00

NOP

команда відсутня

000A

00

NOP

команда відсутня

000B

00

NOP

команда відсутня

000C

00

NOP

команда відсутня

000D

00

NOP

команда відсутня

000E

00

NOP

команда відсутня

Задайте значення регістра PC=0000. Запустіть програму в полі 9 кнопкою "Выполнить программу". Запишіть значення регістрів загального призначення після виконання програми :

A=   ; B=   ; C=   ; D=   ; E=   ; H=   ; L=   ; PC=   .

Запишіть значення комірки пам'яті за адресою 000E: ОЗП(000E)=   .

Порівняйте значення регістрів та комірок пам'яті до і після виконання програми. Зробіть висновок про арифметичні дії над числами, які були занесені в регістри.

Експеримент 2. Виконання простої програми в покомандному та потактовому режимах

Обнуліть ОПЗ та регістри шляхом натискання на кнопку "Сброс ОЗУ" та "Сброс регистров" в полі 7.

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

Запустіть виконання програми в спочатку в покомандному, а потім в потактовому режимі шляхом натискання кнопок "Выполнить команду" та "Выполнить такт" в полі 9, відповідно.

Результати виконання програми занесіть в таблицю:

Таблиця 4.

Адреса комірки ОЗП

Команда

цикл

такт

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

регістр команд

регістр стану (PSW, тип циклу)

регістр ознак ZSPCAC

Акумулятор

Зробіть висновок про порядок виконання програми та команд.

Запишіть програму в файл: "Файл" -> "Сохранить как..."

Експеримент 3. Вивчення способів адресації мікропроцесора КР580ВМ80.

Обнуліть пам'ять та регістри.

Занесіть та виконайте наведені нижче програми в потактовому режимі.

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

Безпосередня адресація.

Адреса комірки ОЗП

код команди

Мнемонічний запис команди

Команда мікропроцесора

0000

3E

MVI A, d8

дані наступної комірки ОЗП -> регістр А

0001

AA

XRA D

дані

-

-

-

-

Пряма адресація.

Занесіть початкове значення комірки ОЗП (000В)=АА

Адреса комірки ОЗП

код команди

Мнемонічний запис команди

Команда мікропроцесора

0000

3A

LDA adr

дані комірки ОЗП -> регістр А

0001

0B

DCX B

молодший байт адреси комірки ОЗП

0002

00

NOP

старший байт адреси комірки ОЗП

-

-

-

-

-

-

-

-

000B

AA

XRA D

дані

-

-

-

-

Регістрова адресація.

Занесіть в регістр В значення В=АА.

Адреса комірки ОЗП

код команди

Мнемонічний запис команди

Команда мікропроцесора

0000

78

MOV A, B

регістр В -> регістр А

-

-

-

-

Непряма адресація.

Занесіть в регістри H та L значення H=00, L=0В; в комірку ОЗП (000В)=АА.

Адреса комірки ОЗП

код команди

Мнемонічний запис команди

Команда мікропроцесора

0000

MOV A, M

дані комірки ОЗП за адресою HL (H-старший байт адреси комірки ОЗП;  L-молодший байт адреси комірки ОЗП) -> регістр А

-

-

-

-

-

-

-

-

000B

AA

XRA D

дані

-

-

-

-

Зробіть висновок про об'єм оперативної пам'яті який займають команди та час їх виконання для різних способів адресації.

5. Контрольні запитання.

1. Назвіть основні складові частини мікропроцесора.

2. Що таке регістр, і регістри яких типів входять в склад мікропроцесора?

3. Які регістри є доступними програмісту, а які - ні?

4. Чи можна змінити конфігурацію регістрів мікропроцесора?

5. Яка довжина машинного слова мікропроцесора КР580ВМ80?

6. Для чого використовуються регістри загального призначення?

7. Призначення регістра А. Дані якої довжини можна завантажувати в акумулятор?

8. Для чого використовується лічильник команд?

9. Що таке стек, і призначення вказівника стеку?

10. Поясніть призначення регістра стану, та значення окремих його прапорців.

11. Яким чином мікропроцесор виконує команду?

12. Що таке машинний цикл і чим він відрізняється від машинного такту?

13. Скільки і які типи команд може виконувати мікропроцесор КР580ВМ80?

14. Формати команд: однобайтовий, двобайтовий, трибайтовий.

15. Види адресації мікропроцесора КР580ВМ80? Який з видів адресації є найбільш економним з точки зору об'єму оперативної пам'яті, що він займає; з точки зору часу виконання?

16. Назвіть типи команд щодо функціональної ознаки.

17. В чому полягає робота програми-емулятора?

18. Який максимальний об'єм пам'яті може адресувати мікропроцесор КР580ВМ80?


1 байтовий

хх  ххх  ххх

    dst/n  src

<B1>

2 байтовий

хх  ххх  ххх

     dst  

Дані 8 біт/

Порт

<B1>

B2>

3 байтовий

хххххххх

Дані 16 біт/адреса

молодший байт       старший байт

<B1>

<B2>

<B3>

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

Операційний код

Дані/адреса

Дані/адреса

<B1>

<B2>

<B3>

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

Операційний код

Адреса

Адреса

<B1>

<B2>

<B3>

Пам’ять

Дані

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

<B1>

Дані

Регістри

Дані

Операційний код

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

<B1>

Операційний код

Адреса

Регістри

Адреса

Пам’ять

Дані


 

А также другие работы, которые могут Вас заинтересовать

35342. Тема: Створення файлу конфігурації системи config. 38 KB
  Мета: Ознайомитися з основними командами конфігурації системи MS DOS і на підставі одержаних теоретичних відомостях написати прості файли конфігурації системи. Дозвольте використовування верхньої пам'яті і перемістіть частину коду MS DOS в перші 64 кБ розширеній пам'яті. Встановіть завантаження драйвера spi8dos. Встановіть каталоги в яких знаходяться виконувані програми загального призначення: W95 а в ньому командний процесор COMMND DOS.
35344. Тема: Інсталяція і деінсталяція програмного забезпечення ПК. 124.5 KB
  Індивідуальне завдання Увійдіть до службової програми Установка і видалення програм. Пуск Панель управления Установка и удаление программ. Опишіть можливості програми що знаходяться в пункті меню Установка програм. Опишіть можливості програми що знаходяться в пункті меню Установка компонентів Windows.
35345. Иннервация мягкого неба и надгортанника, их функциональное значение 15.04 KB
  Блуждающий, языкоглоточный нервы имеют в составе и чувствительные волокна, ядра этих нервов располагаются в продолговатом мозге. А чувствительные ганглии в узлах этих нервов у выхода из полости черепа
35346. Керування папками, файлами та ярликами 39 KB
  Індивідуальне завдання Відкрити вікно диска D: і створити в ній папку NEW літери латинські. Перейменувати папку NEW у папку НОВА літери кирилиці. Чтобы переименовать папку нужно нажать провую клавишу мыши и выбрать команду переименовать. З папки диска D: скопіювати в папку НОВА будь який файл або папку.
35347. Удаленное управление ресурсами ПЭВМ через локальную сеть средствами стека протоколов TCP/IP 4.21 MB
  Техническое задание: Разработка программного обеспечения, позволяющего устанавливать соединение между двумя ПЭВМ средствами стека протоколов TCP/IP для последующего управления ресурсами одного из ПЭВМ (клавиатура, курсор мышки, дисплей).
35348. Тема: Сортування і групування даних Мета: навчитися розділяти одержані дані на групи так щоб їх легко бул 53 KB
  EMP_ID LST NM FIRST NM DDRESS CITY STTE ZIP PHONE 311549902 442346889 213764555 313782439 220984332 443679012 STEPHENS PLEW GLSS GLSS WLLCE SPURGEON TIN LIND BRNDON JCOB MRIH TIFFNY D RR 3 BOX 17 С 3301 BECON S 1710 MIN ST 3789 RIVER BLVD 7789 KEYSTONE 5 GEORGE COURT GREENWOOD INDINPOLIS WHITELND INDINPOLIS INDINPOLIS INDINPOLIS IN IN IN IN IN IN 47890 46224 47885 45734 46741 46234 3178784465 3172978990 3178984321 3175457676 3173325986 3175679007 Запишіть оператора SQL що повертає табельний номер службовця EMP_ID ім'я службовця...
35350. Организация видеосвязи. Видеоконференцсвязь 1.56 MB
  Видеоконференцсвязь применяется для личного и делового общения, проведения совещаний, конференций и других важных мероприятий, в которых важно присутствие тех субъектов общения, которые по тем или иным причинам не могут находиться в месте проведения мероприятия лично.