Minggu, 24 Maret 2013

Assembler Kalkulator.asm


ARSITEKTUR KOMPUTER
PROGRAM ASSEMBLER





ANGGOTA KELOMPOK II
BOBY ADE SAPUTRA ( 1123006 )
ADI NURRAHMAN ( 1123015 )
BAGUS RIKI PRASETYA ( 1123003 )
MAKHRUS ALI ( 1123017 )
MUHAMMAD AZLANSYAH ( 1123042 )

POLITEKNIK POS INDONESIA
2012-2013






Kata Pengantar

Puji syukur saya panjatkan kehadirat Tuhan Yang  Maha Esa, karena dengan pertolongan-Nya kami dapat menyelesaikan tugas ini.Dalam tugas ini kami juga mengucapkan terimakasih kepada Bapak Iwan yang telah membimbing kami untuk menyelesaikan  tugas ini dengan baik.
Dalam tugas inikami membahas tentang program assembler.Karena seperti kitaketahui bersama bahwa masih banyak program assembler yang masih asing bagi kita, jadi dengan ini mudah-mudahan dapat membantu menambah pengetahuan kita.
Tugas ini menjelaskan tentang program assembler yang kami pilih untuk tugas, dan sudah kami kerjakan semua tugasnya. Untuk itu semoga tugas  yang saya buat ini dapat menjadi acuan agar kita menjadi lebih berusaha dan mengerti tentang  program assembler kalkulator.

Bila dalam pengerjaan tugas ini terdapat kesalahan, kami minta maaf dan kepada Tuhan kami minta ampun.Saran dan kritik saudara sekalian kami butuhkan supaya dalam pengerjaan tugas yang selanjutnya bisa lebih baik lagi.







Bandung, 20 maret 2013





Kelompok 2






PENDAHULUAN

Latar Belakang
Kami membuat tugas assembler ini, karena menurut kami masih banyak orang yang belum mengetahui program assembler kalkulator dan mengerti tentang program assembler.

Tujuan
Kami membuta program ini bertujuan, supaya orang yang belum mengetahui program assembler kalkulator menjadi tahu dan orang yang belum mengerti supaya menjadi terbantu untuk mengerti serta bisa mencobanya.
Program ini juga menjadi tugas kami untuk tugas akhir semester pertama, semoga program ini juga dapat membantu kami mengerti tentang program assembler serta mendapat nilai yang baik supaya kami bisa lulus di semester pertama ini.




















ISI

Proses pengerjaan
Kami kelompok 2 telah mencoba mencari program berbasis assembler.Kami sudah mendapatkan sebuah  program assembler yaitu program kalkulator.Kami juga telah mengerjakan semua tugas yang diberikan secara bersama-sama.

Ini  program assembler kalkulator yang kami buat untuk tugas.


org 0
check: jb p0.2, check      
mov p2,#00000001b
mov p3,#00000010b

jb p0.0,pi
sjmp po
pi: jb p0.1,bagi
sjmp kali
po: jb p0.1,kurang
sjmp tambah

tambah: clr C
mov A,p2
addc A,p3
mov B,C
sjmp hasil
kurang: clr C
mov A,p2
subb A,p3
mov B,C
sjmp hasil_kurang
bagi:   clr C
mov A,p2
mov B,p3
div AB      ; disimpan di  A bit 15-8, sisa di B bit 7-0






sjmp hasil_bagi
kali:   clr c
mov A,p2
mov B,p3
mul AB    ;data disimpan di B 15-8 dan A bit 7-0
sjmp hasil
hasil:  jb p0.3,HData ;carry-ne
mov p1,A;LData
sjmp finish
HData: mov p1,B
sjmp finish
hasil_kurang: jb p0.3,borrow
mov p1,A ;Hasilkurang
sjmp finish
borrow: mov p1,B
sjmp finish
hasil_bagi: jb p0.3,sisa
mov p1,A
sjmp finish

sisa: mov p1,B
finish:    
sjmp check
end ...








A. Algoritma Kalkulator
{Melakukan Penjumlahan,Pengurangan,Perkalian,Pembagian}

Deklarasi
{ inisialisasi alamat : 0
Check : label inin untuk mengechek
Jb : untuk melompat jika operan1<operan2
Mov : meng-copy
Sjmp : melompat ke alamat
Clr : membersihkan layar
Addc : operasi penambahan
Subb : operasi pengurangan
Div : operasi pembagian
Mul : operasi Perkalian
Borrow : peminjaman
A,B,C : tempat kosong}

