Jumat, 30 September 2011

SINGGLE VARIABEL DAN ARRAY VARIABEL
Dosen : Nahar Mardiyantoro,M.Kom

Singgle Variable merupakan suatu variabel yang hanya dapat menyimpan satu data

contoh : Vkal DB 'HALO'
             Vkal,'Hi'
maka yang akan ditampilkan adalah Hi

Array Variabel  adalah sebuah tempat penyimpanan data dimana salah satu variabel hilang atau diseplit

Contoh:
    .model small
    .code
    org 100h
    Mulai :
        vkal DB 'HALO'

    Proses:
        mov DL, vkal[1]
        mov ah, 02h
        int 21h
        int 20h
    end mulai


Jika coding diatas dipraktekan atau dipanggil menggunakan asm  pada cmd prompt maka akan muncul satu karakter saja hal ini karena pada mov DL,vkal[1] yang diminta untuk ditampilkan adalah vkal 1dimana vkal 1 berisi huruf A, karena dalam array karakter dihitung mulai dari 0 sedangkan pada contoh diatas kata HALO terdiri dari 4 karakter dimana H=vkal0, A=vkal1,L=vkal2,O=vkal3 jadi jika mov DL,vkal yang kita panggil [4] atau lebih maka yang ditampilkan kosong, karena melebihi array variabel yaitu 4 sedangkan dalam contoh diatas array variabel hanya sampai 3 sehingga prosessor membaca Out of Range atau Out of Character.Berikut contoh coding diatas bila dipraktekan menggunakan cmd propmt :


Berikut adalah sebuah flowchart untuk menampilkan kalimat yang jika bertemu huruf  "S" maka berhenti  men cari seperti pada contoh kalimat "MY NAME IS SALJU" melalui perulangan sehingga nantinya yang ditampilkan adalah "MY NAME I"
 

bila flowchart diatas dideklarasikan dalam coding maka :
.model small
.code
org 100h
mulai:
    jmp ulang
    vkal db 'MY NAME IS SALJU$'
ulang:
    mov dl, vkal[BX]
    mov ah,02h
    int 21h
    inc bx
    mov ax, bx
    cmp ax, 9
    je exit 
    jmp ulang
    exit: int 20h

end mulai
====================================================
buat menggunakan Notepad dan simpan file dengan nama array2 .asm pilih type all document
dan ketika program dijalankan jika menemui huruf S maka akan berhenti jika tidak maka looping ke atas  seperti gambar berikut :

jalankan menggunakan klik Start, Run dengan program ASM di DOS. Arahkan ke folder program asm (cd ..) kemudian  ketik tasm array2.asm (file asm) lalu ketik tlink/t array2.obj langkah terakhir pannggil dengan cara ketik array2.com maka akan tampil hanya huruf "MY NAME I " dari kalimat "MY NAME IS SALJU$"


Demikian semoga dapat diterima dan bermanfaat..amiin..

Minggu, 18 September 2011

BAHASA RAKITAN : PERINTAH STRING JUMP DAN COMPARE PADA ASSEMBLER

Dosen : Nahar Mardiyantoro,M.Kom

Dalam menyusun sebuah program atau procedure dalam bahasa rakitan dibutuhkan instruksi-instruksi . Instruksi atau perintah pada  mikro kumputer disusun dalam bentuk singkatan kata yang disebut dengan Mnemonic, yang disusun dalam kelompok tertentu dimana tiap kelompok memiliki pasangannya sendiri dan tidak dapat kita pisahkan semau kita. Berikut salah satu perintah yang menggunakan instruksi string yaitu compare dan mempraktekannya menggunakan turbo asembler seperti postingan saya yang lalu , jadi  masih ingat tentunya syarat apa yang dibutuhkan untuk menjalankan turbo asembler kan  ?
ok...langsung saja kita praktekan  contoh berikut :

.model small
.code
org 100h
Mulai :
    jmp proses
    bila db 5
    kal1 db 'sama$'
    kal2 db 'lebih kecil$'
    kal3 db 'lebih besar$'
       
Proses:
    mov al,bila
    cmp al,5
    je sama
    ja kecil
    jb besar
   
sama :  mov ah,09h
    lea dx, kal1
    int 21h
    int 20h

kecil : mov ah,09h
    lea dx, kal2
    int 21h
    int 20h

besar : mov ah,09h
    lea dx, kal3
    int 21h

    int 20h
End mulai

bila coding diatas kita praktekan maka akan ditampilkan "sama" seperti pada gambar berikut :
mengapa ? karena pada coding bila db 5 dan cmp al, 5 yang artinya apabila kedua bilangan tersebut dibandingkan / compare (cmp al) berarti sama
Lain lagi bila pada koding cmp al,5  kita ganti bilangannya menjadi 7 ( bilangan yang lebih besar dari bilangan a lihat pada bila db 5) maka jika dipraktekan hasil yang ditampilkan adalah "lebih besar" demikian juga bila kita masukan bilangan yang lebih kecil dari 5 maka yang ditampilkan adalah "lebih kecil". seperti pada gambar berikut :
jmp atau jump merupakan perintah lompat yang pada pascal dikenal dengan go to merupakan perintah kondisional karena tidak memerlukan syarat untuk melaksanakannya. sedangkan cmp = compare atau bandingkan , je = jump equal jika perintah yang digunakan hanya dua pembanding misal sama dan beda maka digunakan jne = jump not equal (lompat jika tidak sama maka...) sedangkan pada contoh diatas
pembanding yang digunakan ada 3 macam yaitu sama, lebih kecil dan lebih besar maka digunkan je (jump equal = lompat jika sama), ja (jump above = lompat ke atas) dan jb (jump bellow= lompat ke bawah).

oya hampir lupa diatas ada tanda '$' ternyata itu berfungsi untuk membatasi karakter karena jika tanda $ dihapus yang terjadi adalah munculnya karakter yang sangat banyak atau tidak terbatas. sedangkan kapasitas terbatas .


mov al bila berarti kerjakan al berisi bila sedangkan bila=5 ( bilangan a)
cmp al, 7  = bandingkan isi dari al  yaitu  5 banding 7

Lea = Load Effective Address berfungsi mentransfer opsan sumber 16 bit dalam memori ke tujuan 16 bit. lea dx, kal1 berarti dengan alamat kal1 akan dimasukan ke dx.

int 21h merupakan nomor interupsi dimana nama interupsi tersebut adalah DOS function services ,interupsi yang berarti menampilkan data agar dapat dibaca dan int 20h merupakan perintah cetak

jangan lupa untuk menutup coding dengan end mulai.

huffff.....masih banyak lagi nich yang harus dipostkan....hmmm...  semoga bermanfaat dech.. cU..