Menu

Cara membuat Batasan perulangan pada Bahasa assembly



Hallo, kali ini saya akan memberikan tips bagaimana cara membuat perulangan terus menerus menjadi perulangan yang memiliki Batasan perulangan. Berikut penjelasannya:


Pengeritan Bahasa assembly.
Bahasa rakitan atau lebih umum dikenal sebagai Assembly adalah bahasa pemrograman tingkat rendah yang digunakan dalam pemrograman komputermikroprosesorpengendali mikro, dan perangkat lainnya yang dapat diprogram. Bahasa rakitan mengimplementasikan representasi atas kode mesin dalam bentuk simbol-simbol yang secara relatif lebih dapat dipahami oleh manusia. Berbeda halnya dengan bahasa-bahasa tingkat tinggi yang berlaku umum, bahasa rakitan biasanya mendukung secara spesifik untuk suatu ataupun beberapa jenis arsitektur komputer tertentu.

Contoh program perulangan led geser kiri kanan
                ORG       00H        
MULAI:  MOV       A,#03H
                MOV       P1,A
                LCALL    TUNDA
KIRI:       RL           A
                MOV       P1,A
                LCALL    TUNDA
                CJNE      A,#0C0H,KIRI
                LCALL    TUNDA
KANAN: RR           A
                MOV       P1,A
                LCALL    TUNDA
                CJNE      A,#03H,KANAN
                SJMP      KIRI       
TUNDA:  MOV       R2,#20H
TUN:       DJNZ      R0,TUN
                DJNZ      R1,TUN
                DJNZ      R2,TUN
                RET
                END
Diatas merupakan contoh Bahasa assembly led geser kekiri kekanan yang perulangannya terus menerus tanpa berhenti. Bagaimana membuat program diatas menjadi perulangan sebanyak jumlah yang ditentukan?. Tentu  saya kita akan menambah jumlah perulagan yang di inginkan ke dalam program tersebut. Selain itu kita harus mengganti kode “SJMP” menjadi perintah “STOP” ketika perulangan telah habis. Berikut program perulangan 5 kali dengan perintah yang sama seperti program diatas.

                   ORG       00H
                   MOV      R3,          #05H      
MULAI:     MOV      A,#03H
                   MOV      P1,A
                   LCALL   TUNDA
KIRI:          RL           A
                   MOV      P1,A
                   LCALL   TUNDA
                   CJNE      A,#0C0H,KIRI
                   LCALL   TUNDA
KANAN:    RR           A
                   MOV      P1,A
                   LCALL   TUNDA
                   CJNE      A,#03H,KANAN
                   DJNZ      R3,KIRI
                   LCALL   STOP     
TUNDA:    MOV      R2,#20H
TUN:          DJNZ      R0,TUN
                   DJNZ      R1,TUN
                   DJNZ      R2,TUN
                   RET
STOP:        MOV      P1,A
                   LCALL   TUNDA
                   LCALL   STOP     
                   END
Syntak yang menjadi tambahan penting ketika membuat perulangan dengan jumlah yang ditentukan adalah register penampung jumlah perulagan yaitu R3, dengan jumlah 05H. selain itu  syntak DJNZ R3, KIRI. Maksud dari syntak tersebut adalah ketika R3 bernilai 0 maka akan mengesekusi perintah selanjutnya yaitu STOP, namun jika R3 belum bernilai 0 maka akan mengulang ke sub KIRI lagi.
Berikut arti dari syntak yang digunakan dalam program diatas :
ORG
Inisialisasi alamat mulai program
MOV
Move from Memory
LCALL
Long Call
RET
Return From Subroutine
RL
Rotate Left
RR
Rotate Right
CJNE
Compare and Jump if Not Equal
DJNZ
Decrement and Jump if Not Zero
END
Penanda akhir program
Itu saja pembahasan tentang perulangan Bahasa assembly, saya mohon maaf jika ada salah penulisan. Semoga bermanfaat. TERIMA KASIH 😊