Mengontrol Relay dari Komputer

                 Pada kesempatan kali ini, kita akan membahas bagaimana cara mengontrol sebuah relay melalui komputer, atau laptop. Alat yang dibutuhkan adalah sebuah sistem minimum dan usb downloader .

Alat dan Bahan untuk usb downloader :

1. USB type B
2. Kapasitor 4.7µF/50v
3. LED 3 buah
4.  Resistor 2.2KΩ
5. Resistor 68Ω 2buah
6. Resistor 1KΩ 3buah
7.  Resistor 10KΩ
8.  Kapasitor keramik 22pF 2buah
9.  Kapasitor keramik 100nF     
10. Soket IC 28 pin
11. IC ATMEGA 8

Skematik Downloader






Kemudian Layout PCB Downloader



Kemudian Alat dan Bahan Minimum Sistem Atmega8525/16/32

1. Switch Button
2. Kristal 12Mhz
3. Kapasistor 100nF, 22pF
4. Resistor 1KΩ, 100
5. Dioda 1N4007
6. IC 7805
7. LED
8. Pin header male 

Skematik Minimum Sistem  Atmega8525/16/32



Layout PCB  Minimum Sistem  Atmega8525/16/32




Kemudian selanjutnya buatlah sebuah rangkaian yang digunakan sebagai driver/pengendali relay

Alat dan bahan pengendali relay

1. Resistor 1Ω 2 buah
2. Transistor D313
3. Kapasitor 100nF
4. Pin Header
5. Relay 5V
6. Dioda 1N4007

Skematik Pengendali Relay



 
 Layout Pengendali Relay

 

 Untuk menghidupkan relay, saya menggunakan program dengan bahasa C, berikut kodenya

#include <avr/io.h>
#include <util/delay.h>

int main (void)
{
 DDRB = 0xFF;             // Buat semua Port D menjadi output, 0xFF= 1111 1111

 while(1)                //perulangan
 {
    PORTB = 0xFF;
 }

 return 0;
}
 


Kompile yang digunakan adalah AVR-GCC, bisa menggunakan sistem operasi linux  maupun  windows, kemudian sebagai IDE nya Saya menggunakan CodeBlocks



Untuk melakukan pembakaran file menjadi .hex saya menggunakan avrdude dengan perintah

sudo avrdude -F -V -c usbasp -p m8535 -P usb -U flash:w:latihan.hex


Setelah itu relay akan hidup sesuai dengan program yang diberikan 

misalnya 

PORTB = 0xFF maka akan menghidupkan relay, sedangkan untuk mematikannya ubah kodenya menjadi

PORB = 0x00

berikut adalah rangkaian pengendali relay nya


 



Membuat Menu Sorot Pada Assembly



Bismillahirrahmanirrahim

Assalamu'alaykum

Pada kesempatan yang berbahagia ini kembali kita akan membahas mengenai bahasa pemrograman Assembly. Kita akan membuat program menu sorot, apa itu menu sorot ? menu sorot adalah menu yang di sorot, kwkkw. Secara teorinya kita membuat beberapa pilihan kemudian kita arahkan sorotan ke menu tersebut, ketika kita tekan enter, maka akan memilih program yang kita sorot tadi. Dalam program ini kita menggabungkan beberapa program lain, yaitu :

Menu :

1. Mencetak karakter satu warna
2. Mencetak karakter warna-warni
3. Program huruf rontok
4. Keluar

Seperti biasa siapkan terlebih dahulu aplikasi assemblernya, silahkan download di sini.

Kemudian siapkan juga Command Prompt atau bisa juga menggunakan  DOSBox. Selanjutnya siapkan text editor untuk mengetikkan kode program.

Pada program ini sangat mengandalkan macro,contohnya untuk memberishkan layar, membuat menu, dan menyorot menu, jadi pada program utama kita tinggal memanggil macro tersebut. 

contoh program :

cls macro
    mov ax,0600h
    xor cx,cx
    mov dx,184fh
    mov bh,7
    int 10h
endm

gotoxy macro x,y
       mov ah,02
       xor bx,bx
       mov dh,y
       mov dl,x
       int 10h
endm

simpanl macro
        local ulang
        mov ax,0b800h
        mov es,ax
        mov cx,4000
        xor bx,bx

ulang    :
        mov al,es:[bx]
        mov layar[bx],al
        inc bx
        loop ulang
endm

balikl macro
        local ulang
        mov cx,4000
        xor bx,bx

