Функциональное описание системы команд микропроцессора




Таблица П1

Формат регистра флагов F

Номер бита                
Обозна- чение S Z   AC   P   C

 

S (Sign) – признак знака, устанавливается в 1, если результат выполнения команды отрицателен. Единица в старшем разряде соответствует отрицательному числу в дополнительном коде.

Z (Zero) – признак нуля, устанавливается в 1, если результат выполнения операции нулевой.

AC (Auxiliary Carry) – признак вспомогательного переноса, устанавливается в 1, если происходит перенос из младшей тетрады в старшую.

P (Parity) – признак четности, устанавливается в 1, если число единиц в двоичном коде четное.

C (Carry) – признак переноса, устанавливается в 1, если в результате выполнения операции с двумя 8-разрядными двоичными числами результат не помещается в разрядной сетке.

Влияние выполнения машинных команд на состояние регистра флагов отображено в таблице П2.

 

 

Таблица П2

Влияние выполнения машинных команд на состояние

регистра флагов КР580

Команда Регистр флагов Команда Регистр флагов
S Z AC P C S Z AC P C
ACI D8 + + + + + MVI R, D8 - - - - -
ADC D8 + + + + + NOP - - - - -
ADD R + + + + + ORA R + +   +  
ADI R + + + + + ORI D8 + +   +  
ANA R + + U + + OUT N - - - - -
ANI D8 + + U + + PCHL - - - - -
C_CON A16* - - - - - POP PSW + + + + +
CALL A16 - - - - - PUSH PSW - - - - -
CMA - - - - - PUSH YZ* - - - - -
CMC - - - - + R_CON - - - - -
CMP R + + + + + RAL - - - - +
CPI D8 + + + + + RAR - - - - +
DAA + + + + + RET - - - - -
DAD YZ - - - - + RLC - - - - +
DCR R + + + + - RRC - - - - +
DCX YZ - - - - - RST NUM - - - - -
DI - - - - - SBB R + + + + +
EI - - - - - SBI D8 + + + + +
HLT - - - - - SHLD A16 + + + + +
IN N - - - - - SPHL - - - - -
INR R + + + + + STA A16 - - - - -
INX YZ - - - - - STAX R - - - - -
J_CON A16 - - - - - STC - - - -  
JMP A16 - - - - - SUB R + + + + +
LDA A16 - - - - - SUI D8 + + + + +
LDAX R - - - - - XCHG - - - - -
LHLD A16 - - - - - XRA R + +   +  
LXI YZ, D16 - - - - - XRI D8 + +   +  
MOV R, RI - - - - - XTHL - - - - -

 

 

В таблице П2 знак «+» означает, что выполнение данной команды оказывает влияние на состояние соответствующего флага, знак «-» – состояние флага остается неизменным, «1» – данный флаг устанавливается в единицу, «0» – данный флаг сбрасывается в «0», «U» – состояние данного флага не определено. Мнемоники машинных команд (их условное обозначение) и описание выполняемых ими действий приведены в таблице П3.

 

Таблица П3

Функциональное описание системы команд микропроцессора

№ группы команд Назначение Мнемоника Описание
  Команды однобайтовых пересылок MOV RI, R MVI R, D8 LDAX YZ STAX YZ STA A16 LDA A16 (RI)(R) (R)D8 (A)[YZ] [YZ](A) A16(A) (A)A16
  Команды ввода-вывода IN N OUT N (A)(N) (N)(A)
  Команды арифметических и логических операций с одним операндом CMC STC CMA DAA   INR R DCR R INX YZ DCX YZ C+ C1 (A)(A) десятичная коррекция (R)(R)+1 (R)(R)-1 (YZ)(YZ)+1 (YZ)(YZ)-1
  Команды обмена байтами   XCHG XTHL (HL)«(DE) (H)«[SP+1] (L)«[SP]
  Команды сдвига содержимого аккумулятора RLC   RAL     RRC   RAR   Циклический сдвиг влево     Циклический сдвиг влево через флаг C     Циклический сдвиг вправо   Циклический сдвиг вправо через флаг C

 

 

