Perintah Pencabangan Program (JBC – CJNE)

JBC (Jump if Bit Set and Clear Bit)

Bit JBC, perintah rel menguji yang terspesifikasikan secara bit. Jika bit di-set, maka Jump dilakukan ke alamat relatif dan yang terspesifikasi secara bit di dalam perintah dibersihkan. Segmen program berikut menguji bit yang kurang signifikan (LSB: Least Significant Byte), dan jika diketemukan bahwa ia telah di-set, program melompat ke READ lokasi. Perintah tersebut juga membersihkan LSB dari akumulator

JBC

JC (Jump if Carry is Set)

Perintah JC menguji bit Carry. Jika Carry di-set, maka Jump dilakukan ke lokasi yang teralamatkan. Sebagai contoh, perhatikan program di bawah:

JC

Akumulator di-load dengan FEH dan kemudian 02 ditambahkan ke dalamnya. Disaat tambahan mmenghasilkan Carry dan flag dari Carry di-set, program melompat ke lokasi yang dilabeli NEXT.

JNC (Jump if Carry Not Set)

Perintah JNC menguji bit Carry, dan jika tidak di-set, maka sebuah lompatan akan dilakukan ke alamat relatif yang telah ditentukan. Sebagai contoh, perintah berikut akan menyebabkan loop tanpa henti, karena Carry dibersihkan oleh perintah CLR C dan JNC akan selalu menyebabkan lompatan ke lokasi yang sama yang berlabel ‘LOOP’

JNC

JZ (Jump if Accumulator is Zero)

Perintah ini menguji konten-konten akumulator. Jika bukan nol, maka lompatan dilakukan ke alamat relatif yang ditentukan dalam perintah.

Sebagai contoh, perintah berikut akan menyebabkan lompatan ke lokasi yang diberi label ‘AHEAD’, ketika akumulator dibersihkan.

JZ

CJNE (Comppare and Jump if not Equal)

Perintah membandingkan dan melompat jika tidak sama (CJNE) membandingkan magnitudo dari dua operandi di awal, jika keduanya tidak sama, maka lompatan dilakukan ke alamat relatif yang ditentukan dalam perintah. Sintaksnya adalah CJNE <dest-byte>, <SRC-byte>, rel.  Untuk melihat penggunaannya perhatikan perintah berikut:

CJNE

Perintah pertama me-load R1 dengan 04H. Perintah DEC lalu mengurangkan R1 sebanyak 1. Konten R1 lalu dibandingkan oleh CJNE dengan data segera 02H. Disaat konten R1 tidak sama dengn 02H, lompatan dilakukan ke NO, dimana perintah DEC dituliskan., yang mengurangkan R1 sebanyak 1. Sekarang R1 mengandung 02, yang sama dengan data segera yang  telah ditentukan oleh perintah. Maka dari itu, lompatan tidak dilakukan dan program keluar dari loop.

Kegunaan lain dari perintah CJNE mungkin dalam mengaambil keputusan berdasarkan magnitudo dari bit sumber dan tujuan. Sebagai contoh, perhatikan segmen program berikut. Tergantung dari konten R2, sebauh lompatan dilakukan. Perintah pertama membandingkan R dengan 04H, jika keduanya tidak sama, maka lompatan ke NEXT1 dilakukan. Namun, jika keduanya sama, maka perintah SJMP berikut dieksekusi dan kendali program beralih ke CJNE. Operasi serupa terjadi saat pengujian 02H.

CJNE2

Mungkin Anda juga menyukai

Tinggalkan Balasan

Situs ini menggunakan Akismet untuk mengurangi spam. Pelajari bagaimana data komentar Anda diproses.