Instruksi JMP


Instruksi Jump – JMP(04) selalu berpasangan dengan instruksi Jump End – JME(05). JMP digunakan untuk melewati bagian program tertentu dalam program, yakni bagian program yang terletak di antara instruksi JMP(04) dan JME(05). Kita sebut saja bagian program tersebut sebagai jump section.

Jika kondisi eksekusi JMP(04) ON, maka program akan berjalan ‘lurus’ seperti jika tidak ada instruksi JMP(04). Dengan kata lain, instruksi-instruksi dalam jump section akan dieksekusi. Tapi jika kondisi eksekusi JMP(04) OFF, maka eksekusi program akan melompat menuju instruksi tepat di bawah instruksi JME(05), tanpa mengubah nilai status apapun yang ada di dalam jump section.

Terdapat dua tipe Instruksi JMP(04) dan JME(05), yakni instruksi dengan nomor 01-99, dan instruksi dengan nomor 00. Instruksi dengan nomor 01-99 hanya dapat digunakan satu kali dalam program. Pada kondisi eksekusi OFF, instruksi JMP(04) dengan nomor 01 (JMP(04)@01) akan melompatkan eksekusi program ke JME(05) dengan nomor 01 (JME(05)@01), seolah-olah instruksi-instruksi yang ada di antara keduanya tidak ada.

Intsruksi JMP(04)@00 dapat digunakan berulang-ulang dalam program. Bahkan bisa juga instruksi ini digunakan secara berurutan dengan hanya satu instruksi JME(04) saja. Dalam eksekusinya, program akan mencari pasangan JMP(04)@00 terdekat pada instruksi-instruksi selanjutnya meskipun tanpa mengubah nilai status apapun. Akan tetapi hal tersebut menyebabkan proses eksekusi program menjadi sedikit lebih lama dibandingkan ketika menggunakan instruksi JMP(04) dan JME(05) dengan nomor 01-99.

Instruksi JMP(04) dan JME(05) dengan nomor 00 dapat dianggap sebagai instruksi interlock IL(02) dan ILC(03) dengan catatan bahwa instruksi JMP(04) dan JME(05) tidak mengubah nilai status apapun dalam jump section-nya.

Contoh Program

jmpjme

Pada saat Kondisi1 OFF, eksekusi program akan langsung melompat ke instruksi tepat di bawah JME(05) yakni Net5. Perubahan nilai Input 000.01 hanya akan mengubah kondisi Output 010.01 saja, sedangkan kondisi Output 010.00 tetap.

Jika Kondisi1 ON, maka program akan mengeksekusi Net2 hingga Net5. Timer0 akan bekerja, dan perubahan nilai pada Input 000.01 akan mengubah kondisi Output 010.00 dan Output 010.01.

Untuk membuktikan bahwa instruksi JMP(04) tidak mengubah nilai status apapun dalam jump section, lakukan praktek sbb:
1. Aktifkan Kondisi1 (Input 000.00 ON)
2. Aktifkan Input 000.01 untuk menyalakan Output 010.00 dan Output 010.01.
3. Matikan Kondisi1 ketika Input 000.01 masih ON.
4. Matikan Input 000.01

Hasil yang akan didapat adalah kondisi Output 010.00 tetap ON, meskipun nilai Input 000.01 berubah-ubah. Perhatikan juga bahwa Output Timer0 dan Output 010.02 juga tetap. Hal ini membuktikan bahwa instruksi JMP(04) dan JME(05) tidak mengubah nilai status apapun di dalam jump section-nya. Demikian pula halnya dengan nilai Timer0. Ketika Kondisi1 berubah dari ON ke OFF sementara nilai Timer0 belum mencapai nol, maka nilai Timer0 tersebut akan dilanjutkan ketika kondisi eksekusi instruksi JMP(04) atau nilai Kondisi1 kembali ON.

Selamat belajar!

2 comments

  1. ibnubudir · April 15, 2010

    mm..siip..pak, saya ikut ambil juga materi ini, makasiihh…sekarang sudah saya pake….aplikasi ini…suwun pak

  2. chandramde · April 16, 2010

    ibnubudir:
    Ok, sama-sama.😀

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s