PUSH DIRECT
| Siklus | Jumlah Byte | Instruksi | | | | | | | |
|--------|--------------|-------------|----|----|-----|-----|----|---|---|
| 2 | 2 | Push direct | | | | | | | |
| Flag | | C | AC | F0 | RS1 | RS0 | OV | | P |
| | | | | | | | | | |
Melakukan penyimpanan data dari suatu register atau memori ke dalam stack. Lokasi data dalam stack tersebut ditunjuk oleh stack pointer. Pada saat instruksi ini dijalankan, nilai dari stack pointer akan bertambah satu dan register atau memori yang di PUSH akan masuk ke dalam alamat yang ditunjuk oleh stack pointer tersebut.
Contoh:
Push A
Isi dari SP sebelumnya adalah 09H, maka SP akan bertambah 1 menjadi 0AH dan nilai akumulator A akan tersimpan di alamat 0AH.
POP DIRECT
| Siklus | Jumlah Byte | Instruksi | | | | | | | |
|--------|-------------|------------|----|----|-----|-----|----|---|---|
| 2 | 2 | Pop direct | | | | | | | |
| Flag | | C | AC | F0 | RS1 | RS0 | OV | | P |
| | | | | | | | | | |
Melakukan pengambilan data dari dalam stack ke suatu register atau memori. Lokasi data dalam stack tersebut ditunjuk oleh stack pointer. Pada saat instruksi ini dijalankan, data di alamat yang ditunjuk oleh stack pointer akan dipindah ke register atau memori dilanjutkan dengan pengurangan nilai stack pointer dengan 1.
Contoh:
Pop B
Isi dari SP sebelumnya adalah 08H, maka data yang tersimpan di alamat 08H akan dipindah ke Register B dilanjutkan dengan pengurangan nilai SP menjadi 07H.
XCH A,RN
| Siklus | Jumlah Byte | Instruksi | | | | | | | |
|--------|-------------|-----------|----|----|-----|-----|----|---|---|
| 1 | 1 | XCH A,RN | | | | | | | |
| Flag | | C | AC | F0 | RS1 | RS0 | OV | | P |
| | | | | | | | | | |
XCH A,DIRECT
| Siklus | Jumlah Byte | Instruksi | | | | | | | |
|--------|--------------|------------|----|----|-----|-----|----|---|---|
| 1 | 2 | Xch direct | | | | | | | |
| Flag | | C | AC | F0 | RS1 | RS0 | OV | | P |
| | | | | | | | | | |
Menukar data yang terseimpan di akumulator A dengan alamat langsung.
Contoh:
XCH A,70H
Data di akumulator A ditukar dengan data di alamat 70H dari RAM Internal.
XCH A,@Ri
| Siklus | Jumlah Byte | Instruksi | | | | | | | |
|--------|-------------|-----------|----|----|-----|-----|----|---|---|
| 1 | 1 | Xch A,@Ri | | | | | | | |
| Flag | | C | AC | F0 | RS1 | RS0 | OV | | P |
| | | | | | | | | | |
Menukar data yang tersimpan di akumulator A dengan alamat yang ditunjuk oleh Register Index (R0 atau R1).
Contoh:
XCH A,@R0
Data di akumulator A ditukar dengan data di alamat yang ditunjuk oleh R0.
XCHD A,@RI
| Siklus | Jumlah Byte | Instruksi | | | | | | | |
|--------|--------------|------------|----|----|-----|-----|----|---|---|
| 1 | 1 | XCHD A,@Ri | | | | | | | |
| Flag | | C | AC | F0 | RS1 | RS0 | OV | | P |
| | | | | | | | | | |
Menukar data nibble rendah dari akumulator A dengan nibble rendah dari data yang ditunjuk oleh Register Indeks (R0 atau R1). Nibble tinggi tidak berubah.
Contoh:
XCHD A,@R0
Bila sebelumnya akumulator A berisi 15H, R0 berisi 20H dan isi dari RAM internal alamat 20H adalah 41H, maka setelah instruksi ini dijalankan isi dari akumulator A berubah menjadi 11H dan isi RAM Internal di alamat 20H menjadi 45H.