ulang    :
        mov al,layar[bx]
        mov es:[bx],al
        inc bx
        loop ulang
endm

sorot     macro x,y
        local ulang

        mov bl,y
        mov al,160
        mul bl
        mov bx,ax

        mov al,x
        mov ah,2
        mul ah
        add bx,ax
        inc bx

        mov cx,20

ulang    :
        mov byte ptr es:[bx],6fh

        add bx,2
        loop ulang
endm

readkey    macro
        mov ah,00
        int 16h
endm

menul    macro string
        mov ah,09
        lea dx,string
        int 21h
endm


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
        sub bx,160
       
        loop loop2


        pop cx
        pop bx
        pop ax
endm



.model small
.code
org 100h

tdata :
        jmp proses
        layar db 4000 dup (?)
        menu db 9,9,'+==================================+',13,10
             db 9,9,'|      >> >> Menu Sorot << <<      |',13,10
             db 9,9,'+==================================+',13,10
             db 9,9,'|                                  |',13,10
             db 9,9,'|  1. Cetak Karakter               |',13,10
             db 9,9,'|  2. Karakter Berwarna            |',13,10
             db 9,9,'|  3. Program Rontok               |',13,10
             db 9,9,'|  4. Keluar                       |',13,10
             db 9,9,'|                                  |',13,10
             db 9,9,'+==================================+$'

        posx db 22
        posy db 12
    panah_atas equ 72
    panah_bawah equ 80
    tenter      equ 0dh

    proses    :
            cls
            gotoxy 0 8
            menul menu
            simpanl

    ulang    :
            balikl

            sorot posx,posy

    masukan :
            readkey
            cmp ah,panah_bawah
            je bawah

            cmp ah,panah_atas
            je ceky

            cmp al,tenter

            jne masukan
            jmp banding
   

    ceky    :
            cmp posy,12
            je maxy
            dec posy
            jmp ulang

   
    maxy    :
            mov posy,15
            jmp ulang

    bawah     :
            cmp posy,15
            je no1y
            inc posy
            jmp ulang

    no1y    :
            mov posy,12
            jmp ulang

banding    :
            cmp posy,12
            je karakter

            cmp posy,13
            je warna

            cmp posy,14
            je rontok

            cmp posy,15
            je keluar


    keluar    :
            jmp selesai

karakter :
            cls
            gotoxy 22,12

            mov ah,2h
            mov dl,'A'
            mov cx,26
    k1        :
            int 21h
            inc dl
            loop k1
            readkey
            jmp proses

    warna  :
            cls
            gotoxy 22,12
           
            mov ah,9h
            mov bx,29h
            mov al,'Z'
            mov cx,26

    k2     :
            int 10h
            dec al
            inc bl
            loop k2
            readkey
            jmp proses

    rontok : jmp prontok

    prontok : jmp kalimat
                kal db 'Melayang-layang  $'
                kal2 db 'Tekan Enter Untuk Kembali ke Menu $'

            kalimat :
            cls
            gotoxy 22,12

            mov ah,09
            lea dx,kal
            int 21h

            mov ax,0B800h
            mov es,ax

            mov bx,3998
            mov cx,25

        ulangY    :
        mov PosY,12
        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

        gotoxy 22,12
        mov ah,09h
        lea dx,kal2
        int 21h

        readkey
        jmp proses

    selesai :
            int 20h

end     tdata       

Ketikkan program diatas dalam text editor, selanjutnya simpan dengan ekstensi *.ASM. Kemudian ketikkan perintah tasm namaprogram dilanjutkan dengan tlink/t namaprogram


Jalankan program menur sorot tersebut.



Pada program diatas terdapat beberapa macro penting, yaitu

cls         : Macro untuk membersihkan layar.
readkey : Macro untuk membaca penekanan enter pada keyboard.
sorot     : Macro untuk membuat sorotan pada menu.
gotoxy   : Macro untuk menempatkan posisi karakter pada layar.

Kemudian untuk pilihan menu diatas terdapat pada bagian

masukan :
            readkey
            cmp ah,panah_bawah
            je bawah

            cmp ah,panah_atas
            je ceky

            cmp al,tenter

            jne masukan
            jmp banding

Ketika penekanan tombol Enter maka program akan langsung lompat ke banding.

Pada label banding sendiri terdapat perintah untuk membanding berada di posisi mana sorotan terhadap menu tersebut, ada 4 pilihan, yaitu di baris ke 12,13,14, atau 15.

banding    :
            cmp posy,12
            je karakter

            cmp posy,13
            je warna

            cmp posy,14
            je rontok

            cmp posy,15
            je keluar

