Perulangan Dalam Assembly

Apakah anda masih ingat dengan program pertama kita, yaitu program untuk mencetak huruf A ?.Bagaimana jika kita ingin mencetak lebih dari satu karakter ?. Apakah kita harus mengetikkan perintah mov ah,? dan int 21h sebanyak karakter yang ingin dicetak ?. Tentunya hal tersebut akan sangat mubadzir sekali. Akan lebih efektif lagi jika anda menggunakan LOOP atau perulangan. Berikut ini contoh programnya:

; program mencetak huruf A

; sebanyak 26 kali

; dengan menggunakan loop

.model small

.code

org 100h

mulai:

mov ah,02 ; servis cetak karakter

mov dl,65 ; dl=A

mov cx,26 ; banyaknya perulangan

ulang:

int 21h ; cetak karakter

loop ulang ; ulangi hingga 26 kali

int 20h ; selesai

end mulai

Dari contoh program diatas, anda akan melihat sebuah register baru yaitu CX. Register ini sifatnya unik, yaitu bisa digunakan sebagai pencacah atau counter dalam sebuah perulangan. Secara otomatis nilai CX akan berkurang 1 atau CX=CX-1, jika terdapat perintah LOOP. Sedangkan ketika ada perintah LOOP program akan memeriksa nilai CX, jika CX=0, maka perulangan akan dihentikan. Selain itu jika nilai CX >0 maka nilai CX akan dikurangi 1.

INCREASE dan DECREASE

Didalam suatu perulangan biasanya berhubungan dengan penaikan nilai. Sebagai contoh jika kita ingin mencetak huruf A sampai dengan Z, maka kita perlu membuat suatu perulangan dan menaikan nilai A hingga Z. untuk menaikan nilai, dalam bahasa rakitan digunakan perintah INC. Kebalikannya, fungsi decrease adalah untuk menurunkan suatu nilai. Didalam bahasa rakitan digunakan perintah DEC.

Berikut ini contoh programnya:

; program mencetak

; huruf A s/d Z

; dengan loop dan inc

.model small

.code

org 100h

mulai:

mov ah,02 ; servis cetak karakter

mov dl,65 ; dl=A

mov cx,26 ; banyaknya perulangan

ulang:

int 21h ; cetak karakter

inc dl ; naikkan nilai dl

loop ulang ; ulangi hingga 26 kali

int 20h ; selesai

end mulai

Advertisements

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 )

Google+ photo

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

Connecting to %s