2.3.5. Instruksi Percabangan

19
1 2.3.5. Instruksi Percabangan Instruksi percabangan mengubah urutan normal pelaksanaan suatu program. Dengan instruksi ini program yang sedang dilaksanakan akan mencabang ke suatu alamat tertentu. - Instruksi percabangan tanpa syarat - Instruksi percabangan bersyarat

description

2.3.5. Instruksi Percabangan. Instruksi percabangan mengubah urutan normal pelaksanaan suatu program. Dengan instruksi ini program yang sedang dilaksanakan akan mencabang ke suatu alamat tertentu. Instruksi percabangan tanpa syarat - Instruksi percabangan bersyarat. - PowerPoint PPT Presentation

Transcript of 2.3.5. Instruksi Percabangan

Page 1: 2.3.5. Instruksi Percabangan

1

2.3.5. Instruksi Percabangan

Instruksi percabangan mengubah urutan normal pelaksanaan suatu program. Dengan instruksi ini program yang sedang dilaksanakan akan mencabang ke suatu alamat tertentu.

- Instruksi percabangan tanpa

syarat

- Instruksi percabangan bersyarat

Page 2: 2.3.5. Instruksi Percabangan

2

a. Instruksi percabangan tanpa syarat

- CALL alamatInstruksi ini melakukan lompatan ke suatu subroutine yang ditunjuk oleh alamat/label. Ada beberapa instruksi CALL1. ACALL alamat-11b

Lompatan yang dapat dilakukan berada di area 2 Kbyte

2. LCALL alamat-16bLompatan yang dapat dilakukan berada

di area 64 Kbyte

Page 3: 2.3.5. Instruksi Percabangan

3

- JMP alamat

Instruksi ini melakukan lompatan ke suatu tempat yang ditunjuk oleh alamat/label. Ada beberapa instruksi JMP

1. SJMP alamat-8b

Lompatan yang dapat dilakukan berada

di area 256 alamat

2. AJMP alamat-11b

Lompatan yang dapat dilakukan berada

di area 2 Kbyte

Page 4: 2.3.5. Instruksi Percabangan

4

3. LJMP alamat-16b

Lompatan yang dapat dilakukan berada

di area 64 Kbyte

Page 5: 2.3.5. Instruksi Percabangan

5

b. Instruksi percabangan bersyarat

CJNE

Instruksi ini akan membandingkan isi register, atau isi memory dengan suatu data. Bila sama, instruksi selanjutnya yang dituju. Bila tidak sama, instruksi yang ditunjuk oleh label yang akan dilaksanakan.

Page 6: 2.3.5. Instruksi Percabangan

6

Contoh instruksi:

CJNE R0,#02H,Tak_sama

berarti jika R0 tidak sama dengan 02H maka instruksi akan menuju ke label Tak_Sama

Page 7: 2.3.5. Instruksi Percabangan

7

DJNZ

Instruksi ini akan mengurangi isi register, atau isi memory dengan satu. Bila sudah “0”, instruksi selanjutnya yang akan dilaksanakan. Bila belum “0”, instruksi dilanjutkan ke label.

Page 8: 2.3.5. Instruksi Percabangan

8

Contoh instruksi:

DJNZ R1,Ulang

berarti jika R1 tidak sama dengan “0” setelah dikurangi “1” , pelaksanaan instruksi harus melompat ke label Ulang

Page 9: 2.3.5. Instruksi Percabangan

9

JB

Instruksi ini akan menguji suatu alamat bit. Bila isinya “1”, instruksi akan menuju lael. Bila isinya “0”, instruksi selanjutnya yang akan dilaksanakan.

Page 10: 2.3.5. Instruksi Percabangan

10

Contoh instruksi:

JB P1.0,Ulang

berarti jika P1.0 berisi “1” , pelaksanaan instruksi melompat ke label Ulang.

Page 11: 2.3.5. Instruksi Percabangan

11

JBC

Instruksi ini akan menguji suatu alamat bit. Bila isinya “1” (set), bit tersebut akan di clear dan eksekusi menuju label. Bila alamat bit berisi “0”, instruksi selanjutnya yang akan dilaksanakan.

Page 12: 2.3.5. Instruksi Percabangan

12

Contoh instruksi:

JBC C,LANJUT

bila Carry flag berisi 1, carry flag akan di-clear dan eksekusi menuju label LANJUT. Bila carry flag berisi 0, instruksi selanjutnya yang akan dijalankan

Page 13: 2.3.5. Instruksi Percabangan

13

JC

Instruksi ini akan menguji Carry Flag. Bila isinya “1” (set), eksekusi menuju label. Bila Carry Flag berisi “0”, instruksi selanjutnya yang akan dilaksanakan.

Page 14: 2.3.5. Instruksi Percabangan

14

Contoh instruksi:

JC LANJUT

bila Carry flag berisi 1, carry flag akan di-clear dan eksekusi menuju label LANJUT. Bila carry flag berisi 0, instruksi selanjutnya yang akan dijalankan

Page 15: 2.3.5. Instruksi Percabangan

15

JNB

Instruksi ini akan menguji suatu alamat bit. Bila isinya “0”, instruksi akan menuju label. Bila isinya “1”, instruksi selanjutnya yang akan dilaksanakan.

Page 16: 2.3.5. Instruksi Percabangan

16

Contoh instruksi:

JNB P2.0,Ulang

berarti jika P2.0 berisi “0” , pelaksanaan instruksi melompat ke label Ulang.

Page 17: 2.3.5. Instruksi Percabangan

17

JNC

Instruksi ini menguji isi carry flag. Jika berisi 0, eksekusi akan menuju ke label. Jika berisi 1, instruksi selanjutnya yang akan dilaksanakan.

Page 18: 2.3.5. Instruksi Percabangan

18

JNZ

Instruksi ini akan menguji akumulator. Jika isinya tidak sama dengan “0”, eksekusi akan menuju ke label. Jika sama dengan “0” instruksi selanjutnya yang akan dilaksanakan.

Page 19: 2.3.5. Instruksi Percabangan

19

JZ

Instruksi ini akan menguji akumulator. Jika berisi sama dengan “0”, eksekusi akan menuju ke label. Jika tidak sama dengan “0” instruksi selanjutnya yang akan dilaksanakan.