Jika kita menekan tombol enter pada posisi pertama atau baris ke 12, maka program akan lompat ke label karakter, yaitu untuk mencetak karakter tanpa warna, begitu pula jika kita menekan tombol enter pada baris 13 atau posisi ke 2, maka akan menghasilkan karakter warna-warni.


Ketika plihan pertama dijalankan akan mencetak karakter tanpa warna.


Ketika pilihan kedua dijalankan akan mencetak karakter warna-warni.


Ketika memilih menu ketiga maka akan tampil sebuah kalimat yang melayang atau rontok ke atas.


Kemudian untuk pillihan keempat adalah untuk keluar dari program.

Terimakasih.

Wassalamualaykum.


Program Residen Pada Assembly

Assalamualaykum

Residen merupakan program yang tetap tinggal didalam memory. Contoh program residen yang terkenal misalnya SideKick, Print(Dos) dan Doskey. Program Residen adalah program yang akan menetap didalam memory seperti halnya Dos dan program residen ini akan berada tepat diatas Operating System. Program residen akan dianggap sebagai bagian dari Operating System sehingga bila dijalankan program aplikasi maka program aplikasi tersebut akan ditaruh diatas program residen sehingga program residen kita tetap utuh.

Dalam pembuatan program residen, kita dapat membagi kedalam dua bagian pokok yaitu :

  1. Initialize Section, yaitu bagian dari program yang bertugas meresidenkan residen section. Bagian ini sendiri tidak residen, dan pada bagian inilah suatu vektor interupsi diubah.
  2. Residen Section, yaitu bagian dari program yang akan menetap pada memory. Program ini akan menetap pada memory sampai dihilangkan, atau hingga komputer di restart.
Pada program sebelumnya kita mengakhiri program dengan interupsi 20h yang akan mengembalikan kontrol program sepenuhnya ke DOS. Pada program residen, program akan selalu kita akhiri dengan interupsi 27h ataupun interupsi 21h fungsi 31h.

Contohnya kita akan membuat program untuk mengunci capslock, jadi ketika program dijalankan maka capslock akan hidup secara otomatis dan tidak bisa dimatikan kecuali dengan menutup program atau merestart komputer.

Pada alamat 40h:70h terdapat tanda tentang status tombol keyboard dimana bit ke 7 digunakan untuk menandakan keadaan dari tombol caps lock. Bit tersebut akan bernlai 1 bila caps lock sedang aktif dan 0 bila caps lock tidak aktif. Dengan mengubah bit ke 7 pada alamat 40h:70h tersebut kita bisa menyalakan tombol caps lock tanpa menekannya.

Contoh program :

aksi macro

    mov ax,40h
    mov es,ax
    mov ax,es:[17h]
    mov ax,01000000b
    mov es:[17h],ax

endm

.model small
.code
org 100h

tdata     :

        jmp res_kan
        noint equ 1ch

bag_res    proc

        push ax
        push bx
        push cx
        push dx
        push es
        push di
        push ds
        push si

        aksi

        pop si
        pop ds
        pop di
        pop es
        pop dx
        pop cx
        pop bx
        pop ax
        iret

bag_res    endp

res_kan    :

        mov ah,25h
        mov al,noint
        lea dx,bag_res
        int 21h

        lea dx,res_kan
        int 27h

end     tdata

Untuk menjalankan programnya kita harus mengkompile nya terlebih dahulu , untuk compilernya silahkan download di sini. Kemudian untuk menjalankan program kita membutuhkan Command Prompt atau bisa digantikan dengan DOSBox.

Setelah semuanya siap, ketikkan kode diatas kedalam text editor, kemudian simpan dengan ekstensi *.ASM. Setelah itu ketikkan perintah tasm namaprogram selanjutnya ketikkan perintah tlink/t namaprogram kemudian jalankan program. 


Ketika program tersebut dijalankan, maka secara otomatis Caps Lock kita akan hidup secara terus menerus. Untuk mengembalikan seperti semula caranya tutup aplikasi DOSbox atau Command Prompt.

Mungkin sampai disini dulu postingan kali ini, terimakasih.

Wassalamualaykum.

Download Tutorial

Download Contoh Program.

Pustaka Macro Pada Assembly

Assalamu'alaykum

