.:: Jasa Membuat Aplikasi Website,Desktop,Android Order Now..!! | | Order Now..!! Jasa Membuat Project Arduino,Robotic,Print 3D ::.

Program Huruf Rontok dengan Assembly

0 komentar


بِسْــــــــــــــــمِ اﷲِالرَّحْمَنِ اارَّحِيم
bismillaahirrahmaanirrahiim

السَّلاَمُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ
Assalamu'alaikum warahmatullahi wabarakatuh

Assalamu'alaykum

Seperti biasa, pada kali ini kita akan membahas mengenai bahasa pemrograman Assembly, ya walaupun bahasa pemrograman ini sulit untuk dipamahi, tapi bukan berarti kita tidak bisa, walaupun sedikit, hahha.

Oke langsung saja, kita akan membuat program huruf rontok dengan Assembly, maksudnya gimana tuh huruf rontok ? Begini, ketika program tersebut dijalankan maka huruf yang berada dalam CMD atau DOSBox akan hilang atau rontok satu per satu.

Sebelum membuat program, beberapa hal yang harus disiapkan adalah :

Pertama Compiler dan linking Assembler nya, jika Anda belum pinya silahkan download di sini.

Selanjutnya adalah Command Prompt atau bisa juga digantikan dengan DOSBox.

Kemudian text editor untuk mengetikkan kode program.

Berikut kode program huruf rontoknya

delay macro
    push cx
    xor cx,cx
loop1    :
        loop loop1
        pop cx
endm

Geser    macro PosY
        push ax
        push bx
        push cx

        xor cx,cx
        mov al,26
        sub al,PosY
        mov cl,al

loop2    :
        mov al,byte ptr es:[bx]
        mov byte ptr es:[bx+160],al

hilang    :
        mov byte ptr es:[bx],' '

        delay

        add bx,160
        loop loop2


        pop cx
        pop bx
        pop ax
endm

.model small
.code
org 100h

Tdata    : JMP Proses
            PosY DB ?

Proses    :
        mov ax,0B800h
        mov es,ax

        mov bx,3998
        mov cx,25

ulangY    :
        mov PosY,cl
        push cx
        mov cx,80

ulangX     :
        cmp byte ptr es:[bx],33

        jb Tdk
        Geser PosY
Tdk        :
        sub bx,2
        loop ulangX
        pop cx
        loop ulangY

exit    :
        int 20h

end     Tdata

Ketikkan kode diatas pada text editor kemudian simpan dengan ekstensi *.ASM. Selanjutnya lakukan proses compile program di cmd atau DOSBox. Caranya ketikkan perintah tasm namaprogram selanjutnya lakukan proses linking dengan perintah tlink/t namaprogram. Jalankan program tersebut, maka hasilnya akan seperti gambar berikut :



Berikut penjelasan programnya :

delay macro
    push cx
    xor cx,cx
loop1    :
        loop loop1
        pop cx
endm


Macro ini digunakan untuk menunda program. Dengan menolkan CX, maka looping yang didapatkan menjadi FFFFh kali, karena pengurangan 0 dan 1 akan menghasilkan nilai -1 atau FFFFh.

Geser    macro PosY
        push ax
        push bx
        push cx


Pada macro inilah nantinya huruf-huruf pada layar akan digeser. Untuk itu simpanlah semua register yang digunakan pada macro ini karena pada program utama, register  juga akan digunakan.

xor cx,cx
        mov al,26
        sub al,PosY
        mov cl,al


Ini adalah bagian dari macro geser yang akan menghitung banyaknya pergeseran kebawah yang akan dilakukan, dengan melihat posisi dari huruf yan digeser pada variabel "PosY"

loop2    :
        mov al,byte ptr es:[bx]
        mov byte ptr es:[bx+160],al


hilang    :
        mov byte ptr es:[bx],' '

        delay

        add bx,160
        loop loop2


Bagian inilah yang akan menggeser tulisan pada layar. Register BX ditambah dengan 160 untuk mengakses baris dibawahnya.

pop cx
        pop bx
        pop ax
endm


Pada akhir macro kembalikanlah semua register yang telah disimpan pada awal macro. Ingat urutannya harus terbalik.

Pada program utama :

.model small
.code
org 100h

Tdata    : JMP Proses
            PosY DB ?


Pertama-tama siapkanlah sebuah variabel untuk menampung posisi dari baris yang sedang diakses .

Proses    :
        mov ax,0B800h
        mov es,ax

        mov bx,3998
        mov cx,25




