АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Система команд ОМЕОМ MCS51

Читайте также:
  1. E согласно механизму сотрудничества с системами фермента.
  2. II. Богословская система
  3. III. Лексика как система (8 часов)
  4. IV. Алгоритм действий командира (начальника) при увольнении военнослужащего в связи с невыполнением им условий контракта
  5. Q.50 Обратитесь к выставке. НОК техником на провайдера входит в команду, показанную. Назовите две причины, чтобы использовать эту команду? (Выберите два.)
  6. SCADA как система диспетчерского управления
  7. SCADA система Citect
  8. SCADA-система: назначение и функции
  9. SCADA: требования к системам верхнего уровня
  10. Shelter (разработчик USC) – система управления отелем, гостиницей, домов отдыха, пансионатов, санаториев
  11. VI регионального слета студенческих спасательных отрядов среди команд Сибирского федерального округа
  12. VІ. Узагальнення і систематизація знань. Практична робота

 

Система команд ОМЕОМ MCS51 надає широкi можливостi для обробки даних, забезпечує реалiзацiю логiчних, арифметичних операцiй, а також керування у режимi реального часу. Реалiзована побiтова, потетрадна (4 бiти), побайтна (8 бiт) та 16-ти розрядна обробка даних.

Систему команд МCS51 умовно можна роздiлити на п'ять груп:

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

- логiчнi команди з байтовими змiнними;

- команди передачi даних;

- команди бiтового процесора;

- команди розгалуження та передачi курування.

До арифметичних команд вiдносять додавання (ADD), додавання з врахуванням флагу переносу (ADDC), вiднiмання iз запозиченням (SUBB), iнкрементування (INC), декрементування (DEC), десяткової корекцiї (DA), множення (MUL), дiлення (DIV).

 

Таблиця 12. Група арифметичних операцій

Мнемокод Дія Назва команди Довжина, байт К-ість циклів Примітки
ADD A,Rn [A]:= [A] + [Rn] Додаванння      
ADD A,ad [A]:= [A] + [ad] -//-      
ADD A,@Ri [A]:= [A] + [(Ri)] -//-      
ADD A,#d [A]:= [A] +#d -//-      
ADDC A, Rn [A]:=[A]+[Rn]+[C] -//-      
ADDC A,ad [A]:= [A]+[ad]+ [C] -//-      
ADDC A, @Ri [A]:= [A]+[(Ri)]+ [C] -//-      
ADDC A,#d [A]:= [A]+#d+[C] -//-      
DA Десяткова корекція акумулятора      
SUBB A,Rn [A]:=[A]-[Rn]-[C] Віднімання      
SUBB A,ad [A]:= [A]-[ad]- [C] -//-      
SUBB A,@Ri [A]:= [A]-[(Ri)]- [C] -//-      
SUBB A,#d [A]:= [A]-#d-[C] -//-      
INC A [A]:= [A] + 1 Інкремент      
INC Rn [Rn]:= [Rn] + 1 -//-      
INC ad [ad]:= [ad] + 1 -//-      
INC @Ri [(Ri)]:= [(Ri)] + 1 -//-      
INC DPTR [DPTR]:= [DPTR]+1 -//-      
DEC A [A]:= [A] – 1 Декремент      
DEC Rn [Rn]:= [Rn] – 1 -//-      
DEC ad [ad]:= [ad] – 1 -//-      
DEC @Ri [(Ri)]:= [(Ri)] - 1 -//-      
MUL AB [A],[B]:= [A]* [B] Множення     [А]-hight byte [В]– low byte
DIV AB [A].[B]:= [A]/ [B] Ділення     [А]- частка [В] - остача

 

До логiчних команд iз байтовими змiнними вiдносяться коман ди логiчного множення (ANL), логiчного додавання (ORL), додавання по модулю 2 (XRL).

 

Таблиця 13. Група логічних операцій

