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 |