Kamis, 06 November 2014

Membuat perulangan bersarang dengan bahasa Assembly

Bahasa assembly merupakan bahasa yang digunakan untuk mesin. Ini merupakan bahasa tingkat rendah sehingga butuh pemahaman khusus untuk mengerti bahasa ini. Disini saya akan memberikan tutorial cara melakukan perulangan bersarang ascending dan descending.

ini source kode yang saya gunakan dan disana sudah ada keterangannya

.MODEL SMALL ; jenis memori U/ data dan code ukuran kecil < 64kb
.CODE        ; Untuk menyimpan program yang nantinya akan dijalankan atau memberitahu kita memulai code segment dari sini
ORG 100h    ; ORG adalah ORIGIN , 100h artinya memesan 256 byte di ram yang nantinya akan digunakan untuk menjalankan program


data : JMP Proses     ; Data itu Label jadi bisa diganti kalo JMP(register) artinya lompat. Jadi dimulai dari Label lalu JMP lompat ke Proses(label)
nama DB 'KISRON'     ; nama itu simbol. 
                    ; DB itu karakternya dimasukkan satu satu dari 100h bit sesuai nama. Jadi kalo karakter namanya 20 menjadi bit 120.
Proses:                ; label ini proses yang lompat tadi
    MOV BX,6        ; jumlah karakter yang ditampilan di database
    MOV CX,6           ; Jumlah looping yang dilakukan ke bawah CX DEC
L2:
    PUSH CX         ;Melatakkan nilai cx dalam tempat penampungan data / stuck
    MOV CX,BX       ;Meletakkan nilai bx pada cx
    PUSH BX         ; meletakkan nilai bx kedalam stuck
    MOV BX,0        ; logika untuk mengenolkan bx
L1:
    MOV DL,nama[BX] ; DL menampung nilai dari nama karakter, Ambil karakter yang ke BX
    MOV AH,02h      ; Servis persiapan untuk cetak karakter
    INT 21h         ; untuk Cetak Karakter
    INC BX          ; inc(increment) bx ditambahkan
LOOP L1
    POP BX            ; untuk mengambil nilai BX
    MOV DX,0AH        ; 0AH=ENTER
    MOV AH,02H        ; servis perisapan untuk mencetak
    INT 21H            ; menampilkan karakter
    DEC BX             ;Decrement(mengurangi karakter )
    POP CX          ;Mengambil nilai cx untuk ditampilkan
LOOP L2     
    INT 20h            ; interrupt untuk kembali ke dos
END data              ; untuk mengakhiri program

untuk mengganti perulangannya supaya ascending atau descending tinggal mengganti mov bx dan DEC bx.

Sekian yang dapat saya sampaikan, mohon maaf apabila ada kekurangan
Terima kasih

Tidak ada komentar:

Posting Komentar