Мнемокод Дія Назва команди Довжина, байт К-сть циклів Примітки
ANL A,Rn [A]:=[A] and [Rn] Логічне множення      
ANL A,ad [A]:= [A] and [ad] -//-      
ANL A,@Ri [A]:= [A]and [(Ri)] -//-      
ANL A,#d [A]:= [A] and #d -//-      
ANL ad,A [ad]:= [ad] and [A] -//-      
ANL ad,#d [ad]:= [ad] and #d -//-      
ORL A,Rn [A]:=[A] or [Rn] Логічне додавння      
ORL A,ad [A]:= [A] or [ad] -//-      
ORL A,@Ri [A]:= [A]or [(Ri)] -//-      
ORL A,#d [A]:= [A] or #d -//-      
ORL ad,A [ad]:= [ad] or [A] -//-      
ORL ad,#d [ad]:= [ad] or #d -//-      
XRL A,Rn [A]:=[A] xor [Rn] Виключаюче “АБО”      
XRL A,ad [A]:= [A]xor [ad] -//-      
XRL A,@Ri [A]:= [A]xor [(Ri)] -//-      
XRL A,#d [A]:= [A] xor #d -//-      
XRL ad,A [ad]:= [ad] xor [A] -//-      
XRL ad,#d [ad]:= [ad] xor #d -//-      
CPL A [A]:= not[A] Інверсія      
CLR A [A]:= 0 Очистка      
RL A [A.b]:=[A.(b-1)]; [A.0]:=[A.7] Зсув на біт вліво      
RLC A [A.b]:= [A.(b-1)]; [A.0]:=[C];[C]:=[A.7] -//-     через біт “С”
RR A [A.7]:=[A.0]; [A.b]:= [A.(b+1)]; Зсув на біт вправо      
RRC A [C]:=[A.0]; [A.7]:= [C] [A.b]:= [A.(b+1)]; -//-     через біт “С”
SWAP A [A.0...A.3]<=>[A.0...A.3] Обмін тетрадами      

 

Таблиця 14. Група команд роботи з бітами

Мнемокод Дія Довжина, байт Кількість циклів Примітки
CLR C [C]:=0      
CLR bit [bit]:=0      
SETB C [C]:=1      
SETB bit [bit]:=1      
CPL C [C]:=not[C]      
CPL bit [bit]:=not[bit]      
ANL C,bit [C]:=[C]and [bit]      
ANL C,/bit [C]:=[C]and (not[bit])      
ORL C,bit [C]:=[C]or [bit]      
ORL C,/bit [C]:=[C]or (not[bit])      
MOV C,bit [C]:= [bit]      
MOV bit,C [bit]:= [C]      

 

За допомогою команд бiтового процесора можна встановити в "1", скинути в "0", iнвертувати певний флаг чи адресований бiт. Можна реалiзувати переходи: якщо бiт встановлений; якщо бiт не встановлений; якщо бiт встановлений iз скиданням цього бiту. Мiж окремими бiтами можна виконувати ряд логiчних операцiй, що дозволяє оптимiзувати алгоритм програми користувача.

До команд передачi даних вiдносяться всi команди пересилки даних мiж регiстрами, регiстрами та пам'яттю (MOV, MOVC) із використанням рiзних способiв адресацiї.

 

Таблиця 15. Група команд передачі даних

Мнемокод Дія Назва команди Довжинабайт К-сть циклів Примітки
MOV A,Rn [A]:=[Rn] Передача даних      
MOV A,ad [A]:=[ad] -//-      
MOV A,@Ri [A]:=[(Ri)] -//-      
MOV A,#d [A]:=#d -//-      
MOV Rn,A [Rn]:= [A] -//-      
MOV Rn,ad [Rn]:=[ad] -//-      
MOV Rn,#d [Rn]:=#d -//-      
MOV ad,A [ad]:= [A] -//-      
MOV ad,Rn [ad]:= [Rn] -//-      
MOV ad,ads [ad]:= [ads] -//-      
MOV ad,@Ri [ad]:= [(Ri)] -//-      
MOV ad,#d [ad]:= #d -//-      
MOV @Ri,A [(Ri)]:=[A] -//-      
MOV @Ri,ad [(Ri)]:=ad -//-      
MOV @Ri,#d [(Ri)]:= #d -//-      
MOV DTPR,#d16 [DTPR]:=#d16 Завантаження DTPR      
MOVC A,@A+DTPR [A]:=[(A)]+ +[(DPTR)] Читання зовнішньої пам’яті даних      
MOVC A,@A+PC [A]:=[(A)]+ [(PC)] Читання байту пам’яті програм      
MOVX A,@Ri [A]:= [(Ri)] Завантаження зовнішньої пам’яті даних     8 бітна адреса
MOVX A,@DTPR [A]:= [(DTPR)] Читання зовнішньої пам’яті даних     16 бітна адреса
MOVX @Ri,A [(Ri)]:=[A] Читання зовнішньої пам’яті даних     8 біт адреси
MOVX @DTPR,A [(DTPR)]:=[A] Читання зовнішньої пам’яті даних     16 біт адреси
PUSH ad [SP]:=[SP]+1 [(SP)]:=[ad] Завантажити в стек      
POP ad [SP]:=[SP]-1 [ad]:= [(SP)] Витягнути з стеку      
XCH A,Rn [A]<=>[Rn] Обмін байтами      
XCH A,ad [A] <=>[ad] -//-      
XCH A,@Ri [A] <=>[(Ri)] -//-      
XCHD A,@Ri [A.0...A.3]<=> [(Ri.0.. Ri.3)] Обмін молодшими тетрадами      

 

