OPCODE: 00000
has operand is set:
| Instruction | Value for X |
|---|---|
| PUSH8 | 1 |
| PUSH16 | 2 |
| PUSH32 | 4 |
| PUSH64 | 8 |
PUSH16 0xDEAD
⇩
PUSH16 (1 00000 01) | 0xDE | 0xAD |
⇩
STACK HEAD (SP = 2) |
|---|
| 0xAD |
| 0xDE |
| STACK BASE |
OPCODE: 00001
SP by X0, reset it to 0| Instruction | Value for X |
|---|---|
| POP8 | 1 |
| POP16 | 2 |
| POP32 | 4 |
| POP64 | 8 |
PUSH16 0xDEAD POP8
⇩
PUSH16 (1 00000 01) | 0xDE | 0xAD |
POP8 (0 00001 00) | ||
⇩
STACK HEAD (SP = 1) |
|---|
| 0xDE |
| STACK BASE |
OPCODE: 00010
| Instruction | Value for X |
|---|---|
| SWAP8 | 1 |
| SWAP16 | 2 |
| SWAP32 | 4 |
| SWAP64 | 8 |
PUSH16 0xDEAD PUSH16 0xBEEF SWAP16
⇩
PUSH16 (1 00000 01) | 0xDE | 0xAD |
PUSH16 (1 00000 01) | 0xBE | 0xEF |
SWAP16 (0 00010 01) | ||
⇩
STACK HEAD (SP = 4) |
|---|
| 0xAD |
| 0xDE |
| 0xEF |
| 0xBE |
| STACK BASE |
OPCODE: 00011
SP register by X| Instruction | Value for X |
|---|---|
| TUCK8 | 1 |
| TUCK16 | 2 |
| TUCK32 | 4 |
| TUCK64 | 8 |
PUSH16 0xDEAD TUCK8
⇩
PUSH16 (1 00000 01) | 0xDE | 0xAD |
TUCK8 (0 00011 00) | ||
⇩
STACK HEAD (SP = 3) |
|---|
| 0xAD |
| 0xDE |
| 0xAD |
| STACK BASE |