background image

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.

 

– 

background image

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.

 

–  

background image

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 

 

background image

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

 

background image

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

 

background image

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.

 

– 

background image

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ń.

 

–  

background image

DI

 

–  

Zabrania procesorowi na 

przetwarzanie przerwań.

 

–  

NOP

 

–  

Brak operacji

 

–