Jumat, 30 September 2011

Single and Array Variable

1. Single variable: suatu variable yang menggunakan seluruh ruang penyimpanan.
   Contoh: vkal DB 'HALO'
                mov vkal,'Hi'
   Jika dipanggil maka isi variable HALO diganti dengan Hi


2. Array Variable: Suatu variable yangg menggunakan split dalam penyimpanannya (ruang penyimpanan disekat)
   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 dipanggil maka isi variable HALO akan mencetak 1 karakter ke register DL yaitu A karena nilai Array variable dimulai dari 0 (nol). Jika melebihi dari nilai Array variable yaitu 4 (dalam contoh maksimal 3) maka processor membaca: Out of Range/Out of Character

Berikut adalah contoh script untuk mencetak S pada pada kalimat MY NAME IS SARJU melalui perulangan. Caranya:
1. Buatlah script berikut di Notepad
====================================================
    .model small
.code
org 100h
mulai:
    vkal db 'MY NAME IS SARJU$'
ulang:
    mov DL, vkal[11]
    mov ah,02h
    int 21h
    int 20h
    mov ax,bx
    cmp ax,11
    je exit
    inc bx
    jmp ulang
    exit:
    int 20h

end mulai
====================================================

2. Save file : array.asm

3. Run dengan program ASM di DOS
    - Arahkan ke folder program asm (cd ..)
    - Ketik tasm array.asm (file asm)
    - ketik tlink/t array.obj
    - ketik array maka akan tampil hanya huruf "S" dari kalimat "MY NAME IS SARJU$"
Lebih jelas lihat output programnya berikut :


 

Senin, 19 September 2011

CMP=Compare/Membandingkan dg Assembly

Membuat program membandingkan dengan Assembly
1. Buatlah script berikut di Notepad
====================================================
.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
====================================================
Keterangan Script:
Pada proses =>     cmp al,5= membandingkan dengan 5
        je    = jump equel (membandingkan yang sama)
        ja    = jump above (membandingkan yang lebih besar)
        jb    = jump below (membandingkan yang lebih kecil)
lea dx, kal1 = membaca alamat dari kal1 disimpan ke dalam DX
Karena Assembly adalah program terstruktur maka akan membaca secara urut dan tidak bisa melompat, untuk itu pada tiap deklarasi (sama, kecil dan besar) jika tidak ditambahkan int 20h untuk halt (berhenti) maka ketika program dijalankan akan tercetak SAMALEBIH KECILLEBIH BESAR.
Untuk itu pada tiap deklarasi (sama, kecil dan besar) tambahkan int 20h untuk halt (berhenti) sehingga membandingkannya akan berjalan sesuai dengan kriteria.

2. Save file : compare.asm

3. Run dengan program ASM di DOS
- Arahkan ke folder program asm (cd ..)
- Ketik tasm compare.asm (file asm)
- ketik tlink/t compare.obj
- ketik compare
- Jika pada proses membandingkannya sama yaitu 5 (cmp al,5) maka hasilnya SAMA
  Lebih jelas lihat output programnya berikut :










- Jika pada proses membandingkannya lebih kecil yaitu 3 (cmp al,3) maka hasilnya LEBIH KECIL

  Lebih jelas lihat output programnya berikut :









- Jika pada proses membandingkannya lebiH besar yaitu 7 (cmp al,7) maka hasilnya LEBIH BESAR

  Lebih jelas lihat output programnya berikut :
Lukman Alfasiry © 2008. Design by :vio Templates Sponsored by: gold bola