Proses pengerjaan
Kami kelompok 2 telahmencobamencari program berbasisassembler.Kamisudah
mendapatkansebuah program assembler yaitu program kalkulator.Kamijugatelah
mengerjakansemuatugas yang diberikansecarabersama-sama.
Ini program assembler kalkulator yang kami buatuntuktugas.
org 0
check: jb p0.2, check
mov p2,#00000001b
mov p3,#00000010b
jb p0.0,pi
sjmppo
pi: jb p0.1,bagi
sjmp kali
po: jb p0.1,kurang
sjmptambah
tambah: clr C
mov A,p2
addc A,p3
mov B,C
sjmphasil
kurang: clr C
mov A,p2
subb A,p3
mov B,C
sjmphasil_kurang
bagi: clr C
mov A,p2
mov B,p3
div AB ; disimpan di A bit 15-8, sisa di B bit 7-0
sjmphasil_bagi
kali: clr c
mov A,p2
mov B,p3
mul AB ;data disimpan di B 15-8 dan A bit 7-0
sjmphasil
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. AlgoritmaKalkulator
{MelakukanPenjumlahan,Pengurangan,Perkalian,Pembagian}
Deklarasi
{ inisialisasialamat : 0
Check : label ininuntukmengechek
Jb : untukmelompatjika operan1
Sjmp : melompatkealamat
Clr : membersihkanlayar
Addc : operasipenambahan
Subb : operasipengurangan
Div : operasipembagian
Mul : operasiPerkalian
Borrow : peminjaman
A,B,C : tempatkosong}
Deskripsi
{ Check : jika p0,2 < p2
Lompatke check
Write #00000001b to p2
Write #00000010b to p3
Menentukancaramenghitung:
Jika p0,0 < p2
Lompatke pi
Lompatke Po
Pi : Jika p0,1 < p2
Lompatkebagi
Lompatke kali
Po : jika p0,0 < p2
Lompatkekurang
Lompatketambah
Tambah : pindahkanangkadari p2 ke A
Hasil = A + p3
Lompatkehasil
Kurang : pindahkanangkadari p2 ke A
Hasil_kurang = A - p3
Lompatkehasil_kurang
Bagi : pindahangkadari p2 ke A
Pindahangkadari p3 ke B
Hasil_bagi = A : B
Lompatkehasil_bagi
Kali : pindahangkadari p2 ke A
Pindahangkadari p3 ke B
Hasil_kali = A : B
Lompatkehasil_kali
hasil : Jika p0,3 < p2
LompatkeHdata
Pindahkanangkapada A ke p1
Lompatke finish
Hdata :pindahkanangkapada B ke p1
Lompatke finish
hasil_kurang : Jika p0,3 < p2
Lompatke borrow
Pindahkanangkapada A ke p1
Lompatke finish
borrow : pindahkanangkapada B ke p1
lompatke finish
hasil_bagi : jike p0,3 < p2
lompatkesisa
Pindahkanangkapada A ke p1
Lompatke finish
sisa : pindahkanangkapada B ke p1
lompatke finish
finish :
lompatke check
end ...
B. Struktur Program
Mengirim data
Melakukanperkalian
MelakukanPembagian
MelakukanPenjumlahan
Melakukanpengurangan
Mengopi data
Melihathasil
C. KelebihandanKekurangan
kelebihan
dapatmempermudahkitauntukmelakukansebuahperhitungan
kekurangannya
fitur-fiturnyamasihbelumlengkap, sepertimasihbelumadauntukperhitungancosinus,
log, factorial,akar, danperpangkatan
D. FungsiUtama
Fungsiutamadari program assembler iniadalahuntukmelakukan proses perhitungan.
E. Komentar
Kalkulator.asm
org 0 ;Inisialisasialamatmulai program CODE Penandamulaipendefinisian program
check: jb p0.2, check ;
mov p2,#00000001b ; kirim #00000001b keakumulator p2
mov p3,#00000010b ; kirim #00000010b keakumulator p3
jb p0.0,pi ; melakukanlompatankesuatublok program
sjmppo ; melompatkealamat / label untukalamatkode yang pendek
pi: jb p0.1,bagi
sjmp kali ; melompatkealamat / label untukalamatkode yang pendek(kali)
po: jb p0.1,kurang ; melompatkealamat / label untukalamatkode yang pendek(kurang)
sjmptambah ; melompatkealamat / label untukalamatkode yang pendek(tambah)
tambah: clr C
mov A,p2 ;kirim p2 kealkumulator A
addc A,p3
mov B,C ;kirim C kealkumulator B
sjmphasil ; melompatkealamat / label untukalamatkode yang pendek(hasil)
kurang: clr C
mov A,p2 ;kirim p2 kealkumulator A
subb A,p3 ;melakukanpengurangan
mov B,C ;kirim C kealkumulator B
sjmphasil_kurang ; melompatkealamat / label untukalamatkode yang
pendek(kurang).
bagi: clr C
mov A,p2 ;kirim p2 kealkumulator A
mov B,p3 ;kirim p3 kealkumulator B
div AB ; disimpan di A bit 15-8, sisa di B bit 7-0
sjmphasil_bagi ; melompatkealamat / label untukalamatkode yang pendek(hasil
bagi).
kali: clr c
mov A,p2 ;kirim p2 kealkumulator A
mov B,p3 ;kirim p3 kealkumulator B
mul AB ;data disimpan di B 15-8 dan A bit 7-0
sjmphasil ; melompatkealamat / label untukalamatkode yang pendek(hasil).
hasil: jb p0.3,HData ;carry-ne
mov p1,A;Ldata
sjmp finish ; melompatkealamat / label untukalamatkode yang pende(finish).
HData: mov p1,B ;kirim B kealkumulator p1
sjmp finish ; melompatkealamat / label untukalamatkode yang pendek.
hasil_kurang: jb p0.3,borrow
mov p1,A ;Hasilkurang
sjmp finish ; melompatkealamat / label untukalamatkode yang pendek(finish).
borrow: mov p1,B
sjmp finish ; melompatkealamat / label untukalamatkode yang pendek(finish).
hasil_bagi: jb p0.3,sisa
mov p1,A ;kirim A kealkumulator p1
sjmp finish ; melompatkealamat / label untukalamatkode yang
pendek(finish).
sisa: mov p1,B ;kirim B kealkumulator p1
finish:
;sjmp check ; melompatkealamat / label untukalamatkode yang pendek(check).
end ... ;mengakhiri program
F. KemungkinanPengembangan
Karenafiturnyamasihkuranglengkap, kemungkinanpengembangannyabisa di tambah
fiturperhitungancosinus,akar,log,factorialdanperpangkatan.
Tidak ada komentar:
Posting Komentar