Таблиця 16. Група команд передачі керування

Мнемокод Дія Назва команди Довжина, байт К-сть циклів
LJMP ad16 [PC]:=ad16 Довгий перехід    
AJMP ad11 [PC]:= [PC] +ad11 Абсолютний перехід в межах 2К    
SJMP ad8 [PC]:= [PC] +rel Короткий перехід    
JMP @A+DPTR [PC]:= [A] +[DPTR] Непрямий перехід    
JZ rel Якщо Z=1, то [PC]:= [PC] +rel, інакше [PC]:= [PC] +2 Умовний перехід по Z    
JNZ rel Якщо Z=0, то [PC]:= [PC] +rel, інакше [PC]:= [PC] +2 -//-    
JC rel Якщо С=1, то [PC]:= [PC] +rel, інакше [PC]:= [PC] +2 Умовний перехід по C    
JNC rel Якщо С=0, то [PC]:= [PC] +rel, інакше [PC]:= [PC] +2 -//-    
JB bit, rel Якщо bit=1, то [PC]:= [PC] +rel, інакше [PC]:= [PC] +3 Умовний перехід за значенням біта    
JNB bit, rel Якщо bit=0, то [PC]:= [PC] +rel, інакше [PC]:= [PC] +3 -//-    
JBC bit, rel Якщо [bit]=1, то [PC]:= [PC]+rel, інакше [PC]:= [PC] +3 -//- з наступним його очищенням    
DJNZ Rn, rel [Rn]:=[Rn]-1; Якщо [Rn]¹0, то [PC]:= [PC] +rel, інакше [PC]:= [PC] +2 Декремент регістра і перехід, якщо не нуль    
DJNZ ad, rel [ad]:=[ad]-1; Якщо [ad]¹0, то [PC]:= [PC] +rel, інакше [PC]:= [PC] +3 Декремент прямоадресованого байта і -//-    
CJNE A,ad,rel Якщо [А]¹[Rn], то [PC]:= [PC] +rel, інакше [PC]:= [PC] +3 Перехід якщо нерівні значення акумулятора і регістра    
CJNE A,#d,rel Якщо [А] ¹#d, то [PC]:= [PC] +rel, інакше [PC]:= [PC] +3 Перехід якщо нерівні значення акумулятора і константи    
CJNE Rn,#d, rel Якщо [Rn] ¹#d, то [PC]:= [PC] +rel, інакше [PC]:= [PC] +3 Перехід якщо нерівні значення регістра і константи    
CJNE@Ri,#d, rel Якщо [(Ri)] ¹#d, то [PC]:= [PC] +rel, інакше [PC]:= [PC] +3 Перехід якщо нерівні значення регістра і константи    
LCALL ad16 [PC]:= [PC] +3, [SP]:=[SP]+2 [(SP)]:=[ PC] Довгий виклик підпрограми    
ACALL ad11 [PC]:= [PC] +2, [SP]:=[SP]+2 [(SP)]:=[ PC] Абсолютний виклик підпрограми в межах 2К    
RET [PC]:= [(SP)]; [SP]:=[SP]+2 Вихід із підпрограми    
RETI [PC]:= [(SP)]; [SP]:=[SP]+2 -//- обробки переривання    
NOP [PC]:= [PC] +1 Холоста команда    

