Rozkazy, modyfikowane przez nie flagi oraz liczba
cykli procesora potrzebnych do wykonania rozkazu
Rozkaz |
Opis |
Flagi |
Cykle |
MOV A, #liczba |
A « liczba |
Z, zależnie czy liczba jest zerem |
2 |
MOV A, [adres] |
A « [adres] |
Z, zależnie czy przesyłana dana jest zerem |
3 |
MOV [adres],A |
[adres] « A |
Z, j/w |
3 |
MOV [ptr+offset],A |
[ptr+offset] « A (ptr = SP, BP) |
Z, j/w |
3 (bez offsetu) lub 4 |
MOV A, [ptr+offset] |
A « [ptr+offset] (ptr = SP, BP) |
Z, j/w |
3 (bez offsetu) lub 4 |
MOV dest,src |
dest « src (dest, src = A, B, SP, BP) |
Z, j/w |
1 |
PUSH A | stos « A |
Z, zależnie czy liczba odkładana na stos jest zerem |
2 |
PUSH B | stos « B |
Z, j/w |
2 |
PUSH BP | stos « BP |
Z, j/w |
2 |
POP A | A « stos |
Z, zależnie czy liczba pobierana jest zerem |
2 |
POP B | B « stos |
Z, j/w |
2 |
POP BP | BP « stos |
Z, j/w |
2 |
ADD A,B |
A « A + B |
Z, zależnie czy wynik operacji jest zerem |
1 |
SUB A,B |
A « A - B |
Z, j/w oraz C, zależnie czy wynik odejmowania jest ujemny |
1 |
MUL A,B |
A « A * B |
Z, j/w |
2 |
DIV A,B |
A « A / B |
Z, j/w |
3 |
NEG A |
A « - A |
Z, j/w |
1 |
OR A,B |
A « A | B |
Z, j/w |
1 |
AND A,B |
A « A & B |
Z, j/w |
1 |
XOR A,B |
A « A ^ B |
Z, j/w |
1 |
NOT A |
A « ~A |
Z, j/w |
1 |
CMP A,B |
- |
Z,C (tak jak przy SUB) |
1 |
CALL adres |
stos « PC+1 , PC « adres |
- |
4 |
RET |
PC « stos |
- |
4 |
JMP adres |
PC « adres |
- |
2 |
JE adres |
PC « adres jeżeli Z=1 |
- |
2 (skok wykonany) lub 1 |
JNE adres |
PC « adres jeżeli Z=0 |
- |
2 (skok wykonany) lub 1 |
JG adres |
PC « adres jeżeli Z=0 i C=0 |
- |
2 (skok wykonany) lub 1 |
JL adres |
PC « adres jeżeli C=1 |
- |
2 (skok wykonany) lub 1 |
JGE adres |
PC « adres jeżeli C=0 |
- |
2 (skok wykonany) lub 1 |
JLE adres |
PC « adres jeżeli C=1 lub Z=1 |
- |
2 (skok wykonany) lub 1 |