Implementasi and Analisis Kinerja Metode

LAPORAN AKHIR PENELITIAN FAKULTAS

Implementasi & Analisis Kinerja Metode Perkalian
METRIS pada Sistem Mikroprosesor
8 dan 16 Bit.
Untuk Bilangan Berukuran 8 Bit – 256 Bit

Peneliti :
1. Stephanus Ivan Goenawan, S.Si., M.T.
2. Ferry Rippun, S.T., M.T.

Program Studi Teknik Industri
Fakultas Teknik
Universitas Katolik Atma Jaya
2014

FORMULIR PENGESAHAN LAPORAN AKHIR
FAKULTAS TEKNIK
Judul Penelitian (diganti/tidak): Implementasi & Analisis Kinerja Metode Perkalian
METRIS pada Sistem Mikroprosesor 8 dan 16 Bit.
Tim Peneliti:

1. Stephanus Ivan Goenawan, S.Si., M.T.
2. Ferry Rippun, S.T., M.T.

Lama Penelitian
Waktu Penelitian
Publikasi
Total Biaya terpakai

: 9 Bulan
: April – Desember 2014
: dipublikasikan
: Rp. 4.732.075,-

Hasil Laporan akhir penelitian adalah berupa paper yang telah diseminarkan pada Seminar
Nasional Riset dan Teknologi Terapan 2014, yang diselenggarakan di Universitas Sanata
Dharma Yogyakarta pada tanggal 17 September 2014 dengan Judul :
Prosedur Komputasi Bertingkat Metris Untuk Pemrograman Perkalian Pada Sistem
Mikroprosesor (ISBN: 978-602-71306-0-9).
Jakarta, 11 Desember 2014


Menyetujui

Wakil Dekan I Fakultas Teknik

Koordinator Penelitian Fakultas Teknik

Ir. Isdaryanto Iskandar, M.Sc

Prof.Dr.Ir. Maria Angela Kartawidjaja, M.Kom

Ketua Lembaga Penelitian & Pengabdian kepada Masyarakat

Dr. Clara R.P. Ajisusmo, M.Sc

Penelitian 2014

Page 2

PENGANTAR


BIDANG TEKNOLOGI

: Komputasi Numerik

BIDANG STUDI

: Teknik Industri & Teknik Elektro

SPECIALIZATION

: Matematika & Bahasa Pemrograman

BIDANG TERKAIT

: 1. Komputasi Numerik
2. Matematika Teknik
3. Mikroprosesor

RENTANG


: April – Desember 2014
9 (Sembilan) Bulan

PENELITI

: 1. Stephanus Ivan Goenawan, S.Si., M.T.
2. Ferry Rippun, ST., M.T.

LABORATORIUM

: Komputer

UNIT

: Fakultas Teknik

SPONSOR

: Universitas Katolik Ama Jaya Jakarta


Jumlah Anggaran Total
Jumlah Anggaran Tahap-1
Jumlah Anggaran Tahap-2
Jumlah Anggaran Terpakai
Jumlah Anggaran Sisa

:
:
:
:
:

Rp. 6.700.000,Rp. 1.989.515,.
Rp. 2.742.560,.*
Rp. 4.732.075,Rp. 1.267.925,-

Jakarta, 11 Desember 2014

Peneliti I,


St. Ivan Goenawan, S.Si., M.T.
*Keterangan: Hasil penelitian pada pembiayaan tahap-2 telah selesai maka sisa pembiayaan
tahap-3 tidak perlu digunakan lagi.

Penelitian 2014

Page 3

LAPORAN AKHIR
HASIL PENELITIAN FAKULTAS 2014
JUDUL

Implementasi & Analisis Kinerja Metode Perkalian METRIS pada Sistem
Mikroprosesor 8 dan 16 Bit.
Untuk Bilangan Berukuran 8 Bit – 256 Bit

DAFTAR ISI:
LAPORAN AKHIR PENELITIAN FAKULTAS .............................................................. 1
FORMULIR PENGESAHAN LAPORAN AKHIR ..................................................... 2
PENGANTAR ............................................................................................................ 3