Продолжение табл. П3

№ группы команд Назначение Мнемоника Описание
  Команды двухбайтовых пересылок данных LXI YZ, D16 SHLD A16 LHLD A16     PUSH YZ   POP YZ   PUSH PSW   POP PSW   SPHL (YZ)D16 A16+1(L) A16(H) (L)A16+1 (H)A16 [SP-1](Y) [SP-2](Z) (SP)(SP)-2 (Y)[SP] (Z)[SP+1] (SP)(SP+2) [SP-1](A) [SP-2](F) (SP)(SP)-2 (F)[SP] (A)[SP+1] (SP)(SP)-2 (SP)(HL)
  Команды арифметических и логических операций с двумя операндами ADD R ADC R SUB R SBB R ANA R ORA R XRA R ADI D8 ACI D8 SUI D8 SBI D8 ANI D8 XRI D8 ORI D8 CPI D8 CMP R   DAD YZ (A)(A)+(R) (A)(A)+(R)+C (A)(A)-(R) (A)(A)-(R)-C (A)(A)Ù(R) (A)(A)Ú(R) (A)(A)Å(R) (A)(A)+D8 (A)(A)+D8+C (A)(A)-D8 (A)(A)-D8-C (A)(A)ÙD8 (A)(A)ÅD8 (A)(A)ÚD8 Установка флагов в F по результатам сравнения (A) с D8 или (R) (HL)(HL)+(YZ)

Продолжение табл. П3

№ группы команд Назначение Мнемоника Описание
  Специальные команды EI     DI     HLT NOP Разрешение прерываний   Запрет прерываний     Останов Холостая операция
  Команды вызова и возврата из подпрограмм и прерываний     CALL A16   RET     C_CON A16     R_CON     RST   [SP-1][SP-2](PC) (SP)(SP)-2 (PC)A16 (PC)[SP][SP+1] (SP)(SP+2)   При CON=1 [SP-1][SP-2](PC) (SP)(SP)-2 (PC)A16, иначе (PC)(PC)+3 При CON=1 (PC)[SP][SP+1] (SP)(SP)+2, иначе (PC)(PC)+3 [SP-1][SP-2](PC) (SP)(SP)-2 (PC)A16, где А16=0h,8h,10h,18h, 20h,28h,30h, 38h

 

Продолжение табл. П3

№ группы команд Назначение Мнемоника Описание
  Команды передачи управления PCHL JMP A16 J_CON A16 (PC)(HL) (PC)A16 при CON=1 (PC)A16, иначе (PC)(PC)+1(2)(3), в зависимости от длины машинной команды

 

В таблице П1.3 _CON означает часть мнемоники команды, определяющая условие передачи управления вызова и возврата из подпрограммы. _CON в мнемониках команд заменяется на:

o nz – если условный переход, вызов или возврат из подпрограммы осуществляется при z=0;

o z – если условный переход, вызов или возврат из подпрограммы осуществляется при z=1;

o nc – если условный переход, вызов или возврат из подпрограммы осуществляется при c=0;

o c – если условный переход, вызов или возврат из подпрограммы осуществляется при c=1;

o po – если условный переход, вызов или возврат из подпрограммы осуществляется при p=1;

o pe – если условный переход, вызов или возврат из подпрограммы осуществляется при p=0;

o p – если условный переход, вызов или возврат из подпрограммы осуществляется при s=0;

o m – если условный переход, вызов или возврат из подпрограммы осуществляется при s=1.

Далее приводится пример программы, демонстрирующей использование наиболее часто встречающихся команд. При составлении собственных программ рекомендуется придерживаться такой же формы записи.

 

Адрес Мнемоника Код Комментарий

8000 MVI A, 1A 3E (A)1A; 3E – код команды MVI A, D8

