«

»

Dec 30

Memrogram Mikrokontroler: C atau Assembly?

Memrogram mikrokontroler dengan menggunakan bahasa assembly, bisa jadi merupakan mimpi buruk bagi sebagian orang, namun menjadi mainan yang menyenangkan bagi sebagian lainnya.

Harus diakui, bahasa assembly memang tidak manusiawi, karena tidak mudah dibaca dan di-interpretasikan. Perlu bekal yang memadai sebelum kita dapat membaca dan memrogramnya dengan baik. Namun demikian, logika program dapat dituangkan langkah demi langkah secara rinci, sesuai dengan yang ada di benak pemrogram. Begitupun dalam perhitungan timing, bisa dilakukan dengan cukup cermat, karena masing-masing perintah yang digunakan, siklus eksekusinya jelas.

Di pihak lain, compiler C akan menerjemahkan program yang kita buat ke dalam bahasa mesin sesuai dengan konsep yang dikembangkan oleh pengembang. Beberapa compiler melakukannya dengan cukup efisien sehingga kode bahasa mesin yang dihasilkan cukup pendek. Namun demikian, hasil akhirnya tetap tidak se-optimal bahasa assembly.

Berikut adalah contoh program dalam bahasa C untuk mikrokontroler AVR, diprogram melalui AVRStudio4 dengan compiler AVRGCC:

int main(void) {
 int a = 10, b = 4, x,  y,  z;
 x = a + b;
 y = a - b;
 z = x*2 + y/2;
 return 0;
}

Berikut adalah contoh dalam bahasa assembly untuk program yang sama, diprogram melalui AVRStudio4:

.include "m16def.inc"
.def a =r16
.def b =r17
.def x =r18
.def y =r19
.def z =r20
main:
 ldi a, 10
 ldi b, 4
 mov x, a
 add x, b
 mov y, a
 sub y, b
 lsl x
 asr y
 mov z, x
 add z, y
loop:
 inc r21
 rjmp loop

Bagaimana program assembly untuk program dalam bahasa C berikut?

int main(void) {
  int a = 10;
  int b = 11;
  int c;
  c = a + b;
  return c;
}

Selamat mencoba!

NEXT SYSTEM
Robotics Learning & Experience Center
ITC Kosambi Ruko F2
Jl. Baranang Siang 6-8
Bandung 40112
Tel. (022) 4222062

Email: info@nextsys.web.id