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 komputer, mikroprosesor, pengendali 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 😊 …