Міністерство освіти і науки України
НУ «Львівська політехніка»
Кафедра САПР
Лабораторна робота №2
З дисципліни «Мікропроцесори»
По темі: Способи адресації операндів і команди пересилання даних однокристального МП КР580.
Виконав ст. гр. кн.-3
Львів-2008
Мета роботи
Вивчити способи адресації операндів і команди пересилання даних в однокристальному мікропроцесорі (МП) КР580, набути практичні навики складання і налагодження програм з використанням цих команд.
Короткі теоретичні відомості
2.1 Способи адресації в МП КР580
Пам'ять МП КР580 має байтову структуру – можлива адресація в пам'яті будь-якогобайта. Ширина вибору з пам'яті – 1 байт. При звертанні до пам'яті використовуються 16-розрядні (двобайтові) адреси. Адресний простір МП КР580 становить 64 Кбайти.
Схема команд МП КР580 містить 244 команди. Команди складаються з одного, двох аюо трьох байтів і знаходяться в пам'яті(оперативній або постійній). Багатобайтові команди зберігаються в сусідніх комірках пам'яті.
В однобайтових командах байт використовується для задання коду виконуваної операції. Однобайтові команди – це команди обміну з пам'яттю, арифметичні, логічні, зсувів, операцій зі стеком, керування системою керувань.
Двобайтові команди – це команди з безпосереднім операндом або команди вводу\виводу. Перший байт команди містить код виконуваної операції, а другий – або безпосередній операнд, або операнд адреси порту вводу\виводу.
Трибайтові команди містять у першому байті код виконуваної операції, а в другому – або адреси пам'яті, або два байти безпосередніх даних.
Операнд, який розуміється. В команді не задаються явно ні адреса операнда, ні він сам.опернд розуміється і фактично задається кодом операції команди.
INR A (збільшити на 1 вміст акумулятора)
1100 1100
2. Неявна адресація. При цьому способі адресації адреса одного або двох операндів неявно задається в коді операції. У МП КР580 перший операнд завжди находиться в акумуляторі, а другий може бути адресований прямо, непрямо або безпосередньо.
DAA(виконати десяткове доповнення акумулятора)
0010 0111
3. Безпосередня адресація. При безпосередній адресації операнд є частиною виконуваної команди. У МП КР580 допускається безпосередньо адресувати 8-бітні і 16-бітні слова.
ADI 80H
1100 0110 1000 0000
4. Пряма регістрова адресація. У полі операндів команди задаються адреси регістрів загального призначення (РЗП) A, B, C, D, H, L. У МП КР580 використовується трирозрядне поле для вибору одного з семи РЗП.
MOV E,C
01 011 001
5. Пряма адресація. У полі операнда міститься повна 16-бітна адреса байта пам'яті.
STA 800H
0011 0010 0000 0000 0000 1000
6. Непряма регістрова адресація. В адресному полі команди вказується код пари регістрів, в якій міститься адреса комірки пам'яті, де розміщені потрібні дані.
STAX B
00 00 0010
7. Стекова адресація. При стековій адресації реалізується безпосереднє завдання операнда. Дані заносяться в стек або зчитуються зі стеку, на початок якого вказує вміст вказівника стеку (SP).
PUSH B
11 00 0101
2.2 Команди пересилання даних МП КР580
1. Пересилання даних з регістра в регістр.
MOV R1, R2; (R1) (R2).
Вміст регістра R2 пересилається в регістр R1. R1, R2 – регістри загального призначення (РЗП) A, B, C, D, E, L.
2. Пересилання даних з пам'яті в регістр.
MOV R, M; (R) ((H)(L)); R – A, B, C, D, E, H, L.
Вміст комірки пам'яті, адреса якої знаходиться в регістрах H i L пересилається в РЗП R. В регістрі Н задається старша половина адреси, в регістрі L – молодша половина.
Непряме завантаження акумулятора.
LDAX RP ; (A) ((rh)(rl)); RP: B-BC, D-DE.
В акумулятор пересилається вміст комірки пам'яті, адреса якої задається в парі регістрів RP.
4. Запам'ятати двобайтову константу VAL16 у комірках пам'яті з адреси ADDR i ADDR+1.
LXI H, VAL16 ; (H) (L) (VAL16);
Запам'ятати однобайтову константу VAL8 у комірці пам'яті з адресою, що міститься в комірках ADDR i ADDR+1.
LHLD ADDR; (H) (L) (ADDR)
MVI M, VAL8; ((H)(L)) (VAL8).
2.3 Стек і крманди роботи зі стеком в однокристальному МП КР580
Стек – це область оперативної пам'яті, яка адресується за допомогою вказівника стека (SP) (16 – розрядного доступного регістра).
Завдання
Записати послідовність з шести даних через акумулятор в пам'ять, зчитати через стек і записати в регістрові пари B,H,D.
Код програми
ORG 100H
MVI A,1h
LXI H,200H
MOV M,A
MVI A,2h
LXI H,201H
MOV M,A
MVI A,3h
LXI H,202H
MOV M,A
MVI A,4h
LXI H,203H
MOV M,A
MVI A,5h
LXI H,204H
MOV M,A
MVI A,6h
LXI H,205H
MOV M,A
lxi sp,200h
pop b
pop d
pop h
HLT
Висновок
На даній лабораторній роботі я вивчив способи адресації операндів і команди пересилання даних у мікропроцесорі КР580, та склав програму, відповідно до свого завдання, внаслідок чого набув практичних навиків використання цих команд.