До команд розгалуження та передачi керування вiдносять команди безумовного переходу (JMP) та умовного переходу (JZ, JNZ, JB, JBC, JC, JNB, JNC) за результатами аналiзу окремих бiтiв та флажкiв ОМЕОМ. Крiм того, до цiєї групи команд вiдносяться команди виклику пiдпрограм (CALL) та повернення із пiдпрограми (RET).

Таблиця 17. Визначені адреси бітів даних

Позначення Біт регістра Адреса Призначення
CY PSW.7 D7 флаг переносу
AC PSW.6 D6 флаг додаткового переносу
F0 PSW.6 D5 Флаг користувача
RS1 PSW.4 D4 Біт 1 вибору банка регістрів
RS0 PSW.3 D3 Біт 0 вибору банка регістрів
OV PSW.2 D2 флаг переповнення
P PSW.0 D0 Флаг парності
TF1 TCON.7 8F Флаг переповнення таймера 1
TR1 TCON.6 8E Біт включення таймера 1
TF0 TCON.5 8D Флаг переповнення таймера 1
TR0 TCON.4 8C Біт включення таймера 1
IE1 TCON.3 8B Флаг запиту зовнішнього преривання 1
IT1 TCON.2 8A Керуючий біт переривання 1
IE0 TCON.1   Флаг запиту зовнішнього преривання 1
IT0 TCON.0   Керуючий біт переривання 1
SM0 SCON.7 9F Режим послідовного порту, біт 0
SM1 SCON.6 9E Режим послідовного порту, біт 1
SM2 SCON.5 9D Режим послідовного порту, біт 2
REN SCON.4 9C Дозвіл прийому
TB8 SCON.3 9B 8-й біт передачі
RB8 SCON.2 9A 8-й біт прийому
TI SCON.1   Флаг преривання передачі
RI SCON.0   Флаг преривання прийому
EA IE.7 AF Дозвіл всіх переривань
ES IE.4 AC Дозвіл переривання послідовного порту
ET1 IE.3 AB Дозвіл переривання таймиера/лічильника 1
EX1 IE.2 AA Дозвіл зовнішнього переривання 1
ET0 IE.1 A9 Дозвіл переривання таймиера/лічильника 1
EX0 IE.0 A8 Дозвіл зовнішнього переривання 1
PS IP.4 BC Пріоритет переривання послідовного порту
PT1 IP.3 BB Пріоритет переривання таймиера/лічильника 1
PX1 IP.2 BA Пріоритет зовнішнього переривання 1
PT0 IP.1 B9 Пріоритет переривання таймиера/лічильника 0
PX0 IP.0 B8 Пріоритет зовнішнього переривання 0
RD P3.7 B7 Читання із зовнішьої пам’яті
WR P3.6 B6 Запис у зовнішю пам’ять
T1 P3.5 B5 Зовнішній вхід таймера/лічильника 1
T0 P3.4 B4 Зовнішній вхід таймера/лічильника 0
INT1 P3.3 B3 Вхід переривання 1
INT0 P3.2 B2 Вхід переривання 0
TxD P3.1 B1 Вихід передачі послідовного порту
RxD P3.0 B0 Вихід прийому послідовного порту

 

Визначені назви регістрів приведені у табл. 3, бітів - у таблиці 17, а прийняті позначення приведені у табл. 18.

 

Таблиця 18. Список використовуваних позначень у системі команд

Позначення Назва Межі Призначення Примітки
А Акумулятор   Зберігання даних різних команд  
b Номер біту 0.. 7    
ad Абсолютна адреса регістра     55h
ad 11 Адреса (зміщення) 11 біт     #7F5h
ad16 Абсолютна адреса 16 біт     #0F5С0h
С Біт переносу   Вказує на переповнення акумулятора  
#d Константа 8 біт 0..0FFh   #0F5h
#d16 Константа 16 біт 0..0FFFFh   #0F5С0h
rel Відносне зміщення 8 біт 0..0FFh    
Rn Регістр робочого банку 0..7   R4
Ri Регістр непрямої адресації 0;1 Запис @Ri означає, що адреса регістра призначення вказана у Ri R0
DTPR Вказівник даних      
M Адреса мітки 0..0F    
N Адреса мітки 0..0хF    
[ ]     Вміст операнда [А]
()     Посилання по значенню операнда (Ri)

 


1 | 2 | 3 | 4 | 5 | 6 | 7 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.007 сек.)