| SMKN 2 YOGYAKARTA | Kompetensi | Kode : 06/PDTM/KL10/SR |
|-----------------------------------|---------------------------|-----------------------------------|
| Prog. Keahlian : Tek. Audio Video | OPERASI INC, DEC DAN JUMP | Waktu : menit |
| Prog. Diklat : PDTM | | Nama Siswa : |
| Kelas : 10 AV | | Tanggal : |

Operasi INC, DEC dan JUMP
Kriteria Unjuk Kerja:
- Melakukan penambahan dengan satu (INC : Increment) pada register.
- Melakukan pengurangan dengan satu (DEC : Decrement) pada register.
- Melakukan pengulangan proses terhitung.
- Melakukan pengulangan proses terus menerus.
1. Operasi Increment (INC)
Operasi increment ialah operasi yang digunakan untuk menaikan satu tingkat atau menambah dengan satu nilai suatu bilangan pada register. Bila suatu register dijalankan operasi INC, maka nilai bilangan pada register tersebut akan naik satu tingkat atau bertambah satu.
Format : INC r
Dimana INC : perintah tambah dengan satu
r : nama register
Contoh:
- Pada Accumulator tersimpan data 00 H dan di register B tersimpan data FF H.
- Jalankan operasi INC pada accumulator dan register B.
Jawab:
Struktur program,
| Masukkan data 00 H pada accumulator |
|------------------------------------------|
| Masukkan data FF H pada register B |
| Tambah dengan satu data pada accumulator |
| Tambah dengan satu data pada register B |
| Akhir program |
Program,
| Alamat Memori | Bahasa | | Keterangan |
|---------------|----------|-------|------------------------------------------|
| | Assembly | Mesin | |
| 1800 | LD A,00 | 3E 00 | Mengisi Accumulator dengan data 00 H |
| 1802 | LD B,FF | 06 FF | Mengisi register B dengan data FF H |
| 1804 | INC A | 3C | Tambah dengan satu data pada accumulator |
| 1805 | INC B | 04 | Tambah dengan satu data pada register B |
| 1807 | RST 0038 | FF | Akhir program |
Hasil:
- Accumulator = 01 H
- Register B = 00 H.
2. Operasi Decrement (DEC)
Operasi decrement ialah operasi yang digunakan untuk menurunkan satu tingkat atau mengurangi dengan satu nilai suatu bilangan pada register. Bila suatu register dijalankan operasi DEC, maka nilai bilangan pada register tersebut akan turun satu tingkat atau berkurang satu.
Format : DEC r
Dimana INC : perintah kurangi dengan satu
r : nama register
Contoh:
- Pada Accumulator tersimpan data 00 H dan di register B tersimpan data FF H.
- Jalankan operasi DEC pada accumulator dan register B.
Jawab:
Struktur program,
| Masukkan data 00 H pada accumulator |
|-------------------------------------------|
| Masukkan data FF H pada register B |
| Kurangi dengan satu data pada accumulator |
| Kurangi dengan satu data pada register B |
| Akhir program |
Program,
| Alamat Memori | Bahasa | | Keterangan |
|---------------|----------|-------|-------------------------------------------|
| | Assembly | Mesin | |
| 1800 | LD A,00 | 3E 00 | Mengisi Accumulator dengan data 00 H |
| 1802 | LD B,FF | 06 FF | Mengisi register B dengan data FF H |
| 1804 | DEC A | 3D | Kurangi dengan satu data pada accumulator |
| 1805 | DEC B | 05 | Kurangi dengan satu data pada register B |
| 1807 | RST 0038 | FF | Akhir program |
Hasil:
- Accumulator = FF H
- Register B = FE H
3. Operasi JUMP
Operasi JUMP ialah operasi yang digunakan loncat ke suatu alamat memori jika suatu persyaratannya telah tercapai. Adapun persyaratan-persyaratan untuk loncat, yaitu:
- a) UNC: UnConditional (tanpa syarat). Dimana setiap ada operasi JUMP UNC, maka mikroprosessor Z-80 akan melaksanakan loncatan ke alamatyang ditunjuk.
- b) NZ: Not Zero (syarat bernilai tidak nol). Operasi loncat akan dijalankan, apbila persyaratannya masih bernilai tidak nol
- c) Z: Zero (syarat bernilai nol). Operasi loncat akan dijalankan jika persyaratan bernialai nol (0).
- d) NC: Not Carry (Carry = 0). Operasi loncat akan dijalankan jika carry bernilai nol (tidak ada Carry).
- e) C: Carry ( Carry = 1). Operasi loncat akan dijalankan jika carry bernilai satu.
Contoh: Pada register A tersimpan data 0F H dan register H tersimpan data F0 H
Tugas:
- Jalankan operasi DEC (kurang 1) pada register A sebanyak 15 kali
- Jalankan operasi INC (tambah 1) pada register H sebanyak 3 kali.
Jawab:
Struktur program (Cara 1),
| Isi register A dengan data 0F H | |
|---------------------------------|---------------------------------|
| Isi register H dengan data F0 H | |
| Isi register D dengan data 0F H | |
| | D=0 |
| | Kurangi dengan 1 isi register A |
| | Kurang dengan 1 isi register D |
| Isi register D dengan data 03 | |
| | D=0 |
| | Tambah dengan 1 isi register H |
| | Kurangi dengan 1 isi register D |
| Akhir program | |
Program (Cara 1),
| Alamat Memori | Bahasa | | Keterangan |
|---------------|------------|----------|----------------------------------------|
| | Assembly | Mesin | |
| 1800 | LD A,0F | 3E 0F | Mengisi Accumulator dengan data 0F H |
| 1802 | LD H,F0 | 26 F0 | Mengisi register H dengan data F0 H |
| 1804 | LD D,0F | 16 F0 | Isi register D dengan data F0 H |
| 1806 | NOP | 00 | Tidak ada operasi |
| 1807 | DEC A | 3D | Kurangi dengan 1 data pada accumulator |
| 1808 | DEC D | 15 | Kurangi dengan 1 data pada register D |
| 1809 | JP NZ 1806 | C2 06 18 | Loncat bersyarat ke alamat 1806 |
| 180C | LD D,03 | 16 03 | Isi register D dengan data 03 H |
| 180E | NOP | 00 | Tidak ada operasi |
| 180F | INC H | 24 | Tambah dengan 1 data pada register H |
| 1810 | DEC D | 15 | Kurangi dengan 1 data pada register D |
| 1811 | JP NZ 180E | C2 0E 18 | Loncat bersyarat ke alamat 180E |
| 1814 | RST 0038 | FF | Akhir program |
Jalankan program, Accumulator = ............ Redister H = ............
Struktur program (Cara 2),
| Isi register A dengan data 0F H | | |
|---------------------------------|---------------------------------|--------------------------------|
| Isi register H dengan data F0 H | | |
| Isi register D dengan data 03 H | | |
| | D=0 | |
| | Tambah dengan 1 isi register H | |
| | Isi register E dengan data 05 H | |
| | | E=0 |
| | | Kurang dengan 1 isi register A |
| | | Kurang dengan 1 isi register E |
| | Kurang dengan 1 isi register D | |
| Akhir program | | |
Program (Cara 2),
| Alamat Memori | Bahasa | | Keterangan |
|---------------|------------|----------|---------------------------------------|
| | Assembly | Mesin | |
| 1800 | LD A,0F | 3E 0F | Mengisi Accumulator dengan data 0F H |
| 1802 | LD H,F0 | 26 F0 | Mengisi register H dengan data F0 H |
| 1804 | LD D,03 | 16 03 | Mengisi register D dengan data 03 H |
| 1806 | NOP | 00 | Tidak ada operasi |
| 1807 | INC H | 24 | Tambah dengan 1 data pada register H |
| 1808 | LD E,05 | 1E 05 | Mengisi register E dengan data 05 H |
| 180A | NOP | 00 | Tidak ada operasi |
| 180B | DEC A | 3D | Mengisi register D dengan data 03 H |
| 180C | DEC E | 1D | Tidak ada operasi |
| 180D | JP NZ 18 | C2 0A 18 | Loncat bersyarat ke alamat 1809 |
| 1810 | DEC D | 15 | Kurangi dengan 1 data pada register D |
| 1811 | JP NZ 1806 | C2 06 18 | Loncat bersyarat ke alamat 180E |
| 1804 | RST 0038 | FF | Akhir program |
Jalankan program, Accumulator = ............ Redister H = ............
Tugas
1. Diketahui isi register B = 00 H, register C = 02 H dan register D = 25 H
- Tambahkan isi register B dengan isi register C sebanyak 15 kali.
- Tambahkan dengan 1 isi register D sebanyak 15 kali.
2. Isi Accumulator dengan data 05 H dan pada alamat 1B00 berisi data 05 H.
- Tambahkan dengan 1 isi Accu sebanyak 3 kali.
- Tambahkan dengan 1 isi alamat 1B00 sebanyak 24 kali.
3. Diketahui isi Accumulatar = FF H, isi register B = 00 H
- Kurangi dengan 1 isi Accu sebanyak 15 kali.
- Tambah dengan 1 isi register B sebanyak 30 kali.