Wednesday, January 2, 2013

Studi Kasus Bahasa Assembly

PERMASALAHAN / KASUS :


Terdapat bilangan a = 4, b = 8, c = 12 dan sebuah bilangan D yang digunakan untuk menampung hasil operasi aritmatika bilangan-bilangan tersebut.
Lakukan perbaningan a dan b,
Jika A > B lakukan D = A * B - C
Jika A = B, Bandingkan B dengan C
            - Jika B > C, Lakukan D = A + B - C
            - Jika B = C, Lakukan D = A * B / C
            - Jika B < C, Lakukan D = A + B / C
Jika A < B Lakukan D = A * C - B
Semua Hasil Dicetak Ditambah Kalimat Penjelasannya



File Macro.asm
INCLUDE  PUSTAKA.MCR
.MODEL SMALL
.CODE
ORG 100h

Macro Perkalian, Penjumlahan, Pengurangan, Pembagian, Cetak Kalimat, Cetak Karakter Bahasa Assembly

Ini adalah kumpulan Macro Perkalian, Penjumlahan, Pengurangan, Pembagian, Cetak Kalimat, Cetak Karakter dalam Bahasa Assembly. Macro macro ini dikumpulkan dalam 1 file yaitu Pustaka.MCR dan nanti akan diimplementasikan dalam file latihan.ASM.
Code untuk Pustaka.MCR :


Cetak_Kar           Macro Kar
                                MOV AH,02
                                MOV DL,Kar
                                INT 21H
                                EndM
                                               
Cetak_Klm  MACRO  Klm        ; Macro untuk mencetak 
           LEA    DX,Klm     ; kalimat 
           MOV    AH,09
           INT    21h
           ENDM
                                  
                  
Cetak_Angka MACRO Angka
                                                mov ax,angka
                                                Tampil
                                                endm
                               
Perkalian MACRO a,b
                                                MOV AX,a
                                                Mul b
                                                Tampil
                                                endm
                                               
Penjumlahan MACRO a,b
                                                MOV AX,a
                                                ADD AX,b
                                                Tampil
                                                endm
                                               
Pengurangan MACRO a,b
                                                MOV AX,a
                                                SUB AX,b
                                                Tampil
                                                endm
                                               
Pembagian MACRO a,b
                                                SUB  DX,DX
                                                MOV AX,a
                                                DIV b
                                                Tampil
                                                endm
                                               
Tampil MACRO
                                                local looping, cetak
                                                mov bx,10 ;bx=10
                                                xor cx,cx ;cx=0
                                                looping:
                                                xor dx,dx
                                                div bx ;dx=ax/bx
                                                push dx ;push untuk menyimpan data ke dalam steck
                                                inc cx
                                                cmp ax,0
                                                jne looping
                                                cetak:
                                                pop dx ;pop untuk mengambil data dari stack
                                                add dl,'0' ;ubah angka menjadi code ascii
                                                mov ah,02h
                                                int 21h
                                                loop cetak
                                                endM
Code Latihan.ASM :


INCLUDE  PUSTAKA.MCR
.MODEL SMALL
.CODE
ORG 100h

Mulai :  JMP  Proses
                                 Kal0 DB 13,10,'CONTOH CETAK KALIMAT DENGAN MACRO $'
                                 Kal1 DB 13,10,'---OPERASI ARITMATIKA--- $'
                                 Kal2 DB 13,10,'A = $'
                                 Kal3 DB 13,10,'B = $'
                                 Kal4 DB 13,10,'A*B = $'
                                 Kal5 DB 13,10,'A+B = $'
                                 Kal6 DB 13,10,'A-B = $'
                                 Kal7 DB 13,10,'A/B = $'
                                 a Dw 6
                                 b Dw 3
                                 
 Proses:
         Cetak_Kar  'A'        ; Cetak Huruf 'A'
                                 Cetak_Klm  Kal0       ; Cetak Kalimat Kal0
                                 MOV AH,09
                                 MOV DX,OFFSET Kal1
                                 int 21h
                                 MOV DX,OFFSET Kal2
                                 int 21h
                                                Cetak_Angka a 
                                 MOV AH,09
                                 MOV DX,OFFSET Kal3
                                 int 21h
                                                Cetak_Angka b
                                 MOV AH,09
                                 MOV DX,OFFSET Kal4
                                 int 21h
                                                Perkalian a,b
                                 MOV AH,09
                                 MOV DX,OFFSET Kal5
                                 int 21h
                                                Penjumlahan a,b
                                 MOV AH,09
                                 MOV DX,OFFSET Kal6
                                 int 21h
                                                Pengurangan a,b
                                 MOV AH,09
                                 MOV DX,OFFSET Kal7
                                 int 21h                
                                                Pembagian a,b
                                 INT   20h
END      Mulai
 

Menghitung Akar Kuadrat dalam Bahasa Assembly

Ini adalah kode untuk mencari akar kuadrat dalam bahasa assembly. wow its magic! silahkan simak kode berikut ini :

.MODEL SMALL
.CODE
ORG 100h
   jmp start
   a dw 36
   Start :
   MOV CX,a
        MOV AX,-1
        CWD
        XOR BX,BX
Loopsqrt:
    INC AX
    INC DX
    INC DX
    ADD BX,DX
    CMP BX,CX
    JBE Loopsqrt
   

Penjumlahan melalui input keyboard Assembly

Ini adalah code untuk melakukan penjumlahan bilangan yang diinputkan dari keyboard pada bahasa assembly. Namun penjumlahan ini terbatas di bilangan maksimal 9 karena hanya mengkonversi bilangan ascii.
ini dia kode programnya :
.model small
.code
org 100h
start : jmp input
nilai1 db 'Masukkan A = ','$'
nilai2 db 13,10,'MAsukkan B = ','$'
hasil  db 13,10,'A + B = ','$'
input:
mov ah,09h
mov dx,offset nilai1

Sunday, June 19, 2011

TIPS : Cara Menyelamatkan HP Ponsel Yang Terendam

Yuk monggo disimak :
1. Segera cabut baterai ponsel Anda, dan jangan pernah menyalakan ponsel ketika masih basah karena bisa menyebab terjadinya korslet sehingga bisa rusaknya komponen ponsel Anda.
2. Ambil kain yg kering untuk mengeringkan ponsel Anda, jangan lupa buka casingnya dan keringkan layar serta tombol ponsel menggunakan kain kering tsb.
3. Ambil (kalau tidak punya, usahakan pinjam ke tetangga atau teman) hair dryer atau kipas angin (sekitar 15-30 menit) untuk membantu mengeringkan ponsel. Ingat berilah jarak antara hair dryer dengan komponen ponsel, jangan terlalu dekat (kira-kira 15-30cm) karena bisa mempengaruhi komponen IC. Kalau tidak ada hair dryer, bisa juga menjemur ponsel Anda di siang hari agar ponsel benar-benar kering, tetapi harus dipisahkan antara baterai dengan ponsel Anda.
4. Bila ponsel Anda telah benar2 kering, selanjutnya pasang kembali baterai ponsel, dan coba nyalakan. Kalau Anda melihat cahaya dari keypad ponsel Anda (bukan dari layar), ini adalah pertanda baik. Karena berarti ponsel Anda masih bisa dipakai.
5. Cobalah menekan nomor telepon seperti biasa, walaupun kondisi layar masih dalam keadaan gelap. Kalau ada nada panggilan, itu artinya layar Anda akan kembali normal suatu saat nanti.

Thursday, June 16, 2011