Download - Barak Pert.5
![Page 1: Barak Pert.5](https://reader035.vdocuments.pub/reader035/viewer/2022062300/5571f3a649795947648e5fab/html5/thumbnails/1.jpg)
PERTEMUAN KE 5OPERASI LOMPAT/JUMPOPERASI LOMPAT/JUMP
![Page 2: Barak Pert.5](https://reader035.vdocuments.pub/reader035/viewer/2022062300/5571f3a649795947648e5fab/html5/thumbnails/2.jpg)
1.Lompatan Tak Bersyarat
Adalah suatu bentuk lompatan yang akan langsung dijalankan tanpa ada perbandingan terlebih dahulu.
Bentuk lompatan ini dibagi menjadi :
• Lompatan dekat ( Near Jump ) dan
• Lompatan jauh ( Far Jumo )
![Page 3: Barak Pert.5](https://reader035.vdocuments.pub/reader035/viewer/2022062300/5571f3a649795947648e5fab/html5/thumbnails/3.jpg)
1. Lompatan Tak Bersyarat– Bentuk Umum : JMP [lokasi memory] Lompatan Dekat (Near Jump) membutuhkan 2
byte, dan jauh lompatan < FF hexa byte atau 256 byte
Lompatan Jauh (Far Jump) mem-butuhkan 3 byte, dan jauh lompatan tidak lebih dariFFFF hexa atau 1 segment.
Contoh :Jmp 0103 melakukan lompatan kearah memory
segment 0103Jmp 0200 melakukan lompatan ke arah memory
segment 0200
![Page 4: Barak Pert.5](https://reader035.vdocuments.pub/reader035/viewer/2022062300/5571f3a649795947648e5fab/html5/thumbnails/4.jpg)
2. Lompatan Bersyarat• Beberapa jenis lompatan menggunakan operasi
perbandingan ( Compare )• Bentuk umum : CMP [operand1],[operand2]
Operand1 berupa register, variabelOperand2 berupa register, variabel, isi lokasi
memory, lokasi memoryContoh : -CMP AX, 010→perintah ini digunakan untuk
membandingkan AX dengan 0102
-CMP BX, AX → perintah ini digunakan untuk memban-dingkan BX dengan AX.
![Page 5: Barak Pert.5](https://reader035.vdocuments.pub/reader035/viewer/2022062300/5571f3a649795947648e5fab/html5/thumbnails/5.jpg)
Berikut ini merupakan beberapa perintah
lompatan bersyarat :
1. JE ( Jump if Equal )
Lompatan akan menuju subprogram yang dituju jika ZF = 1, tetapi jika ZF = 0 maka tidak akan terjadi lompatan dan program akan melaksanakan instruksi selanjutnya.
Instruksi ini biasa digunakan dalam berbandingan dua angka tidak bertanda.
Contoh : CMP CX,BX
JE Hitung
![Page 6: Barak Pert.5](https://reader035.vdocuments.pub/reader035/viewer/2022062300/5571f3a649795947648e5fab/html5/thumbnails/6.jpg)
2.JNE ( Jump if Not Equal )Instruksi ini akan menyebabkan melompat melanjutkan ke subprogram yang dituju jika bit Zero Flag ( ZF ) = 0, tetapi jika hasilnya ZF = 1 maka program akan menjalankan instruksi selanjutnya.Instruksi ini biasa digunakan dalam berbandingan dua angka tidak bertanda.Contoh : CMP AX,BX
JNE Hitung
![Page 7: Barak Pert.5](https://reader035.vdocuments.pub/reader035/viewer/2022062300/5571f3a649795947648e5fab/html5/thumbnails/7.jpg)
3.JG ( Jump if Greater )
Instruksi ini akan menyebabkan meloncat melanjutkan ke subprogram yang dituju jika ZF = 0 dan SF = OF( overflow flag), tetapi jika ZF = 1 atau SF ≠ OF maka program akan melanjutkan ke instruksi selanjutnya. Instruksi ini biasa digunakan dalam berbandingan dua angka tidak bertanda.
Contoh : CMP AX, 0102
JG 0102
![Page 8: Barak Pert.5](https://reader035.vdocuments.pub/reader035/viewer/2022062300/5571f3a649795947648e5fab/html5/thumbnails/8.jpg)
4.JGE ( Jump if Greater or Equal )Instruk ini akan menyebabkan melompat melanjutkan ke subprogram yang dituju jika SF = OF , tetapi jika SF ≠ OF tidak akan terjadi lompatan dan program akan melanjutkan ke instruksi berikutnya. Instruksi ini biasa digunakan dalam berbandingan dua angka tidak bertanda.Contoh : CMP AL,25
JGE Bagi
![Page 9: Barak Pert.5](https://reader035.vdocuments.pub/reader035/viewer/2022062300/5571f3a649795947648e5fab/html5/thumbnails/9.jpg)
5.JNG ( Jump if Not Greater )
Instruksi ini akan menyebabkan meloncat melanjutkan ke subprogram yang dituju jika SF ≠ OF atau ZF = 1, tetapi jika SF = OF dan ZF = OF maka tidak akan terjadi lompatan dan program akan melanjutkan instruksi selanjutnya. Instruksi ini biasa digunakan dalam berbandingan dua angka tidak bertanda.
Contoh : CMP AX, 90
JL 0102
![Page 10: Barak Pert.5](https://reader035.vdocuments.pub/reader035/viewer/2022062300/5571f3a649795947648e5fab/html5/thumbnails/10.jpg)
6.JNGE ( Jump if Not Greader or Equal )Instruksi ini akan menyebabkan meloncat melanjutkan ke subprogram yang dituju jika SF ≠ OF, tetapi jika SF = OF maka tidak akan terjadi lompatan tetapi melanjutkan ke instruksi selanjutnya. Instruksi ini biasa digunakan dalam berbandingan dua angka tidak bertanda.Contoh : CMP AX, 1000
JNGE Cetak
![Page 11: Barak Pert.5](https://reader035.vdocuments.pub/reader035/viewer/2022062300/5571f3a649795947648e5fab/html5/thumbnails/11.jpg)
7. JA ( Jump if Above )
Instruksi ini akan menyebabkan meloncat melanjutkan ke subprogram yang dituju jika CF = 0 dan XF = 0, tetapi jika CF = 1 dan ZF = 1 maka tidak akan terjadi lompatan dan program akan melanjutkan ke instruksi selanjutnya. Instruksi ini biasa digunakan dalam berbandingan dua angka tidak bertanda.
Contoh : CMP AL,90H
JA Cetak
![Page 12: Barak Pert.5](https://reader035.vdocuments.pub/reader035/viewer/2022062300/5571f3a649795947648e5fab/html5/thumbnails/12.jpg)
8.JAE ( Jump if Above or Equal )
Instruksi ini akan menyebabkan meloncat melanjutkan ke subprogram yang dituju jika CF = 0, tetapi jika CF = 1 atau ZF = 1 maka tidak
![Page 13: Barak Pert.5](https://reader035.vdocuments.pub/reader035/viewer/2022062300/5571f3a649795947648e5fab/html5/thumbnails/13.jpg)
9.JNA ( Jump if Not Above )
Instruksi ini akan menyebabkan meloncat melanjutkan ke subprogram yang dituju jika CF = 1 atau ZF = 1, tetapi jika CF = 0 dan ZF = 0 maka tidak akan terjadi lompatan tetapi program akan melanjutkan ke instruksi selanjutnya. Instruksi ini biasa digunakan pada perbandingan dua angka tidak bertanda.
Contoh : CMP BL, 0B6H
JNA Cetak
![Page 14: Barak Pert.5](https://reader035.vdocuments.pub/reader035/viewer/2022062300/5571f3a649795947648e5fab/html5/thumbnails/14.jpg)
10.JNAE ( Jump if Not Above or Equal )
Instruksi ini akan menyebabkan meloncat melanjutkan ke subprogram yang dituju jika CF = 1, tetapi jika CF = 0 maka tidak akan terjadi lompatan dan program akan melanjutkan ke instruksi selanjutnya.
Contoh : CMP AX, BX
JNAE Cetak
![Page 15: Barak Pert.5](https://reader035.vdocuments.pub/reader035/viewer/2022062300/5571f3a649795947648e5fab/html5/thumbnails/15.jpg)
11. JS ( Jump on Sign )
Instruksi ini akan menyebabkan meloncat melanjutkan ke subprogram yang dituju jika bit SF = 1, tetapi jika SF = 0 maka tidak terjadi lompatan tetapi program akan melanjutkan ke instruksi selanjutnya. Instruksi ini biasa digunakan pada perbandingan dua angka tidak bertanda.
Contoh : DEC AX
JS Cetak
![Page 16: Barak Pert.5](https://reader035.vdocuments.pub/reader035/viewer/2022062300/5571f3a649795947648e5fab/html5/thumbnails/16.jpg)
12. JNS ( Jump if No Sign )
Instruksi ini akan menyebabkan meloncat melanjutkan ke subprogram yang dituju jika bit SF = 0, tetapi jika SF = 1 maka tidak terjadi lompatan dan program akan melanjutkan ke instruksi selanjutnya. Instruksi ini biasa digunakan pada perbandingan dua angka tidak bertanda dan biasa digunakan setelah instruksi ADD, SUB, INC dan lain- lain.
Contoh : SUB BX, 1000
JNS Cetak
![Page 17: Barak Pert.5](https://reader035.vdocuments.pub/reader035/viewer/2022062300/5571f3a649795947648e5fab/html5/thumbnails/17.jpg)
13. JNC ( Jump if No Carry )
Instruksi ini akan menyebabkan meloncat melanjutkan ke subprogram yang dituju jika CF = 0 , tetapi jika CF = 1 maka tidak akan terjadi lompatan dan program akan melanjutkan instruksi selanjutnya. Instruksi ini biasa digunakan pada perbandingan dua angka tidak bertanda.
Contoh : ADC BX, 48
JNC Cetak
![Page 18: Barak Pert.5](https://reader035.vdocuments.pub/reader035/viewer/2022062300/5571f3a649795947648e5fab/html5/thumbnails/18.jpg)
14.JCXZ ( Jump if CX is Zero )
Instruksi ini akan menyebabkan meloncat ke subprogram yang dituju jika register CX menjadi berisi 0, tetapi jika CX ≠ 0 maka program akan melanjutkan ke instruksi selanjutnya.
Contoh : JCXZ Cetak
![Page 19: Barak Pert.5](https://reader035.vdocuments.pub/reader035/viewer/2022062300/5571f3a649795947648e5fab/html5/thumbnails/19.jpg)
SOAL-SOAL
![Page 20: Barak Pert.5](https://reader035.vdocuments.pub/reader035/viewer/2022062300/5571f3a649795947648e5fab/html5/thumbnails/20.jpg)
1. Lompatan yang membutuhkan 2 byte untuk melakukan
lompatan termasuk kedalam jenis lompatan,adalah :
a. Near Jump c. Lompatan bersyarat
b. Far Jump d. Lompatan tak bersyarat
2. Perintah lompatan berlaku bila hasil perbandingan kedua
operand tidak sama, adalah :
a. JE c. JG
b. JNE d. JGE
![Page 21: Barak Pert.5](https://reader035.vdocuments.pub/reader035/viewer/2022062300/5571f3a649795947648e5fab/html5/thumbnails/21.jpg)
2. Perintah lompatan berlaku bila hasil perbandingan kedua
operand tidak sama, adalah :
a. JE c. JG
b. JNE d. JGE
3. Perintah lompatan berlaku bila pada saat perbandingan
kedua operand sama,adalah :
a. JG c. JE
b. JGE d. JNE
![Page 22: Barak Pert.5](https://reader035.vdocuments.pub/reader035/viewer/2022062300/5571f3a649795947648e5fab/html5/thumbnails/22.jpg)
3. Perintah lompatan berlaku bila pada saat perbandingan
kedua operand sama,adalah :
a. JG c. JE
b. JGE d. JNE
4. Perintah lompatan akan dilakukan jika zero flag pada
flag register berisi angka 0, adalah :
a. JE c. JAE
b. JA d. JNE
![Page 23: Barak Pert.5](https://reader035.vdocuments.pub/reader035/viewer/2022062300/5571f3a649795947648e5fab/html5/thumbnails/23.jpg)
4. Perintah lompatan akan dilakukan jika zero flag pada
flag register berisi angka 0, adalah :
a. JE c. JAE
b. JA d. JNE
5. Perintah lompatan akan dilakukan jika zero flag pada
flag register berisi angka 1, adalah :
a. JE c. JAE
b. JA d. JNE
![Page 24: Barak Pert.5](https://reader035.vdocuments.pub/reader035/viewer/2022062300/5571f3a649795947648e5fab/html5/thumbnails/24.jpg)
5. Perintah lompatan akan dilakukan jika zero flag pada
flag register berisi angka 1, adalah :
a. JE c. JAE
b. JA d. JNE
1. Lompatan yang membutuhkan 2 byte untuk melakukan
lompatan termasuk kedalam jenis lompatan,adalah :
a. Near Jump c. Lompatan bersyarat
b. Far Jump d. Lompatan tak bersyarat