DAFTAR ISI: ....................................................................................................................... 4
HASIL PENELITIAN FAKULTAS 2014 ............................................................................. 5
Hasil Percobaan .................................................................................................................... 5
Perkalian 16 bit x 16 bit .............................................................................................. 5
Perkalian 32bit x 32 bit ............................................................................................... 6
Perkalian 64 bit x 64 bit .............................................................................................. 6
Perkalian 128 bit x 128 bit ........................................................................................... 7
Analisa Permasalahan Dalam Penelitian ................................................................................ 7
Kesimpulan ........................................................................................................................... 8
Tindak Lanjut........................................................................................................................ 9
Lampiran .............................................................................................................................. 9
Daftar Pustaka ..................................................................................................................... 17
Makalah Seminar Ritektra 2014 .......................................................................................... 18

Penelitian 2014

Page 4

HASIL PENELITIAN FAKULTAS 2014
Hasil Laporan akhir penelitian adalah berupa paper yang telah diseminarkan pada

Seminar Nasional Riset dan Teknologi Terapan 2014, yang diselenggarakan di Universitas
Sanata Dharma Yogyakarta pada tanggal 17 September 2014.
Paper lengkap seminar terlampir, selain itu dalam perkembangan penelitian yang dilanjutkan
lebih lanjut diperoleh hasil perbandingan waktu perhitungan perkalian metris mulai dari
ukuran 16x16 bit hingg 128x128 bit.
Hasil perbandingan waktu perhitungan perkalian metris untuk ukuran data 16 hingga 128 bit
Perkalian
16bitx16bit
32bitx32bit
64bitx4bit
128bitx128bit

Kecepatan
77uS
481uS
2ms 221uS
10ms174uS

Ukuran memori penyimpan data
8 byte

16 byte+8byte+16byte
32 byte+16byte+8byte+32byte
64byte+32byte+16byte+8byte+64byte

Di bawah ini akan dipaparkan hasil penelitian secara lebih lengkap
Hasil Percobaan
Perkalian 16 bit x 16 bit
Nilai 1 = FFFFh (di simpan di R1 dan R0)
Nilai 2 = FFFFh (di simpan di R3 dan R2)
Hasil = Nilai1 x Nilai2 = FFFE0001h (tersimpan di register R3R2R1R0)

Penelitian 2014

Page 5