Pada kesempatan yang berbagia ini kita akan membahas tentang pustaka macro pada assembly, pada tutorial sebelumnya, yaitu penggunaan macro dalam assembly kita telah membahas pengertian macro dan cara penggunaannya. Manfaat mengunakan pustaka macro sendiri adalah kita dapat memisahkan file macro dan proram utamanya. Jika pada macro biasa ditulis dalam satu program, maka pada pustaka macro dibagi menjadi beberapa program, didalam program utama kita akan memanggil pustaka macro tersebut.

Pustaka macro biasanya disimpan dengan ekstensi *.mcr . Selanjutnya didalam program utama kita panggil dengan peritah include program.mcr

Berikut adalah contoh penggunaan pustaka macro


Siapkan terlebih dahulu aplikasi assemblernya,jika Anda belum punya silahkan download di sini.

Untuk melakukan proses kompilasi program siapkan command prompt atau bisa digantikan dengan DOSBox.

Selanjutnya siapkan text editor untuk mengetikkan kode program, anda bisa menggunakan notepad,edit,sublime text,dll.

Pertama kita buat dahulu pustaka macro :

cetak_kar macro kar

         mov ah,2h

         mov dl,kar

         int 21h

endm

cetak_klm macro klm

        lea dx,klm
        mov ah,9h

        int 21h

endm

Simpan dengan ekstensi *.mcr.

Selanjutnya kita panggil macro tersebut pada program utama

include pustaka.mcr
.model small
.code
org 100h

mulai : jmp proses

            kal0 db 'Penggunaan Pustaka Macro $'
proses :
           cetak_klm kal0

           cetak_kar 'Y'

int 20h

end     mulai

Simpan program diatas dengan ekstensi *.ASM. ketikkan perintah tasm namaprogram, dilanjutkan dengan tlink/t namaprogram.

Ketika program tersebut dijalankan maka akan menghasilkan kalimat

Penggunaan Pustaka Macro Y

 
Mungkin sampai disini dulu ya, terimakasih.

Wassalamu'alaykum

Download Tutorial

Program Huruf Rontok dengan Assembly

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

Macro Pada Assembly

Assalamu'alaykum

Pada kesempatan kali ini kita akan membahas mengenai penggunaan macro pada Assembly.

Seperti halnya pada procedure, macro juga digunakan untuk mempermudah kita membuat program di Assembly.

Bentuk macro

NamaM MACRO [P1,P2,,]

+-----------------+
|   Program   |
+-----------------+

ENDM

P1 dan P2 adalah parameter yang bisa kita gunakan pada macro. Parameter ini hanya optional, bisa kita gunakan ataupun tidak.

Mencetak karakter dengan macro :

Siapkan aplikasi Assembler nya terlebih dahulu, silahkan download di sini.

Kemudian buka command prompt atau bisa juga digantikan dengan DOSBox.Selanjutnya siapkan text editor untuk mengetikkan kode program.

Berikut adalah contoh programnya :

cetak_kar macro kar
        mov ah,2h
        mov dl,kar
        int 21h

endm

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; Program untuk mencetak karakter ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

.model small
.code
org 100h

proses    :
        cetak_kar 'S'

        int 20h
end     proses

Ketikkan kode diatas di keadalam text editor, selanjutnya simpan dengan ekstensi *.ASM. Setelah itu compile program dengan perintah tasm namaprogram di DOSBox, Kemudian ketikkan perintah tlink/t namaprogram. Jalankan program, maka akan menghasilkan karakter S.



Penggunaan Label Pada Macro

Pada macro Anda bisa menggunakan label seperti biasa, tapi kita hanya bis a memanggil satu kali label tersebut. Bila kita menggunakan lebih dari satu kali maka akan terjadi error. Untuk menghindari hal tersebut digunakan directif LOCAL. Dengan directif LOCAL Assembler akan membedakan label tersebut pada saat dipanggil.

contoh program  :

cetak_kar macro kar
local ulang

    mov cx,3
    mov ah,02
    mov dl,kar
   
ulang    :
        int 21h
        loop ulang
endm

;;;;;;;;;;;;;;;;;;;

.model small
.code
org 100h

Proses    :
        cetak_kar 'P'
        cetak_kar 'C'

        int 20h

end     Proses

Lakukan proses compile dan linking seperti diatas. Ketika dijalankan, maka akan menghasilkan karakter PPPCCC.



Pada contoh diatas kita hanya menggunakan macro dengan satu parameter, selanjutnya kita akan menggunakan lebih dari satu parameter.

contoh program :

cetak_kar macro ganteng,kece

    mov ah, 02h
    mov dl, ganteng
    mov cx, kece

ulang     :
        int 21h
        inc dl
        loop ulang

