Flow Program Modulo dengan Metode Pengurangan

Berikut ini adalah flow program modulo dengan menggunakan metode pengurangan bilangan X terhadap bilangan Y dalam bahasa assembly


==============
ISTILAH-ISTILAH
==============
REGISTER_HASIL, register  R0:R1
X_PULUHAN, register R2
X_SATUAN, register R3
Y_PULUHAN, register R4
Y_SATUAN, register R5


==============
FLOW PROGRAM
==============
Start:
CEK PULUHAN, apakah lebih besar / sama dengan puluhan X?
> Jika YA, lanjut CEK SATUAN
> Jika TIDAK, langsung tulis Register_Hasil dengan bilangan X, FINISH_PROGRAM

CEK SATUAN, apakah lebih besar satuan X?
> Jika YA, lanjutkan ke ke PROSES_PENGURANGAN bilangan X
> Jika TIDAK, CEK PULUHAN_AGAIN

CEK PULUHAN_AGAIN, apakah puluhan X sama besar?
> Jika YA, langsung tulis Register_Hasil dengan bilangan X, FINISH_PROGRAM
> Jika TIDAK, lanjutkan ke PROSES_PENGURANGAN bilangan X, FINISH_PROGRAM

PROSES PENGURANGAN:
> Pastikan set Carry menjadi 1 sebelum melakukan instruksi pengurangan (SUB)
> Kurangkan puluhan X dengan puluhan Y, update puluhan X
> Pastikan set Carry menjadi 1
> Kurangkan satuan X dengan satuan Y, update satuan Y
> perhatikan jika satuan X lebih kecil daripada satuan Y, maka satuan X akan meminjam 1 nilai kepada puluhan X

Contoh:
10
 1
--- -
0F

*Jika terjadi proses peminjaman seperti contoh diatas, maka anda harus melakukan pengurangan X_PULUHAN secara manual (dapat menggunakan istruksi DAC)

Setelah terjadi proses pengurangan, maka anda harus kembali CEK, apakah bilangan X sudah lebih kecil dari bilangan Y

Jika sudah, maka hasil X modulo Y adalah nilai bilangan X yang sudah dilakukan pengurangan berkali kali oleh Y sampai bilangan X lebih kecil dari bilangan Y.



Comments

Post a Comment

Popular posts from this blog

Pengalaman Kuliah Semester 1 di Ilmu Komputer UNJ (part 1)

Flow Program Perkalian 8-bit pada Bahasa Assembly

Sedikit Tips agar Rapat menjadi Lebih Efektif dan Efisien