8001 1A 1A – конкретный операнд,

подставляемый вместо D8

8002 MOV C, A 4F (C)(A); 4F – код команды MOV C,A,

операндов у ней нет, поэтому занимает

1 байт. Сейчас (A)=1A и (С)=1A

8003 LXI D, 8200 11 (DE)8200;11 – код команды LXI D, D16

8004 00 8200 – конкретный операнд,

8005 82 подставляемый вместо D16, т.к.

младший байт расположен по младшему адресу,

то порядок следования в программе 00 82

8006 STA 8201 32 (8201)(A); 32 – код команды STA A16

8007 01 8201 – конкретный операнд,

8008 82 подставляемый вместо А16. По этой

команде в ячейку памяти с адресом

8201 записалось содержимое аккумулятора,

т.е. (8201)=1А

8009 MVI A, C1 3E (A)C1

800A C1

800B LDA 8201 3A (A)(8201); 3A – код команды LDA A16

800C 01 8201 – конкретный операнд,

800D 82 подставляемый вместо A16, (A)=1A

800E MVI A, 90 3E (A)90

800F 90

8010 STAX D 12 [DE](A); в ячейку памяти с адресом,

хранящимся в регистровой паре DE,

записывается содержимое

аккумулятора, т.е. (8200)=90

8011 LXI D, 8201 11 (DE)8201

8012 01

8013 82

8014 LDAX D 1A (A)[DE]; в аккумулятор из ячейки

памяти, адрес которой хранится в

регистровой паре, записывается

содержимое, т.е. (A)=1A

8015 INR C 0C (C)(C)+1, увеличение содержимого

регистра С на единицу, т.е. (С)=1B

8016 DCR A 3D (A)(A)-1, уменьшение содержимого

регистра A на единицу, т.е. (A)=19

8017 INX D 13 (DE)(DE)+1, увеличение

содержимого регистровой пары (DE)

на единицу, т.е. (DE)=8202

8018 INX D 13 (DE)(DE)+1, (DE)=8203

8019 DCX D 1B (DE)(DE)-1, (DE)=8202

801A STAX D 12 [DE](A), (8202)=19

801B LXI H, 0100 21 (HL)0100

801С 00

801D 01

801E XCHG EB (DE)«(HL), (DE)=0100, (HL)=8202

801F DCX H 2B (HL)=8201

8020 SPHL F9 (SP)(HL), пересылка содержимого

регистровой пары HL в регистр

указателя стека (SP)=8201

8021 XTHL E3 (H)«[SP+1], (L)«[SP], обмен

информацией между вершиной

стека и регистровой парой (HL),

т. е. (H)=19, (L)=1A, (8202)=82,

(8201)=01

8022 ADD H 84 (A)(A)+(H), (A)=32

8023 CPI 32 FE команда сравнения содержимого аккумулятора

8024 32 со вторым байтом, т.е. (A) сравнивается с 32;

сравнение производится посредством

вычитания, но результат в А не помещается

8025 JNZ 8000 C2 эта команда условного перехода передала бы

8026 00 управление на адрес 8000, если бы флаг Z=0,

8027 80 т.к. предыдущая команда установила Z=1, то

будет выполнена следующая за ней команда с

адресом 8028

8028 SUI 32 D6 (A)(A)-32; (A)=0, флаг Z в

8029 32 регистре флагов установился в 1

802A JZ 8028 CA передаст управление на команду с

802B 28 адресом 8028, если Z=1

802C 80

802D INR A 3C (A)(A)+1; (A)=1

802E ADD A 87 (A)(A)+(A);(A)=2

802F CMP C B9 сравнение содержимого аккумулятора с

содержимым регистра С; сравнение

производится посредством вычитания,

результат в аккумулятор не записывается

8030 JP 8010 F2 передала бы управление по адресу 8010, если

8031 10 флаг S=0; т.к. (A)=2 и (С)=1B, то (А)-(С)=Е7,

