Sismik Kedia
Sismik Kedia
PROGRAM .include "m8535def.inc" .org 0x00 rjmp utama kasur: ldi r17, 0x15 out porta, r17 rjmp utama utama: ldi r16, low(ramend) out spl, r16 ldi r16, high(ramend) out sph, r16 ldi r16, 0x00 out ddrc, r16 ; set portc sebagai input out ddrd, r16 ; set portc sebagai input ldi r16, 0xff out ddra, r16 ; set porta sebagai output sbis portc, 1 rjmp gagal sbis portd, 2 rjmp gagal rjmp kasur gagal: ldi r18, 0x00 out porta, r18 rjmp utama
ScreenShot Program
proses Build, program berjalan lancar, tidak ada error
Kita lihat bahwa port a bernilai 0x00 karena portc1 dan portd2 tidak bernilai 1 (bernilai 0)
Program kembali ke poin utama kali ini portc1 dan portd2 akan diset 1
disini portc1 dan portd2 sudah di set 1. sehingga perintah sbis akan melompat 2 langkah kebawah dan melewatkan rjmp gagal, ekesekusi langsung melompat ke rjmp kasur.
Dimana perintah poin kasur adalah kasur: ldi r17, 0x15 out porta, r17 rjmp utama sehingga porta akan bernilai 0x15. Setelah itu program akan kembali ke poin utama kembali, dan mengulang perintah-perintah berikutnya. Hasil dari porta akan mengikuti input dari portc1 dan portd2. jika portc1 dan portd2 tidak bernilai 1 maka program akan rjmp ke poin gagal dan porta akan bernilai 0x00, Sebaliknya jika portc1 dan portd2 bernilai 1, maka program akan rjmp ke poin kasur dan porta akan bernilai 0x15.