Perkalian 32bit x 32 bit
Nilai 1 = FFFFFFFFh (tersimpan di variable nilai132 mulai dari alamat 28h
Nilai 2 = FFFFFFFFh (tersimpan di variable nilai232 mulai dari alamat 2Ch
Hasil = FFFFFFFE00000001h (tersimpan di variable hasil32 mulai dari alamat 20h)


Perkalian 64 bit x 64 bit
Nilai 1 = 0101010101010101h (tersimpan di variable nilai164 mulai dari alamat 40h
Nilai 2 = 0101010101010101h (tersimpan di variable nilai264 mulai dari alamat 48h
Hasil = 00010203040506070807060504030201h (tersimpan di variable hasil64 mulai dari
alamat 30h)

Penelitian 2014

Page 6

Perkalian 128 bit x 128 bit
Nilai 1 = 01010101010101010101010101010101h (tersimpan di variable nilai1128 mulai
dari alamat A0h
Nilai 2 = 01010101010101010101010101010101h (tersimpan di variable nilai2128 mulai
dari alamat B0h
Hasil = 000102030405060708090A0B0C0D0E0F100F0E0D0C0B0A090807060504030201h
(tersimpan di variable hasil128 mulai dari alamat 80h)

Analisa Permasalahan Dalam Penelitian
1. Tidak menemukan program pembanding yang dapat dipakai untuk membandingkan

kinerja program yang dibuat. Program pembanding yang ada dari Loghborn
University hanya melakukan proses perhitungan 16bit x 16 bit. Sedangkan pada
compiler Franklin Software Proview 32 hanya menyediakan proses perkalian 32 bit x
32 bit yaitu perkalian bilangan dengan tipe data long integer.
2. Program hanya bisa dikembangkan sampai 128 bit x 128 bit untuk program yang
hanya memanfaatkan memori internal saja (sebesar 256 byte). Jika ingin
dikembangkan untuk melakukan proses perhitungan lebih dari 128 bit x 128 bit harus
menggunakan memori eksternal. Hal ini dikarenakan proses perkalian metris dengan
nested computation membutuhkan penyimpan memori khusus untuk masing-masing
Penelitian 2014

Page 7

proses perkalian (16bit, 32 bit, 64 bit dan 128 bit). Diperlihatkan pada peta memori
dibawah ini.

Kesimpulan
Penelitian ini mengimplementasikan metode perkalian metris ke dalam program
mikrokontroller. Hasil penelitian menunjukkan program perkalian berhasil direalisasikan
hanya sampai 128x128 bit pada mikrokontroller AT89S52 dengan memori internal sebesar
256 Byte. Hal ini dapat terjadi karena proses perkalian metris menggunakan proses nested
computation mengakibatkan kebutuhan memori bertambah besar seiring pertambahan ukuran
nilai perkalian (16bit, 32 bit, 64 bit dan 128 bit).

Penelitian 2014

Page 8

Kecepatan proses perhitungan untuk bilangan 16 bit sebesar 77uS, untuk 32 bit sebesar
481uS, untuk 64 bit sebesar 2ms 221uS, dan untuk 128 bit sebesar 10ms174uS. Hasil
penelitian ini belum dapat dibandingkan dengan program lain karena tidak ada program
pembanding yang sampai 128 bit. Program pembanding yang ada dari Loughborough
University hanya melakukan proses perhitungan 16bit x 16 bit. Sedangkan pada compiler

Franklin Software Proview 32 hanya menyediakan proses perkalian 32 bit x 32 bit yaitu
perkalian bilangan dengan tipe data long integer.
Tindak Lanjut
Dalam penelitian ini diketahui bahwa untuk nested computation membutuhkan memori
yang semakin besar dengan pertambahan memori yang tidak linear dibandingkan dengan
pertambahan ukuran bilangan yang akan diproses.

Oleh karena itu, untuk menghindari

permasalahan pertambahan memori yang besar tersebut diusulkan agar pada penelitian
lanjutan penyelesaian perhitungan dapat menggunakan proses ATOMIK. Proses perhitungan
ATOMIK adalah proses perhitungan bilangan yang bekerja pada level angka terkecil pada
tiap basis bilangan tertentu. Misal untuk basis bilangan Desimal maka level angka terkecil
adalah mulai dari nol, satu, hingga sembilan. Sedangkan untuk basis bilangan Hexadesimal
maka level angka terkecil adalah mulai dari nol, satu, hingga F. Prose perhitungan Metris
ATOMIK memiliki tantangan yaitu mencari pola perhitungan untuk pola perkalian dengan
ukuran hingga 256 bit dan implementasi ke dalam bentuk program.
Lampiran
Program nested computation 2x2 Variable mulai dari ukuran
16x16 Bit (mul16metris) hingga 128x128 Bit (mul128metris)
org 00
hasil32 equ 20h
nilai132 equ 28h
nilai232 equ 2Ch
hasil64 equ 30h
nilai164 equ 40h
nilai264 equ 48h
hasil128 equ 80h
nilai1128 equ 0A0h
nilai2128 equ 0B0h
temp equ 50h
temp64 equ 60h
temp128 equ 0C0h
cm equ 1Fh
start:
mov r0,#0ffh ;a
Penelitian 2014

mov r1,#0ffh ;b
mov r2,#0ffh ;c
mov r3,#0ffh ;d
call mul16metris
mov a,#0ffh
mov nilai132,a ;a16
mov nilai132+1,a ;a16
mov nilai132+2,a ;b16
mov nilai132+3,a ;b16
mov nilai232,a ;c16
mov nilai232+1,a ;c16
mov nilai232+2,a ;d16
mov nilai232+3,a ;d16
call mul32metris
mov a,#01h
mov nilai164,a
mov nilai164+1,a
mov nilai164+2,a
Page 9

mov nilai164+3,a
mov nilai164+4,a
mov nilai164+5,a
mov nilai164+6,a
mov nilai164+7,a
mov nilai264,a
mov nilai264+1,a
mov nilai264+2,a
mov nilai264+3,a
mov nilai264+4,a
mov nilai264+5,a
mov nilai264+6,a
mov nilai264+7,a
call mul64metris
mov a,#01h
mov R1,#nilai1128+15
mov R7,#16
loop1:
mov @R1,a
dec R1
djnz R7,loop1
mov R1,#nilai2128+15
mov R7,#16

call mul64metris
mov R7,#16
mov R0,#temp128+15
mov R1,#hasil64+15
loop5:
mov a,@R1
mov @R0,a
dec R0
dec R1
djnz r7,loop5
;bc-->32bit x 32bit
mov R7,#8
mov R0,#nilai164+7
mov R1,#nilai1128+15
loop6:
mov a,@R1
mov @R0,a
dec R0
dec R1
djnz r7,loop6

loop2:
mov @R1,a
dec R1
djnz R7,loop2
call mul128metris
selesai: ajmp selesai
mul128metris:
;perkalian metris 128bitx128bit
;menggunakan mulmetris64bit
;bd-->64bit x 64bit
mov R7,#8
mov R0,#nilai164+7
mov R1,#nilai1128+15
loop3:
mov a,@R1
mov @R0,a
dec R0
dec R1
djnz r7,loop3
mov R7,#8
mov R0,#nilai264+7
mov R1,#nilai1128+15
loop4:
mov a,@R1
mov @R0,a
dec R0
dec R1
djnz r7,loop4

Penelitian 2014

mov R7,#8
mov R0,#nilai264+7
mov R1,#nilai1128+7
loop7:
mov a,@R1
mov @R0,a
dec R0
dec R1
djnz r7,loop7
call mul64metris
mov R7,#16
mov R0,#temp128+31
mov R1,#hasil64+15
loop8:
mov a,@R1
mov @R0,a
dec R0
dec R1
djnz r7,loop8
;ad-->32bit x 32bit
mov R7,#8
mov R0,#nilai164+7
mov R1,#nilai1128+7
loop9:
mov a,@R1
mov @R0,a
dec R0
Page 10

dec R1
djnz r7,loop9
mov R7,#8
mov R0,#nilai264+7
mov R1,#nilai1128+15
loop10:
mov a,@R1
mov @R0,a
dec R0
dec R1
djnz r7,loop10

dec R1
djnz r7,loop14

mov R7,#8
mov R0,#hasil128+7
mov R1,#temp128+7
loop15:
mov a,@R1
mov @R0,a
dec R0
dec R1
djnz r7,loop15

call mul64metris
mov R7,#16
mov R0,#temp128+47
mov R1,#hasil64+15
loop11:
mov a,@R1
mov @R0,a
dec R0
dec R1
djnz r7,loop11
;ac-->32bit x 32bit
mov R7,#8
mov R0,#nilai164+7
mov R1,#nilai1128+7
loop12:
mov a,@R1
mov @R0,a
dec R0
dec R1
djnz r7,loop12
mov R7,#8
mov R0,#nilai264+7
mov R1,#nilai1128+7
loop13:
mov a,@R1
mov @R0,a
dec R0
dec R1
djnz r7,loop13
call mul64metris
mov R7,#16
mov R0,#temp128+63
mov R1,#hasil64+15
loop14:
mov a,@R1
mov @R0,a
dec R0
Penelitian 2014

mov R1,#temp128+8
mov a,@R1
mov R5,a
mov R1,#temp128+32
mov a,@R1
;yo+xo+w2+0
mov R1,#temp128+16
mov b,@R1
mov r6,#0
call add3byte1
mov R1,#hasil128+8
mov @R1,a
mov a,r7
;zo+y2+x2+cm2
mov r6,a
mov R1,#temp128+9
mov a,@R1
mov R5,a
mov R1,#temp128+33
mov a,@R1
;yo+xo+w2+0
mov R1,#temp128+17
mov b,@R1
call add3byte1
mov R1,#hasil128+9
mov @R1,a
mov a,r7
;zo+y2+x2+cm2
mov r6,a
mov R1,#temp128+10
mov a,@R1
mov R5,a
mov R1,#temp128+34
mov a,@R1
;yo+xo+w2+0
mov R1,#temp128+18
mov b,@R1
call add3byte1
mov R1,#hasil128+10
mov @R1,a
mov a,r7
;zo+y2+x2+cm2
mov r6,a
mov R1,#temp128+11
mov a,@R1
Page 11

mov R5,a
mov R1,#temp128+35
mov a,@R1
;yo+xo+w2+0
mov R1,#temp128+19
mov b,@R1
call add3byte1
mov R1,#hasil128+11
mov @R1,a
mov a,r7
;zo+y2+x2+cm2
mov r6,a
mov R1,#temp128+12
mov a,@R1
mov R5,a
mov R1,#temp128+36
mov a,@R1
;yo+xo+w2+0
mov R1,#temp128+20
mov b,@R1
call add3byte1
mov R1,#hasil128+12
mov @R1,a
mov a,r7
;zo+y2+x2+cm2
mov r6,a
mov R1,#temp128+13
mov a,@R1
mov R5,a
mov R1,#temp128+37
mov a,@R1
;yo+xo+w2+0
mov R1,#temp128+21
mov b,@R1
call add3byte1
mov R1,#hasil128+13
mov @R1,a
mov a,r7
;zo+y2+x2+cm2
mov r6,a
mov R1,#temp128+14
mov a,@R1
mov R5,a
mov R1,#temp128+38
mov a,@R1
;yo+xo+w2+0
mov R1,#temp128+22
mov b,@R1
call add3byte1
mov R1,#hasil128+14
mov @R1,a
mov a,r7
;zo+y2+x2+cm2
mov r6,a
mov R1,#temp128+15
mov a,@R1
mov R5,a
mov R1,#temp128+39
mov a,@R1
;yo+xo+w2+0
mov R1,#temp128+23
Penelitian 2014

mov b,@R1
call add3byte1
mov R1,#hasil128+15
mov @R1,a
;-----bug
mov a,r7
;zo+y2+x2+cm2
mov r6,a
mov R1,#temp128+48
mov a,@R1
mov R5,a
mov R1,#temp128+40
mov a,@R1
;yo+xo+w2+0
mov R1,#temp128+24
mov b,@R1
call add3byte1
mov R1,#hasil128+16
mov @R1,a
mov a,r7
;zo+y2+x2+cm2
mov r6,a
mov R1,#temp128+49
mov a,@R1
mov R5,a
mov R1,#temp128+41
mov a,@R1
;yo+xo+w2+0
mov R1,#temp128+25
mov b,@R1
call add3byte1
mov R1,#hasil128+17
mov @R1,a
mov a,r7
;zo+y2+x2+cm2
mov r6,a
mov R1,#temp128+50
mov a,@R1
mov R5,a
mov R1,#temp128+42
mov a,@R1
;yo+xo+w2+0
mov R1,#temp128+26
mov b,@R1
call add3byte1
mov R1,#hasil128+18
mov @R1,a
mov a,r7
;zo+y2+x2+cm2
mov r6,a
mov R1,#temp128+51
mov a,@R1
mov R5,a
mov R1,#temp128+43
mov a,@R1
;yo+xo+w2+0
mov R1,#temp128+27
mov b,@R1
call add3byte1
mov R1,#hasil128+19
Page 12

mov @R1,a
mov a,r7
;zo+y2+x2+cm2
mov r6,a
mov R1,#temp128+52
mov a,@R1
mov R5,a
mov R1,#temp128+44
mov a,@R1
;yo+xo+w2+0
mov R1,#temp128+28
mov b,@R1
call add3byte1
mov R1,#hasil128+20
mov @R1,a
mov a,r7
;zo+y2+x2+cm2
mov r6,a
mov R1,#temp128+53
mov a,@R1
mov R5,a
mov R1,#temp128+45
mov a,@R1
;yo+xo+w2+0
mov R1,#temp128+29
mov b,@R1
call add3byte1
mov R1,#hasil128+21
mov @R1,a
mov a,r7
;zo+y2+x2+cm2
mov r6,a
mov R1,#temp128+54
mov a,@R1
mov R5,a
mov R1,#temp128+46
mov a,@R1
;yo+xo+w2+0
mov R1,#temp128+30
mov b,@R1
call add3byte1
mov R1,#hasil128+22
mov @R1,a
mov a,r7
;zo+y2+x2+cm2
mov r6,a
mov R1,#temp128+55
mov a,@R1
mov R5,a
mov R1,#temp128+47
mov a,@R1
;yo+xo+w2+0
mov R1,#temp128+31
mov b,@R1
call add3byte1
mov R1,#hasil128+23
mov @R1,a
mov R1,#temp128+56
mov a,@R1
;z2+cm4
Penelitian 2014

add a,r7
mov R1,#hasil128+24
mov @R1,a
mov R1,#temp128+57
mov a,@R1
;z2+cm4
addc a,#0
mov R1,#hasil128+25
mov @R1,a
mov R1,#temp128+58
mov a,@R1
;z2+cm4
addc a,#0
mov R1,#hasil128+26
mov @R1,a
mov R1,#temp128+59
mov a,@R1
;z2+cm4
addc a,#0
mov R1,#hasil128+27
mov @R1,a
mov R1,#temp128+60
mov a,@R1
;z2+cm4
addc a,#0
mov R1,#hasil128+28
mov @R1,a
mov R1,#temp128+61
mov a,@R1
;z2+cm4
addc a,#0
mov R1,#hasil128+29
mov @R1,a
mov R1,#temp128+62
mov a,@R1
;z2+cm4
addc a,#0
mov R1,#hasil128+30
mov @R1,a
mov R1,#temp128+63
mov a,@R1
;z2+cm4
addc a,#0
mov R1,#hasil128+31
mov @R1,a

;---belum--ret

mul64metris:
;perkalian metris 64bitx64bit
;menggunakan mulmetris32bit
;bd-->32bit x 32bit
mov nilai132,nilai164+4
mov nilai132+1,nilai164+5
mov nilai132+2,nilai164+6

;b

Page 13

mov nilai132+3,nilai164+7 ;b
mov nilai232,nilai264+4
mov nilai232+1,nilai264+5
mov nilai232+2,nilai264+6
mov nilai232+3,nilai264+7
call mul32metris
mov temp64,hasil32
;wo
mov temp64+1,hasil32+1
;w1
mov temp64+2,hasil32+2
;w2
mov temp64+3,hasil32+3
;w3
mov temp64+4,hasil32+4
;w4
mov temp64+5,hasil32+5
;w5
mov temp64+6,hasil32+6
;w6
mov temp64+7,hasil32+7
;w7
;bc-->32bit x 32bit
mov nilai132,nilai164+4
mov nilai132+1,nilai164+5
mov nilai132+2,nilai164+6
mov nilai132+3,nilai164+7
mov nilai232,nilai264
mov nilai232+1,nilai264+1
mov nilai232+2,nilai264+2
mov nilai232+3,nilai264+3
call mul32metris
mov temp64+8,hasil32
mov temp64+9,hasil32+1
mov temp64+10,hasil32+2
mov temp64+11,hasil32+3
mov temp64+12,hasil32+4
mov temp64+13,hasil32+5
mov temp64+14,hasil32+6
mov temp64+15,hasil32+7
;ad-->32bit x 32bit
mov nilai132,nilai164
mov nilai132+1,nilai164+1
mov nilai132+2,nilai164+2
mov nilai132+3,nilai164+3
mov nilai232,nilai264+4
mov nilai232+1,nilai264+5
mov nilai232+2,nilai264+6
mov nilai232+3,nilai264+7
call mul32metris
mov temp64+16,hasil32
mov temp64+17,hasil32+1
mov temp64+18,hasil32+2
mov temp64+19,hasil32+3
mov temp64+20,hasil32+4
mov temp64+21,hasil32+5
mov temp64+22,hasil32+6
mov temp64+23,hasil32+7
;ac-->32bit x 32bit
mov nilai132,nilai164
mov nilai132+1,nilai164+1
mov nilai132+2,nilai164+2
mov nilai132+3,nilai164+3
mov nilai232,nilai264
mov nilai232+1,nilai264+1
Penelitian 2014

;d
;d

mov nilai232+2,nilai264+2
mov nilai232+3,nilai264+3
call mul32metris
mov temp64+24,hasil32
mov temp64+25,hasil32+1
mov temp64+26,hasil32+2
mov temp64+27,hasil32+3
mov temp64+28,hasil32+4
mov temp64+29,hasil32+5
mov temp64+30,hasil32+6
mov temp64+31,hasil32+7

;c
;wo
;w1
;w2
;w3
;w4
;w5
;w6
;w7

mov hasil64,temp64
mov hasil64+1,temp64+1
mov hasil64+2,temp64+2
mov hasil64+3,temp64+3

;b
;b
;c
;c

mov a,temp64+16
mov b,temp64+8
mov r0,temp64+4
mov r1,#0
call add3byte
mov hasil64+4,a

;yo+xo+w2+0

mov a,r7
;y1+x1+w3+cm1
mov r1,a
mov a,temp64+17
mov b,temp64+9
mov r0,temp64+5
call add3byte
mov hasil64+5,a

;wo
;w1
;w2
;w3
;w4
;w5
;w6
;w7

;a
;a
;d
;d
;wo
;w1
;w2
;w3
;w4
;w5
;w6
;w7

mov a,r7
mov r1,a
mov a,temp64+18
mov b,temp64+10
mov r0,temp64+6
call add3byte
mov hasil64+6,a

;yo+xo+w2+0

mov a,r7
;y1+x1+w3+cm1
mov r1,a
mov a,temp64+19
mov b,temp64+11
mov r0,temp64+7
call add3byte
mov hasil64+7,a
;---belum---

;a
;a
;c

mov a,r7
;zo+y2+x2+cm2
mov r1,a
mov a,temp64+20
mov b,temp64+12
mov r0,temp64+24
call add3byte
Page 14

mov r2,nilai232+2
mov r3,nilai232+3
call mul16metris
mov temp,r0
;wo
mov temp+1,r1
;w1
mov temp+2,r2
;w2
mov temp+3,r3
;w3

mov hasil64+8,a
mov a,r7
;z1+y3+x3+cm3
mov r1,a
mov a,temp64+21
mov b,temp64+13
mov r0,temp64+25
call add3byte
mov hasil64+9,a

;bc-->16bit x 16bit
mov r0,nilai132+2
mov r1,nilai132+3
mov r2,nilai232
mov r3,nilai232+1
call mul16metris
mov temp+4,r0
mov temp+5,r1
mov temp+6,r2
mov temp+7,r3

mov a,r7
;zo+y2+x2+cm2
mov r1,a
mov a,temp64+22
mov b,temp64+14
mov r0,temp64+26
call add3byte
mov hasil64+10,a

;ad-->16bit x 16bit
mov r0,nilai132
mov r1,nilai132+1
mov r2,nilai232+2
mov r3,nilai232+3
call mul16metris
mov temp+8,r0
mov temp+9,r1
mov temp+10,r2
mov temp+11,r3

mov a,r7
;z1+y3+x3+cm3
mov r1,a
mov a,temp64+23
mov b,temp64+15
mov r0,temp64+27
call add3byte
mov hasil64+11,a

mov a,temp64+28
add a,r7
mov hasil64+12,a

;z2+cm4

mov a,temp64+29
addc a,#0
mov hasil64+13,a

;z3+ca

mov a,temp64+30
addc a,#0
mov hasil64+14,a

;z2+cm4

mov a,temp64+31
addc a,#0
mov hasil64+15,a

;z3+ca

;c
;x0
;x1
;x2
;x3

;a
;d
;y0
;y1
;y2
;y3

;a
;c
;z0
;z1
;z2
;z3

mov a,temp+8
;yo+xo+w2+0
mov b,temp+4
mov r0,temp+2
mov r1,#0
call add3byte
mov hasil32+2,a
mov a,r7
;y1+x1+w3+cm1
mov r1,a
mov a,temp+9
mov b,temp+5
mov r0,temp+3
call add3byte
mov hasil32+3,a

MUL32METRIS:
;perkalian metris 32bitx32bit
;menggunakan mulmetris16bit

Penelitian 2014

;b

mov hasil32,temp
mov hasil32+1,temp+1

;---belum--ret

;bd-->16bit x 16bit
mov r0,nilai132+2
mov r1,nilai132+3

;ac-->16bit x 16bit
mov r0,nilai132
mov r1,nilai132+1
mov r2,nilai232
mov r3,nilai232+1
call mul16metris
mov temp+12,r0
mov temp+13,r1
mov temp+14,r2
mov temp+15,r3

;d

;b
Page 15

lanjut1:

mov a,r7
;zo+y2+x2+cm2
mov r1,a
mov a,temp+10
mov b,temp+6
mov r0,temp+12
call add3byte
mov hasil32+4,a

add a,r6 ;wb+xa+ya
jnc end_add3a
inc r7
;cm1 di r7

mov a,r7
;z1+y3+x3+cm3
mov r1,a
mov a,temp+11
mov b,temp+7
mov r0,temp+13
call add3byte
mov hasil32+5,a
mov a,temp+14
add a,r7
mov hasil32+6,a

;z2+cm4

mov a,temp+15 ;z3+ca
addc a,#0
mov hasil32+7,a

end_add3a:
push acc ;-->h1
;-------------------mov a,b
mov b,r7
clr c
mov r7,#0
add a,b
;cm1+xb
jnc lanjut2
inc r7
lanjut2:
add a,r5
;cm1+xb+yb
jnc end_add3b
inc r7
end_add3b:
mov r5,a ; hasil sementara cm1+xb+yb
;ac
mov a,r1
mov b,r3
mul ab
add a,r5 ;cm1+xb+yb+za
jnc lanjut3
inc r7

ret

lanjut3:
push acc
mov a,b
add a,r7
mov r3,a
pop 02
pop 01
pop 00

MUL16METRIS:
;perkalian metris 16 bit
;ab x cd = ac || ad + bc || bd
;input ab = r1r0, cd = r3r2
;output = r3r2r1r0
;bd
mov a,r0
mov b,r2
mul ab
push acc ;wa --> h0
mov r4,b ;wb
;ad+bc
mov a,r1 ;ad
mov b,r2
mul ab
mov r5,b ;yb
mov r6,a ;ya
mov a,r0 ;bc
mov b,r3
mul ab
;xb & xa
;-------------------;add 3byte
clr c
;ya+xa+wb
mov r7,#0
add a,r4
;wb+xa
jnc lanjut1
inc r7
Penelitian 2014

ret
add3byte:
; menjumlahkan 3 byte bilangan + carry in
; bilangan ada di a,b,r0
; carry in di r1
; hasil di a, carry out di r7
clr c
mov r7,#0
add a,b
jnc lanjutx1
inc r7
lanjutx1:
add a,r0
jnc lanjutx2
inc r7
lanjutx2:
add a,r1
jnc selesai
inc r7
selesai:
ret

Page 16

add3byte1:
; menjumlahkan 3 byte bilangan + carry in
; bilangan ada di a,b,r5
; carry in di r6
; hasil di a, carry out di r7
clr c
mov r7,#0
add a,b
jnc lanjutx11
inc r7

lanjutx11:
add a,r5
jnc lanjutx21
inc r7
lanjutx21:
add a,r6
jnc selesai1
inc r7
selesai1:
ret

Daftar Pustaka
[1] Goenawan St. Ivan, Alexander A.S., “Metris: Perkalian Ajaib,” Kawan Pustaka 2007.
[2] Goenawan St. Ivan, “Metris:Mencetak Einstein”, Metris Pustaka 2008.
[3] Goenawan St. Ivan, “Metris: Berhitung Super Cepat”, Media Pusindo 2012.
[4] Goenawan, St. Ivan. Maret 2000. Metode Horisontal (Metris), Metris. Vol.1. Jakarta,
Unika Atma Jaya.
[5] Mazidi. M.A, Mazidi. J.G., “The 80x86 IBM PC Compatible Computers Vol I&II –
Assembly Language Design and Interfacing”, Prentice Hall International. 1993
[6] Predko. M., “Programming and Customizing The 8051 Microcontroller”, Mc Graw Hill,
1999
[7] Victor P. Nelson et al., “Digital Cicuit Analysis & Design,” Prentice Hall 1995, (22-36)

Penelitian 2014

Page 17

Makalah Seminar Ritektra 2014
Judul :

Prosedur Komputasi Bertingkat Metris Untuk Pemrograman
Perkalian Pada Sistem Mikroprosesor

Penelitian 2014

Page 18

Dokumen yang terkait

Analisis Komparasi Internet Financial Local Government Reporting Pada Website Resmi Kabupaten dan Kota di Jawa Timur The Comparison Analysis of Internet Financial Local Government Reporting on Official Website of Regency and City in East Java

19 819 7

FREKWENSI PESAN PEMELIHARAAN KESEHATAN DALAM IKLAN LAYANAN MASYARAKAT Analisis Isi pada Empat Versi ILM Televisi Tanggap Flu Burung Milik Komnas FBPI

10 189 3

Analisis Sistem Pengendalian Mutu dan Perencanaan Penugasan Audit pada Kantor Akuntan Publik. (Suatu Studi Kasus pada Kantor Akuntan Publik Jamaludin, Aria, Sukimto dan Rekan)

136 695 18

Analisis Penyerapan Tenaga Kerja Pada Industri Kerajinan Tangan Di Desa Tutul Kecamatan Balung Kabupaten Jember.

7 76 65

Analisis Pertumbuhan Antar Sektor di Wilayah Kabupaten Magetan dan Sekitarnya Tahun 1996-2005

3 59 17

Analisis tentang saksi sebagai pertimbangan hakim dalam penjatuhan putusan dan tindak pidana pembunuhan berencana (Studi kasus Perkara No. 40/Pid/B/1988/PN.SAMPANG)

8 102 57

Analisis terhadap hapusnya hak usaha akibat terlantarnya lahan untuk ditetapkan menjadi obyek landreform (studi kasus di desa Mojomulyo kecamatan Puger Kabupaten Jember

1 88 63

Diskriminasi Daun Gandarusa (Justicia gendarrusa Burm.f.) Asal Surabaya, Jember dan Mojokerto Menggunakan Metode Elektroforesis

0 61 6

Diskriminasi Perempuan Muslim dalam Implementasi Civil Right Act 1964 di Amerika Serikat

3 55 15

Improving the Eighth Year Students' Tense Achievement and Active Participation by Giving Positive Reinforcement at SMPN 1 Silo in the 2013/2014 Academic Year

7 202 3