endm

.model small
.code
org 100h

proses    :
        cetak_kar 'A' 26

        int 20h
end     proses

Kita lihat pada bagian parameter, terdapat dua parameter yaitu ganteng dan kece. Ketika kita memanggil didalam program kita beri satu spasi pada parameter yang lain , contoh : cetak 'A' 26. Nah 'A'  merupakan parameter 1 dan 26 merupakan parameter 2.

ketika program tersebut dijalankan, maka akan menghasilkan karakter A-Z .



Mungkin sampai disini dulu ya. Terimakasih.

Wassalamu'alaykum.

Download Tutorial

Penggunaan Procedure Pada Assembly


Assalamualaykum

Pada kesempatan kali ini, kita akan membahas mengenai penggunaan procedure dalam bahasa pemrograman Assembly.

Procedure sendiri digunakan untuk memudahkan kita dalam membuat program di Assembly. Kita tinggal memanggil procedure yang telah dibuat.

Untuk membuat procedure bisa diilustrasikan  seperti berikut :

NamaP Proc NEAR/FAR

+ -------------- +
|  Program  |
+----------------+
 Ret
                                         
 NamaP ENDP

"NamaP" adalah nama dari procedure yang kita definisikan sendiri. NEAR/FAR merupakan bentuk dari procedure tersebut. Bentuk NEAR digunakan jika procedure tersebut nantinya dipanggil oleh program yang letaknya masih satu segment dari procedure tersebut. Sebaliknya bentuk FAR ini digunakan bila procedure dapat dipanggil dari segment lain. Bentuk ini akan kita gunakan pada program EXE.

Perintah RET(Return) digunakan untuk mengembalikan kontrol program pada simpemanggil procedure. Pada bentuk NEAR perintah RET ini akan memPOP atau mengambil register IP dari stack sebagai alamat loncatan menuju program pemangil procedure. Sedangkan pada bentuk FAR perintah RET ini akan mengambil register IP dan CS dari stack sebagai alamat loncatan menuju program pemanggil procedure. Alamat kembali  untuk procedure disimpan pada stack pada saat procedure tersebut dipanggil dengan perintah CALL. Dengan syntak :

CALL NamaP

Berikut kita akan membuat program dengan procedure.

Pertama kita siapkan  tersebih dahulu kompiler Assembly nya, jika Anda belum punya silahkan download di sini.

Setelah itu buka command prompt atau bisa digantikan dengan DOSBox yang digunakan untuk mengkompile dan linking program.

Kemudian siapkan text editor untuk mengetikkan kode program, ada banyak text edtior, Anda bisa menggunakan notepad, notepad++, sublime text,edit,dll.

Kita akan membuat program mencetak karakter dengan procedure,berikut kode programnya.

.model small
.code
org 100h

proses     : call cetak_kar
         int 20h

cetak_kar     proc near
            mov ah,2h
            mov dl,'A'
            int 21h
           
            ret
cetak_kar    endp

end     proses

Simpan dengan ekstensi *.ASM. Setelah itu kita kompile program tersebut di dengan perintah tasm  namaprogram , selanjutnya kita linking program dengan perintah tlink/t namaprogram.



Ketika program tersebut dijalankan maka akan menghasilkan karakter 'A'.


Selanjutnya kita coba membuat program untuk mencetak karakter A - Z satu warna, masih menggunakan procedure.

.model small
.code
org 100h

proses     : call cetak_kar
         int 20h

cetak_kar     proc near
            mov ah,2h
            mov dl,'A'
            mov cx,26

ulang        :
            int 21h
            inc dl
            loop ulang
           
            ret
cetak_kar    endp

end     proses

Jalankan program diatas, maka akan menghasilkan karakter A-Z.


Kita juga bisa mencetak karakter A - Z warna - warni, berikut kode programnya

.model small
.code
org 100h

proses     : call cetak_kar
         int 20h

cetak_kar     proc near
            mov ah,9h           
            mov bl,99h
            mov cx,26
ulang        :
            int 10h
            inc bl
            loop ulang

            mov ah,2h
            mov dl,'A'
            mov cx,26

lagi        :
            int 21h
            inc dl
            loop lagi
           
            ret
cetak_kar    endp

end     proses



Jalankan program tersebut, maka akan menghasilkan karakter A - Z warna-warni.

Mungkin sampai disini dulu postingan kali ini, Saya mohon maaf bila ada kata-kata yang kurang dimengerti.

Terimakasih

Wassalamualaykum.

Download Tutorial