8032 80 т.е. флаг S=1

8033 jmp 8300 C3 безусловная передача управления на

8034 00 команду с адресом 8300

8035 83

 

В приведенной программе все числа записаны в шестнадцатеричной системе счисления. Мнемоники команд микропроцессора КР580ВМ80А и соответствующие им коды приведены в таблице П4. В крайних столбцах этой таблицы приведены значения старших 4 бит байта (старшей тетрады), в верхней и нижней строке значения младших четырех бит байта (младшей тетрады).

 

                 
F RRC RAR CMA CMC MOV C, A MOV E, A MOV L, A MOV A, A F
E MVI C, D8 MVI E, D8 MVI L, D8 MVI A, D8 MOV C, M MOV E, M MOV L, M MOV A, M E
D DCR C DCR E DCR L DCR A MOV C, L MOV E, L MOV L, L MOV A, L D
C INR C INR E INR L INR A MOV C, H MOV E, H MOV L, H MOV A, H C
B DCX B DCX D DCX H DCX SP MOV C, E MOV E, E MOV L, E MOV A, E B
A LDAX B LDAX D LHLD A16 LDA A16 MOV C, D MOV E, D MOV L, D MOV A, D A
  DAD B DAD D DAD H DAD SP MOV C, C MOV E, C MOV L, C MOV A, C  
  - - - - MOV C, B MOV E, B MOV L, B MOV A, B  
  RLC RAL DAA STC MOV B, A MOV D, A MOV H, A MOV M, A  
  MVI B, D8 MVI D, D8 MVI H, D8 MVIM, D8 MOV B, M MOV D, M MOV H, M HLT  
  DCR B DCR D DCR H DCR M MOV B, L MOV D, L MOV H, L MOV M, L  
  INR B INR D INR H INR M MOV B, H MOV D, H MOV H, H MOV M, H  
  INX B INX D INX H INX SP MOV B, E MOV D, E MOV H, E MOV M, E  
  STAX B STAX D SHLD A16 STA A16 MOV B, D MOV D, D MOV H, D MOV M, D  
  LXI B,D16 LXI D,D16 LXI H, D16 LXI SP, D16 MOV B, C MOV D, C MOV H, C MOV M, C  
  NOP - - - MOV B, B MOV D, B MOV H, B MOV M, B  
                   

 

 

    A B C D E F  
F ADC A SBB A XRA A CMP A RST1 RST3 RST5 RST7 F
E ADC M SBB M XRA M CMP M ACI D8 SBI D8 XRI D8 CPI D8 E
D ADC L SBB L XRA L CMP L CALL A16 - - - D
C ADC H SBB H XRA H CMP H CZ A16 CC A16 CPE A16 CM A16 C
B ADC E SBB E XRA E CMP E - IN N XCHG EI B
A ADC D SBB D XRA D CMP D JZ A16 JC A16 JPE A16 JM A16 A
  ADC C SBB C XRA C CMP C RET - PCHL SPHL  
  ADC B SBB B XRA B CMP B RZ RC RPE RM  
  ADD A SUB A ANA A ORA A RST0 RST2 RST4 RST6  
  ADD M SUB M ANA M ORA M ADI D8 SUI D8 ANI D8 ORI D8  
  ADD L SUB L ANA L ORA L PUSH B PUSH D PUSH H PUSH PSW  
  ADD H SUB H ANA H ORA H CNZ A16 CNC A16 CPO A16 CP A16  
  ADD E SUB E ANA E ORA E JMP A16 OUT N XTHL DI  
  ADD D SUB D ANA D ORA D JNZ A16 JNC A16 JPO A16 JP A16  
  ADD C SUB C ANA C ORA C POP B POP D POP H POP PSW  
  ADD B SUB B ANA B ORA B RNZ RNC RPO RP  
      A B C D E F  

 



Поделиться:




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

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-03-31 Нарушение авторских прав и Нарушение персональных данных


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