A Lista instrukcji procesora Intel 8080
Poniżej jest zamieszczona lista instrukcji procesora Intel 8080.
Objaśnienie:
•
SUB – nazwa lub adres podprogramu,
•
EXP – wyrażenie matematyczne,
•
RP – para rejestrów (B, D, H, PSW, SP),
•
DATA – wartość liczbowa,
•
REG – rejestr lub komórka pamięci,
•
ADR – dowolny adres pamięci,
•
DST, SRC – docelowy/źródłowy rejestr lub komórka pamięci,
•
S – bit znaku,
•
C – bit przeniesienia,
•
A – bit pomocniczego przeniesienia,
•
Z – bit zera,
•
P – bit parzystości.
Skrót
Argumenty
Opis
Edytowane
flagi
CALL
SUB
Wywoływany jest podprogram SUB.
–
CC
SUB
Jeżeli bit przeniesienia jest równy
„1”, wywoływany jest podprogram SUB.
–
CNC
SUB
Jeżeli bit przeniesienia jest równy
„0”, wywoływany jest podprogram SUB.
–
CZ
SUB
Jeżeli bit zera jest równy „1”,
wywoływany jest podprogram SUB.
–
CNZ
SUB
Jeżeli bit zera jest równy „0”,
wywoływany jest podprogram SUB.
–
CP
SUB
Jeżeli bit znaku jest równy „1”,
wywoływany jest podprogram SUB.
–
CM
SUB
Jeżeli bit znaku jest równy „0”,
wywoływany jest podprogram SUB.
–
CPE
SUB
Jeżeli bit parzystości jest równy „1”,
wywoływany jest podprogram SUB.
–
CPO
SUB
Jeżeli bit parzystości jest równy „0”,
wywoływany jest podprogram SUB.
–
RET
–
Bezwarunkowy powrót z
podprogramu.
–
RC
–
Jeżeli bit przeniesienia jest równy
„1”, wykonywany jest powrót z
podprogramu.
–
RNC
–
Jeżeli bit przeniesienia jest równy
„0”, wykonywany jest powrót z
podprogramu.
–
RZ
–
Jeżeli bit zera jest równy „1”,
wykonywany jest powrót z podprogramu.
–
RNZ
–
Jeżeli bit zera jest równy „0”,
wykonywany jest powrót z podprogramu.
–
RP
–
Jeżeli bit znaku jest równy „1”,
wykonywany jest powrót z podprogramu.
–
RM
–
Jeżeli bit znaku jest równy „0”,
wykonywany jest powrót z podprogramu.
–
RPE
–
Jeżeli bit parzystości jest równy „1”,
wykonywany jest powrót z podprogramu.
–
RPO
–
Jeżeli bit parzystości jest równy „0”,
wykonywany jest powrót z podprogramu.
–
RST
EXP
Licznik rozkazów zostaje zapisany
na stosie, wartość licznika rozkazów jest
równa 00EXP000B, EXP w zakresie 000B-
111B.
–
IN
EXP
8-bitowa wartość odczytana z
urządzenia na porcie EXP (0-255)
zastępuje zawartość akumulatora.
–
OUT
EXP
Zawartość akumulatora zostaje
wysłana na port o numerze EXP (0-255).
–
LXI
RP, DATA
Najstarsze 8 bitów wartości DATA
zostaje zapisane w pierwszym rejestrze
RP, najmłodsze 8 bitów wartości DATA
zostaje zapisane w drugim rejestrze RP.
–
PUSH
RP
Wartość pary rejestrów RP jest
zapisywana na stosie.
–
POP
RP
Dwie ostatnie wartości stosu zostają
zapisane w parze rejestrów RP.
–
STA
ADR
Zawartość akumulatora zostaje
zapisana w komórce pamięci o adresie
ADR
–
LDA
ADR
Wartość komórki pod adresem ADR
zostaje zapisana w akumulatorze
–
XCHG
–
Wartość pary rejestrów H (rejestr H i
L) zostaje zamieniona z parą rejestrów D
(rejestr D i E).
–
XTHL
–
Wartość rejestru L zostaje
zamieniona z zawartością komórki którą
wskazuje wskaźnik stosu, wartość rejestru
H zostaje zamieniona z zawartością
komórki o jeden większą niż wskazywana
przez wskaźnik stosu.
–
SPHL
–
16-bitowa wartość pary rejestrów H
zostaje zapisana jako wskaźnik stosu.
–
PCHL
–
Wartość rejestru H zastępuje
najstarsze 8 bitów licznika rozkazów,
wartość rejestru L zastępuje najmłodsze 8
bitów licznika rozkazów.
–
DAD
RP
Wartość pary rejestrów RP zostaje
dodana do pary rejestrów H (rejestry H i L)
C
STAX
RP
Zawartość akumulatora zostaje
zapisana w komórce pamięci wskazywanej
przez parę rejestrów RP.
LDAX
RP
Zawartość komórki pamięci
wskazywanej przez parę rejestrów RP jest
zapisana do akumulatora
INX
RP
Wartość pary rejestrów RP zostaje
zwiększona o 1.
–
MOV
DST, SRC
Przenosi wartość rejestru SRC do
rejestru DST.
DST i SRC nie mogą wskazywać na
ten sam adres komórki pamięci.
HLT
–
Wstrzymuje działanie programu, aż
do uzyskania przerwania.
–
MVI
REG,
DATA
Wartość rejestru REG przyjmuję
wartość DATA
–
INR
REG
Zwiększa wartość rejestru/komórki
pamięci o 1
Z, S, P
DCR
REG
Zmniejsza wartość rejestru/komórki
pamięci o 1
Z, S, P
ADD
REG
Wartość rejestru REG jest
dodawana do akumulatora
Z, S, P, C,
A
ADC
REG
Wartość rejestry REG i stan flagi
przeniesienia jest dodawany do
akumulatora
Z, S, P, C,
A
SUB
REG
Wartość rejestry REG jest
odejmowana od akumulatora
Z, S, P, C,
A
SBB
REG
Wartość rejestru REG i stan flagi
przeniesienia jest odejmowany od
akumulatora
Z, S, P, C,
A
ANA
REG
Wartość rejestru REG i wartość
akumulatora jest poddawana operacji
logicznego „i”.Wynik jest zapisywana do
akumulatora
Z, S, P, C
XRA
REG
Wartość rejestru REG i wartość
Z, S, P, C
akumulatora jest poddawana operacji
logicznego „suma modulo 2”.Wynik jest
zapisywana do akumulatora.
ORA
REG
Wartość rejestru REG i wartość
akumulatora jest poddawana operacji
logicznego „lub”.Wynik jest zapisywana do
akumulatora
Z, S, P, C
CMP
REG
Wartość rejestru REG i wartość
akumulatora jest porównywana. W
zależności od rezultatu odpowiednie flagi
są ustawiane lub resetowane.
Z, S, P, C
ADI
DATA
Wartość DATA zostaje dodana do
akumulatora.
Z, S, P, C,
A
ACI
DATA
Wartość DATA i wartość bitu
przeniesienia zostają dodane do
akumulatora.
Z, S, P, C,
A
SUI
DATA
Wartość DATA zostaje odjęta od
akumulatora.
Z, S, P, C,
A
SBI
DATA
Wartość DATA i wartość bitu
przeniesienia zostają odjęte od
akumulatora.
Z, S, P, C,
A
ANI
DATA
Wartość DATA i wartość
akumulatora jest poddawana operacji
logicznego „i”.Wynik jest zapisywana do
akumulatora
Z, S, P, C
XRI
DATA
Wartość DATA i wartość
akumulatora jest poddawana operacji
logicznego „suma modulo 2”.Wynik jest
zapisywana do akumulatora
Z, S, P, C
ORI
DATA
Wartość DATA i wartość
akumulatora jest poddawana operacji
logicznego „lub”.Wynik jest zapisywana do
akumulatora
Z, S, P, C
CPI
DATA
Wartość DATA i wartość
akumulatora jest porównywana. W
zależności od rezultatu odpowiednie flagi
są ustawiane lub resetowane.
Z, S, P, C
RLC
–
Wartość najstarszego bitu
akumulatora jest zapisywana jako wartość
bitu przeniesienia, bity akumulatora
zostają przesunięte o 1 w lewo,
przenosząc najstarszy bit na najmłodszą
pozycję.
C
RRC
–
Wartość najmłodszego bitu
akumulatora jest zapisywana jako wartość
bitu przeniesienia, bity akumulatora
zostają przesunięte o 1 w prawo,
przenosząc najmłodszy bit na najstarszą
pozycję.
C
RAL
–
Wartość najstarszego bitu
akumulatora jest zapisywana jako wartość
bitu przeniesienia, bity akumulatora
zostają przesunięte o 1 w lewo.
Najmłodszy bit jest równy poprzedniej
wartości bitu przeniesienia.
C
RAR
–
Wartość najmłodszego bitu
akumulatora jest zapisywana jako wartość
bitu przeniesienia, bity akumulatora
zostają przesunięte o 1 w prawo.
Najstarszy bit jest równy poprzedniej
wartości bitu przeniesienia.
C
JMP
ADR
Wartość licznika rozkazów jest
równa ADR.
–
JC
ADR
Jeżeli bit przeniesienia jest równy
„1”, wartość licznika rozkazów jest równa
ADR.
–
JNC
ADR
Jeżeli bit przeniesienia jest równy
„0”, wartość licznika rozkazów jest równa
ADR.
–
JZ
ADR
Jeżeli bit zera jest równy „1”,
wartość licznika rozkazów jest równa ADR.
–
JNZ
ADR
Jeżeli bit zera jest równy „0”,
wartość licznika rozkazów jest równa ADR.
–
JP
ADR
Jeżeli bit znaku jest równy „1”,
wartość licznika rozkazów jest równa ADR.
–
JM
ADR
Jeżeli bit znaku jest równy „0”,
wartość licznika rozkazów jest równa ADR.
–
JPE
ADR
Jeżeli bit parzystości jest równy „1”,
wartość licznika rozkazów jest równa ADR.
–
JPO
ADR
Jeżeli bit parzystości jest równy „0”,
wartość licznika rozkazów jest równa ADR.
–
DCX
RP
Wartość pary rejestrów RP zostaje
zmniejszona o 1.
–
CMA
Odwraca zawartość akumulatora.
STC
–
Ustawia flagę carry na 1.
C
CMC
–
Odwraca wartość flagi carry.
C
DAA
–
8-bitowa wartość akumulatora w
postaci szesnastkowej zostaje zamieniona
na dwie 4-bitowe liczby dziesiętne.
Z, S, P, C,
A
SHLD
ADR
Zawartość rejestru L zostaje
zapisana w komórce pamięci o adresie
ADR. Zawartość rejestru H zostaje
zapisana w komórce pamięci o adresie
ADR+1.
–
LHLD
ADR
Wartość komórki pamięci pod
adresem ADR zostaje zapisana w
rejestrze L, w rejestrze H zostaje zapisana
wartość komórki pamięci pod adresem
ADR+1.
–
EI
–
Zezwala procesorowi na
przetwarzanie przerwań.
–
DI
–
Zabrania procesorowi na
przetwarzanie przerwań.
–
NOP
–
Brak operacji
–