Last Updated on 13 years by Hafizh Herdi
Kode yang ada disini dibuat menggunakan SPIM Assembly, atau bisa juga disebut dengan MIPS. Ini hanyalah sebuah operasi dasar, tapi kalau kamu bilang soal Assembly, hal yang dasar pun terkadang menjadi susah.
Program ini akan meminta inputan dua buah bilangan, dan kemudian menghitung jumlah, hasil bagi dan sisa bagi. Dalam Assembly, operator div
dapat menyelesaikan operasi hasil bagi dan sisa bagi sekaligus, dan kita hanya perlu memindahkannya dengan mfhi
dan mflo
.
Kode program, simpan dengan nama file hitung.asm
.data teks1:.asciiz "nBilangan pertama : " teks2:.asciiz "nBilangan kedua : " teks3:.asciiz "nJumlah kedua bilangan : " teks4:.asciiz "nHasil bagi kedua bilangan : " teks5:.asciiz "nSisa bagi kedua bilangan : " .text .globl main main : la $a0, teks1 #masukkan teks1 ke a0 li $v0, 4 syscall #baca bilangan pertama li $v0, 5 syscall move $t0, $v0 #print teks 2 la $a0, teks2 li $v0, 4 syscall #baca bilangan kedua li $v0, 5 syscall move $t1, $v0 #menghitung jumlah add $t2, $t0, $t1 #menghitung mod dan div div $t1, $t0 mfhi $t3 mflo $t5 #print teks jumlah la $a0, teks3 li $v0, 4 syscall #print jumlah move $a0, $t2 li $v0, 1 syscall #print teks hasil bagi la $a0, teks4 li $v0, 4 syscall #print hasil bagi move $a0, $t5 li $v0, 1 syscall #print teks sisa bagi la $a0, teks5 li $v0, 4 syscall #print sisa bagi move $a0, $t3 li $v0, 1 syscall exit : jr$ra
Program pembanding yang menggunakan bahasa Java, simpan dengan nama file Hitung.java
import java.util.Scanner; class Hitung { public static void main(String... args) { Scanner s = new Scanner(System.in); int bil1 = 0; int bil2 = 0; int jum = 0; int bag = 0; int mods = 0; System.out.print("Bilangan pertama : "); bil1 = s.nextInt(); System.out.print("Bilangan kedua : "); bil2 = s.nextInt(); jum = bil1 + bil2; bag = bil1 / bil2; mods = bil1 % bil2; System.out.println("Hasil jumlah kedua bilangan : " + jum); System.out.println("Hasil bagi kedua bilangan " + bag); System.out.println("Sisa bagi kedua bilangan " +mods); } }