ngeSPIM lagi

Teringat dulu pas kuliah Arsitektur dan Organisasi Komputer (Orkom), ada tugas ngeSPIM. Apa tuh?

NgeSPIM berarti ngoding dalam bahasa assembly MIPS. Kenapa namanya ngeSPIM? Karena software yang digunakan itu adalah emulator MIPS, SPIM. Enaknya assembly MIPS itu, instruction setnya gak terlalu banyak, jadi gak terlalu susah untuk dihafal seperti assemblynya IA-32. Sejak tahun 2002 kalo gak salah, tugas Orkom pasti ada tugas ngeSPIM.

Dan kuliah S2 ini ternyata ada mata kuliah lanjutannya, Arsitektur Komputer Lanjut (Arslan). Kuliah pembantaian. Gila, bukunya itu tebelnya bukan main. Buat anak2006 yang ngerasa buku mata kuliah Sistem Operasi tebel banget, ada lagi loh yang bener-bener tebel. Dan konsepnya jauh lebih mendalam daripada kuliah Orkom yang dulu. Tentang optimasi compiler , Bus, I/O, dll 😆

Tugasnya pun ternyata sama, suruh ngeSPIM lagi. Gila, udah berapa tahun gak pernah ngoding MIPS. Untungnya, tugasnya rada GJ gitu deeh…. Suruh bikin program dengan fungsi aritmatika… Satu kelas, gak boleh ada yang sama programnya antar kelompok.

Akhirnya gw ngetag program ngitung GCD dengan algoritma Euclidean.

# Greatest Common Divisor
# Mencari Faktor Persekutuan Terbesar dengan menggunakan
# algoritma Euclidean

# Kode program
.text

main:

# Menampilkan string ke layar
la $a0, str1
li $v0, 4
syscall

# Mengambil input bilangan pertama dari keyboard
li $v0, 5
syscall
move $t0, $v0

# Menampilkan string ke layar
la $a0, str2
li $v0, 4
syscall

# Mengambil input bilangan kedua dari keyboard
li $v0, 5
syscall
move $t1, $v0

# Menampilkan string ke layar
la $a0, str3
li $v0, 4
syscall

# Menghitung GCD
beqz $t0, exit1

loop :
beqz $t1, endloop
bgt $t0, $t1, branch1
sub $t1, $t1, $t0
b loop
branch1 :
sub $t0, $t0, $t1
b loop

endloop :
move $a0, $t0
li $v0, 1
syscall
b exit

exit1 :
move $a0, $t1
li $v0, 1
syscall
b exit

exit :
# Keluar dari program
li $v0, 10
syscall

# Data
.data
str1: .asciiz "Masukkan bilangan pertama\n"
str2: .asciiz "Masukkan bilangan kedua\n"
str3: .asciiz "FPB dari keduanya adalah\n"

# gcd.asm

Ternyata masih bisa, hehehe.

One thought on “ngeSPIM lagi”

Leave a Reply