Mencoba Digital I/O Menggunakan Assembly di AVR Studio …(2)

Penggunaan ROL (Rotate Left Through Carry)
Sesuai dengan kepanjangannya berfungsi mengeser nilai ke sebelah kiri dan menyimpannya ke dalam carry (di status register) kemudian meletakkan di sebelah kanan. Siklus perintah ROL dapat dilihat seperti gambar di bawah.

siklus tersebut berjalan dalam 2 langkah, berikut code dalam AVR

CLC digunakan untuk meng-set Carry bernilai 0
Cara kerja yang sama juga terjadi jika kita menggunakan perintah ROR (Rotate Right Through Carry)

Code di atas dapat dijelaskan sebagai berikut :

  1. Mengisi / inisialisasi register (r16) dengan nilai 0xFF (lihat pada datasheet)
  2. Menulis ddrb dengan nilai pada r16
  3. Melakukan perintah X-OR pada nilai r16 dengan dirinya sendiri, sehingga nilai r16 = 0×00 (menghasilkan 0 jika nilai sama dan 1 jika nilai berbeda)
  4. Meng-set Carry dengan nilai 1
  5. Menulis portb dengan r16 (sekarang bernilai 0)
  6. Mengeser ke kanan nilai dari Carry (bernilai 1) ke dalam register (r16)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s