Register ES, kita gunakan sebagai petunjuk segment layar, yaitu pada segment B800h. Register BX yang nantinya akan kita gunakan sebagai petunjuk offset dari ES diberi nilai 3998. Dengan demikian pasangan ES : BP akan menunjukpada karakter dipojok kanan bawah atau posisi 79,24.

ulangY    :
        mov PosY,cl
        push cx
        mov cx,80

ulangX     :
        cmp byte ptr es:[bx],33

        jb Tdk
        Geser PosY
Tdk        :
        sub bx,2
        loop ulangX
        pop cx
        loop ulangY

exit    :
        int 20h

end     Tdata


Kemudian lakukanlah proses dengan melihat apakah  ada karakter atau tidak. Hal ini dapat dilakukan dengan membandingkannya dengan kode ASCII 33, bila data pada buffer layar dibawah ASCII 33 artinya tidak ada karakter pada layar.

Jika ada karakter pada layar maka proses geser dilakukan, sebalinya jika tidak ada karakter proses akan menuju pada posisi selanjutnya dan melakukan hal yang sama.

Pada contoh program diatas, kita merontokkan karakter dari atas kebawah, nah bagaimana jika kita ingin merontokkan karakter dari bawah keatas, berikut contoh programnya

 delay macro
    push cx
    xor cx,cx
loop1    :
        loop loop1
        pop cx
endm

Geser    macro PosY
        push ax
        push bx
        push cx

        xor cx,cx
        mov al,48
        sub al,PosY
        mov cl,al

loop2    :
        mov al,byte ptr es:[bx]
        mov byte ptr es:[bx-160],al

hilang    :
        mov byte ptr es:[bx],' '

        delay

        sub bx,160
        loop loop2


        pop cx
        pop bx
        pop ax
endm

.model small
.code
org 100h

Tdata    : JMP Proses
            PosY DB ?

Proses    :
        mov ax,0B800h
        mov es,ax

        mov bx,3998
        mov cx,25

ulangY    :
        mov PosY,cl
        push cx
        mov cx,80

ulangX     :
        cmp byte ptr es:[bx],33

        jb Tdk
        Geser PosY
Tdk        :
        sub bx,2
        loop ulangX
        pop cx
        loop ulangY

exit    :
        int 20h

end     Tdata

Ketika program tersebut dijalankan, maka karakter akan rontok keatas.


Untuk merontokkan huruf ke kanan kita bisa mengganti nilai mov menbyte ptr es:[bx-160],al  menjadi mov byte ptr es:[bx+20],al dan menghapus bagian  sub bx,160.  lakukan proses kompilasi dan linking, maka ketika dijalankan hurufnya akan rontok atau melayang ke kanan.

Mungkin sampai disini dulu postingan ini, terimakasih.

Wassalamualaykum

Download Tutorial
Update Contact :
No Wa/Telepon (puat) : 085267792168
No Wa/Telepon (fajar) : 085369237896
Email : Fajarudinsidik@gmail.com
NB :: Bila Sobat tertarik Ingin membuat software, membeli software, membeli source code, membeli hardware elektronika untuk kepentingan Perusahaan maupun Tugas Akhir (TA/SKRIPSI), Insyaallah Saya siap membantu, untuk Respon Cepat dapat menghubungi kami, melalui :

No Wa/Telepon (puat) : 085267792168
No Wa/Telepon (fajar) : 085369237896
Email: Fajarudinsidik@gmail.com


atau Kirimkan Private messanger melalui email dengan klik tombol order dibawah ini :

ٱلْحَمْدُ لِلَّهِ رَبِّ ٱلْعَٰلَمِين
Alhamdulilah hirobil alamin

وَ السَّلاَمُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ
wassalamualaikum warahmatullahi wabarakatuh


Artikel Program Huruf Rontok dengan Assembly, Diterbitkan oleh scodeaplikasi pada Senin, 24 November 2014. Semoga artikel ini dapat menambah wawasan Anda. Website ini dipost dari beberapa sumber, bisa cek disini sumber, Sobat diperbolehkan mengcopy paste / menyebar luaskan artikel ini, karena segala yang dipost di public adalah milik public. Bila Sobat tertarik Ingin membuat software, membeli software, membeli source code ,Dengan Cara menghubungi saya Ke Email: Fajarudinsidik@gmail.com, atau No Hp/WA : (fajar) : 085369237896, (puat) : 085267792168.

Tawk.to