Deskripsi
{ Check : jika p0,2 < p2
Lompat ke check
Write #00000001b to p2
    Write #00000010b to p3
Menentukan cara menghitung:
Jika p0,0 < p2
Lompat ke pi
Lompat ke Po
Pi : Jika p0,1 < p2
Lompat ke bagi
Lompat ke kali
Po : jika p0,0 < p2
Lompat ke kurang
Lompat ke tambah

Tambah : pindahkan angka dari p2 ke A
Hasil = A + p3
Lompat ke hasil
Kurang : pindahkan angka dari p2 ke A
Hasil_kurang = A - p3
Lompat ke hasil_kurang
Bagi : pindah angka dari p2 ke A
Pindah angka dari p3 ke B
Hasil_bagi = A : B
Lompat ke hasil_bagi
Kali : pindah angka dari p2 ke A
Pindah angka dari p3 ke B
Hasil_kali = A : B
Lompat ke hasil_kali
hasil : Jika p0,3 < p2
Lompat ke Hdata
Pindahkan angka pada A ke p1
Lompat ke finish
Hdata :pindahkan angka pada B ke p1
Lompat ke finish
hasil_kurang : Jika p0,3 < p2
Lompat ke borrow
Pindahkan angka pada A ke p1
Lompat ke finish
borrow : pindahkan angka pada B ke p1
lompat ke finish
hasil_bagi : jike p0,3 < p2
lompat ke sisa
Pindahkan angka pada A ke p1
Lompat ke finish
sisa : pindahkan angka pada B ke p1
lompat ke finish
finish :
lompat ke check
end ...

B. Struktur Program
Mengirim data
Melakukan perkalian
Melakukan Pembagian
Melakukan Penjumlahan
Melakukan pengurangan
Mengopi data
Melihat hasil

C. Kelebihan dan Kekurangan
kelebihan
dapat mempermudah kita untuk melakukan sebuah perhitungan

kekurangannya
fitur-fiturnya masih belum lengkap, seperti masih belum ada untuk perhitungan cosinus, log, factorial,akar, dan perpangkatan

D. Fungsi Utama
Fungsi utama dari program assembler ini adalah untuk melakukan proses perhitungan.

E. Komentar
Kalkulator.asm
org 0 ;Inisialisasi alamat mulai program CODE Penanda mulai pendefinisian program
check: jb p0.2, check ;
 mov p2,#00000001b ; kirim  #00000001b ke akumulator p2
 mov p3,#00000010b ; kirim  #00000010b ke akumulator p3
 jb p0.0,pi ; melakukan lompatan ke suatu blok program
 sjmp po ; melompat ke alamat / label untuk alamat kode yang pendek
pi: jb p0.1,bagi
    sjmp kali ; melompat ke alamat / label untuk alamat kode yang pendek(kali)  
po: jb p0.1,kurang ; melompat ke alamat / label untuk alamat kode yang pendek(kurang)  
    sjmp tambah          ; melompat ke alamat / label untuk alamat kode yang pendek(tambah)  
tambah: clr C
        mov A,p2 ;kirim p2 ke alkumulator A
        addc A,p3
        mov B,C ;kirim C ke alkumulator B
        sjmp hasil     ; melompat ke alamat / label untuk alamat kode yang pendek(hasil)        
kurang: clr C
        mov A,p2 ;kirim p2 ke alkumulator A
        subb A,p3 ;melakukan pengurangan
        mov B,C ;kirim C ke alkumulator B
        sjmp hasil_kurang          ; melompat ke alamat / label untuk alamat kode yang pendek(kurang).
bagi:   clr C
        mov A,p2 ;kirim p2 ke alkumulator A
        mov B,p3 ;kirim p3 ke alkumulator B
        div AB      ; disimpan di  A bit 15-8, sisa di B bit 7-0
        sjmp hasil_bagi       ; melompat ke alamat / label untuk alamat kode yang pendek(hasil bagi).
kali:   clr c
        mov A,p2 ;kirim p2 ke alkumulator A
        mov B,p3 ;kirim p3 ke alkumulator B
        mul AB   ;data disimpan di B 15-8 dan A bit 7-0
        sjmp hasil   ; melompat ke alamat / label untuk alamat kode yang pendek(hasil).
hasil:  jb p0.3,HData ;carry-ne
        mov p1,A;Ldata
        sjmp finish ; melompat ke alamat / label untuk alamat kode yang pende(finish).
HData: mov p1,B ;kirim B ke alkumulator p1
       sjmp finish ; melompat ke alamat / label untuk alamat kode yang pendek.
hasil_kurang: jb p0.3,borrow
              mov p1,A ;Hasil kurang
              sjmp finish ; melompat ke alamat / label untuk alamat kode yang pendek(finish).
borrow: mov p1,B
        sjmp finish ; melompat ke alamat / label untuk alamat kode yang pendek(finish).
hasil_bagi: jb p0.3,sisa
            mov p1,A ;kirim A ke alkumulator p1
            sjmp finish           ; melompat ke alamat / label untuk alamat kode yang pendek(finish).
sisa: mov p1,B ;kirim B ke alkumulator p1
finish:    
      ;sjmp check ; melompat ke alamat / label untuk alamat kode yang pendek(check).
end ... ;mengakhiri program


F. Kemungkinan Pengembangan
Karena fiturnya masih kurang lengkap, kemungkinan pengembangannya bisa di tambah fitur perhitungan cosinus,akar,log,factorial dan perpangkatan.























Penutup


Kesimpulan

Tugas assembler ini berisikan program assembler kalkulator.asm dan kami juga sudah membuat algoritmanya serta menganalisisnya. Kami menganalisis tentang struktur datanya,kelebihan dan kekurangannya,fungsi utamanya,memberi komentar pada programnya,dan kemungkinan pengembangan pada saat nanti.

Saran

Bagi pembaca, jangan pernah puas dengan yang anda miliki atau anda ketahui, karena masih banyak yang belum anda ketahui. Jangan menyerah dan putus asa bila anda tidak tahu dan bisa, mari mencari tahu semuanya.























DaftarPustaka

http://google.com/kalkulator.asm/





Tidak ada komentar: