Pemrograman Bahasa Assembly Untuk IC AT89S51

download Pemrograman Bahasa Assembly Untuk IC AT89S51

of 3

Transcript of Pemrograman Bahasa Assembly Untuk IC AT89S51

  • 7/31/2019 Pemrograman Bahasa Assembly Untuk IC AT89S51

    1/3

    Pemrograman Bahasa Assembly untuk IC AT89S51

    Untuk berinteraksi dengan perangkat keras yang meliputi memberi perintah maupun

    pengaturan perangkat dapat digunakan suatu bahasa pemrograman dasar tingkat

    rendah yaitu bahasa pemrograman Assembly. Assembly merupakan bahasa dasar

    mesin, meskipun saat ini telah banyak bahasa pemrograman tingkat tinggi yang

    lebih sederhana dan mudah dipahami namun semua bahasa tersebut sesungguhnya

    juga merupakan pengembangan dari bahasa assembly. Agar kita dapat menguasai

    lebih mendalam akan interaksi antara user (manusia) dengan mesin maka pada

    kuliah microprosesor dan microkontroler di gunakan bahasa assembly sebagai

    bahasa pemrograman sistem microkontroler. Struktur dasar dari bahasa assembly

    terdiri atas :

    Label - Mnemonic (OPcode) - Operand 1 - Operand 2 - Komentar

    misalnya, mulai : mov P0,#13 ; pengisian data 13

    Keterangan :

    1. Label, Kode yang ditentukan sendiri oleh pemrogram. jika lebih dari 2 kata,harus digabung (tidak boleh dipisah) diakhiri dengan tanda ( : )

    contoh, mulai : panjangbola :

    2. Mnemonic (opcode), kode perintah yang akan melakukan aksi tiap operand

    contoh, mov sjmp

    3. Operand 1 (operand tujuan/target), data yang akan diproses oleh Mnemonic

    contoh, P0 A

    4. Operand 2 (operand asal), data yang akan dipindahkan ke operand tujuan

    contoh, #13 #110001010B

    5. Komentar, dapat ditulis dengan menggunakan tanda ( ; ) dan tidak akan

    dieksekusi oleh hardware.

    Contoh, ; --------------------------- INI ADALAH PROGRAM LED --------------

    Instruksi - instruksi Mnemonic yang sering digunakan pada sistem microkontroler

    diantaranya adalah sebagai berikut :

  • 7/31/2019 Pemrograman Bahasa Assembly Untuk IC AT89S51

    2/3

    1. Intruksi pemindahan data ( MOV )

    instruksi (MOV) digunakan untuk memindahkan data dari satu tempat ke

    tempat lain, atau juga digunakan untuk memindahkan data dari satu pin

    microcontroler ke pin yang lain. Contoh : mov P3, #11001100B

    keterangan :

    instruksi diatas digunakan untuk memindahkan data biner 11001100 ke port 3

    pada sistem microcontroler.

    2. Instruksi lompatan

    ada beberapa macam instruksi lompatan diantaranya :

    SJMP (Short Jump), melompat ke alamat / label untuk alamat kode yang

    pendek.

    AJMP (Absolut Jump), sama dengan SJMP hanya jarak lompatannya lebih

    jauh.

    ACALL, Instruksi memanggil subrutin ke sebuah label/sub program.

    RET (Return), digunakan untuk menghentikan subrutin dan melanjutkan ke

    instruksi berikutnya.

    3. Instruksi operasi bit

    SETB (Set Bit), digunakan untuk mengisi alamat bit dengan nilai 1

    contoh, SETB P0.0 ; bit P0.0 diisi dengan nilai 1

    CLR (Clear), Mengosongkan / mengubah alamat bit dengan nilai 0

    contoh, CLR P0.0 ; bit P0.0 dikosongkan dengan nilai 0

    4. Instruksi lompatan bersyarat

    CJNE (Compare and Jump if Not Equal)

    Membandingkan nilai sebuah register dengan suatu data/register lain dan

    akan melompat ke alamat/label yang dituju jika belum sama nilainya.

    Contoh, CJNE R0,#100,mulai JB (Jump if Bit Set)

    Melakukan lompatan menurut isi (nilai) sebuah bit. Yang di cari adalah nilai

    "1" pada bit yang diamati nilainya. Jika bit bernilai "0" akan melanjutkan

    instruksi berikutnya, namun jika bit bernilai "1" akan melompat ke alamat yang

    ditentukan.

    Contoh, mulai : JB P0.0, eksekusi SJMP mulai JNB (Jump if Not Bit Set)

    Kebalikan dari JB, yang dicari adalah nilai NOL (0) pada bit yang dialamati.

    DJNZ (Decrement and Jump if Not Zero)Mengurangi nilai sebuah register /alamat tertentu dengan nilai 1 dan jika

  • 7/31/2019 Pemrograman Bahasa Assembly Untuk IC AT89S51

    3/3

    hasilnya sudah NOL (0) maka instruksi selanjutnya akan dijalankan

    contoh DJNZ R4, mulai

    5. Instruksi aritmatika

    INC (Increment)

    menambahkan "1" angka dari register/data yang dituju dan hasilnya disimpan

    pada register tersebut.

    Contoh INC A ADD

    Menambahkan isi Akumulator dengan sebuah nilai dan hasilnya disimpan

    kembali akumulator tersebut.

    DEC (Decrement)

    Mengurangi "1" angka dari register yang dituju dan hasilnya disimpan pada

    register tersebut.

    6. Instruksi geser

    RR (Rotate Right), Menggeser ke kanan perbit isi akumulator

    RL (Rotate Left), Menggeser ke kiri perbit isi akumulator