Program yang kami buat adalah program kalkulator dengan operasi aritmatika sederhana
yaitu penjumlahan,pengurangan,perkalian dan pembagian. Pada program ini, terdapat
variabel-variabel seperti ndigit,sisa,pinjam,negatif,positif,mode,operator,input1,input2,output
dan msg1-9. ndigit untuk menentukan banyaknya digit yang ingin dioperasikan. sisa untuk
menentukan carry pada saat melakukan operasi penjumlahan. pinjam untuk menentukan
borrow pada saat melakukan operasi pengurangan. negatif dan positif untuk menentukan
apakah bilangan pertama lebih besar atau lebih kecil dari bilangin kedua pada saat operasi
pengurangan. mode untuk menentukan mode mana yang dipilih oleh user, hanya ada 2 mode
pada program ini yaitu mode 0 untuk melakukan operasi penjumlahan dan pengurangan serta
mode 1 untuk melakukan operasi perkalian dan pembagian yang terbatas hanya 2 digit saja.
Mode ini dibagi 2 karena keterbatasan dalam membuat program. Pada operasi penjumlahan
dan pengurangan digit yang dapat dioperasikan dapat lebih dari 1 karena proses yang
dijalankan sama dengan proses 2 digit bilangan. Pada operasi penjumlahan dan pengurangan,
input bilangan 1 dan bilangan 2 dimasukkan ke dalam register extra segment dengan offset
address yang berbeda. Untuk proses perkalian dan pembagian, kelompok kami hanya terbatas
pada 2 digit saja karena proses pada bilangan lebih dari 2 digit lebih rumit. Operator
digunakan untuk menentukan operasi mana yang akan dilakukan dan tentu saja operasinya
harus sesuai dengan mode yang telah dipilih. Input1,Input2,Output digunakan untuk
menyimpan bilangan input dan output untuk operasi perkalian dan pembagian saja. Msg1-9
digunakan untuk menampilkan pesan instruksi cara menggunakan program.
Pada program ini terdapat beberapa macro seperti macro minta input,display, display2, enter,
tambah, kurang, compare, kali, bagi. Macro minta input digunakan untuk meminta input pada
user. Pada macro ini digunakan interrupt 21h dengan mode 1 yaitu untuk meminta sekaligus
menampilkan input. Macro display digunakan untuk menampilkan hasil operasi baik untuk
hasil positif maupun untuk hasil negative. Pada macro ini terdapat mode pembanding yaitu
cmp DL,10 yang digunakan untuk menentukan apakah terdapat tanda negatif atau tidak pada
hasil operasi. Macro Enter digunakan untuk membuat enter pada hasil output di layar. Macro
tambah untuk melakukan operasi penjumlahan. Pada macro tambah terdapat parameter
digit1,digit2 yang merupakan bilangan yang ingin dioperasikan, carry yang digunakan untuk
menentukan apakah ada carry atau tidak dari operasi pada digit sebelumnya, hasil digunakan
untuk menyimpan hasil perhitungan. Macro kurang untuk melakukan operasi pengurangan.
Pada macro ini terdapat parameter digit1,digit2 yang merupakan bilangan yang ingin
dioperasikan, utang menentukan apakah terdapat borrow pada operasi digit sebelumnya, hasil
untuk menyimpan hasil dan sign yang digunakan untuk menentukan apakah bilangan yang
dikurangi lebih besar atau kecil daripada bilangan pengurangnya. Macro compare merupakan
macro bantuan untuk melakukan operasi pengurangan. Macro ini digunakan untuk
menentukan apakah bilangan 1 lebih kecil atau besar daripada bilangan 2. Macro bagi untuk
operasi pembagian. Macro kali untuk operasi perkalian. Paramater yang ada pada macro bagi
dan perkalian mirip dengan macro tambah dan kurang.
Proses kerja masing-masing macro :
Hasil Simulasi :
Start
Mode 0
Mode 1