Anda di halaman 1dari 11

Modul Praktikum Organisasi dan Arsitektur Komputer

Modul 1
Pengenalan Pemrograman Assembly pada MIPS
menggunakan MARS
Mata Kuliah Organisasi dan Arsitektur Komputer
Teknik Informatika
Institut Teknologi Sumatera

Author: I Wayan Wiprayoga Wisesa

Revisi: 24 September 2019

1
Modul Praktikum Organisasi dan Arsitektur Komputer

A. Pengenalan MIPS dan Bahasa Assembly MIPS


Microprocessor without Interlocked Pipeline Stages atau MIPS merupakan sebuah
arsitektur prosesor yang instruksinya berbasiskan RISC ISA (Reduced Instruction
Set Computer Instruction Set Architecture). Instruksi MIPS terdiri dari beberapa
instruksi dasar yang disebut operational code (opcode). Kita dapat melakukan
berbagai macam operasi dasar seperti, penjumlahan, pengurangan, dan perkalian
terhadap bilangan. Set instruksi MIPS memiliki format tertentu dalam melakukan
operasi.

Berikut ini merupakan rangkuman format instruksi MIPS (yang kita pelajari pada
materi mengenai bahasa mesin).

R-Format

Bentuk umumnya adalah:

opcode RS RT RD shamt funct

6-bit 5-bit 5-bit 5-bit 5-bit 6-bit

Opcode (operational code) merupakan representasi bahasa mesin dari instruksi.

RS merupakan register operand (sumber) pertama yang mengandung nilai yang


dioperasikan

RT merupakan register operand (sumber) kedua.

RD merupakan register tujuan untuk menympan hasil operasi dari RS dan RT.

Shamt merepresentasikan berapa bit RS di geser (bernilai bukan nol jika operasi
adalah shift)

Funct merupakan representasi tambahan dari opcode untuk menentukan operasi


lanjut

I-Format

Bentuk umumnya adalah:

opcode RS RT Immediate

6-bit 5-bit 5-bit 16-bit

Opcode (deskripsi sama dengan R-Format)

RS merupakan register sumber yang mengandung nilai yang dioperasikan

RT merupakan register tujuan tempat menyimpan hasil operasi

2
Modul Praktikum Organisasi dan Arsitektur Komputer

Immediate adalah nilai bilangan konstanta 16-bit dalam representasi two’s


complement

J-Format

Bentuk umumnya adalah:

Opcode Target Address

6-bit 26-bit

Opcode (deskripsi sama dengan R-Format)

Target Address merupakan 26-bit alamat dalam program dimana kontrol alur
program akan diteruskan

B. Daftar Instruksi MIPS

Silakan kunjungi laman:

https://inst.eecs.berkeley.edu/~cs61c/resources/MIPS_Green_Sheet.pdf

Dan

https://www.assemblylanguagetuts.com/mips-instruction-set-opcodes-
reference-sheet/
Untuk referensi mengenai daftar instruksi dasar pada MIPS

C. Program MARS

Aplikasi MARS merupakan sebuah IDE (Integrated Development Environment)


untuk pemrograman bahasa assembly menggunakan MIPS. Aplikasi ini ditujukan
untuk memudahkan kegiatan pembelajaran matakuliah Organisasi dan Arsitektur
Komputer yang mengacu pada buku karangan Patterson dan Hennessy. Untuk
menjalankan aplikasi MARS, diperlukan komputer dengan JRE (Java Runtime
Environment) telah terpasang pada sistem.Jika JRE belum terpasang pada
komputer, silakan merujuk pada alamat berikut untuk proses pemasangan JRE
pada sistem anda:

https://stackoverflow.com/questions/52511778/how-to-install-openjdk-11-
on-windows
Untuk file instalasi openJDK 13 dapat diunduh di halaman berikut:

3
Modul Praktikum Organisasi dan Arsitektur Komputer

https://jdk.java.net/13/

Setelah openJDK berhasil dipasang pada sistem, unduh program MARS pada
alamat berikut:

http://courses.missouristate.edu/kenvollmar/mars/download.htm

Versi termutakhir (per September 23, 2019) dari aplikasi MARS adalah versi
4.5 yang terakhir kali di-update pada Agustus 2014.

Setelah program diunduh (dalam format JAR) dan disimpan pada folder
yang anda inginkan, jalankan program dengan langkah sebagai berikut
(pada Windows 10):

1. Buka lokasi folder dimana file MARS (format JAR) disimpan, misalnya
D:/Data/MARS/

2. Tekan tombol Start, ketik CMD lalu tekan enter

3. Setelah muncul command line windows, arahkan lokasi anda menuju


folder dimana program MARS disimpan yaitu dengan mengetik perintah
pada command line:
D:

Tekan enter. Jika file disimpan difolder D:/Data/MARS/, ketik perintah


berikut untuk mengarahkan command line ke lokasi program MARS:
cd Data/MARS

Tekan enter.

4. Jika anda sudah berada pada folder aplikasi MARS, pastikan bahwa file
aplikasi MARS anda ada di dalamnya dengan perintah
dir

Tekan enter. Jika ada entri seperti MARS4_5.jar terdaftar, maka lokasi
folder anda sudah benar.

5. Jalankan program MARS dengan mengetik perintah berikut pada


command line:
java -jar MARS4_5.jar

4
Modul Praktikum Organisasi dan Arsitektur Komputer

6. Tekan enter. Tunggu program MARS selesai melakukan loading dan


kemudian akan muncul tampilan antarmuka program MARS seperti yang
ditunjukkan pada Gambar 1 berikut ini:

Gambar 1 Tampilan antarmuka program MARS

D. Antarmuka Program

Berdasarkan referensi Gambar 1, bagian antarmuka program MARS dapat


diuraikan sebagai berikut:

Bagian A

Merupakan tempat untuk meyunting dan melihat alur eksekusi instruksi program
assembly. Terdapat dua tab pada bagian ini, yaitu tab Edit dan Execute. Tab Edit
digunakan untuk menyunting kode instruksi dalam program. Tab Execute otomatis
akan muncul jika kita telah melakukan proses Assemble (tombol F3) pada source
code program, seperti yang ditunjukkan oleh Gambar 2. Tab ini berguna untuk
melihat data mengenai instruksi mesin dari instruksi assembly (kolom Code), lokasi
dimana instruksi disimpan dalam memori (kolom Address), dan sebagai petunjuk
alur eksekusi program (kolom Basic).

5
Modul Praktikum Organisasi dan Arsitektur Komputer

Gambar 2 Tampilan tab Execute

Bagian B

Menampilkan kondisi register (isi) pada saat eksekusi program. Kondisi register
pada setiap langkah instruksi dapat dilihat pada bagian ini.Perlu dicatat, isi dari
register bernilai bilangan heksadesimal dengan format representasi bilangan two’s
complement.

Bagian C

Merupakan console yang dapat menerima input dari pengguna dan menampilkan
hasil eksekusi program ke pengguna. Console dapat diakses dengan menggunakan
system call pada MIPS. System call pada MIPS dapat dilihat pada tautan berikut:

https://courses.missouristate.edu/KenVollmar/MARS/Help/SyscallHelp.ht
ml

Dokumentasi lengkap mengenai program MARS dapat diakses pada tautan:


https://courses.missouristate.edu/KenVollmar/MARS/Help/MarsHelpIntr
o.html

E. Struktur Program MIPS

deklarasi data

kode program

Gambar 3 Struktur program MIPS

Bagian .data merupakan bagian untuk deklarasi data yang digunakan dalam
program seperti string, byte, dll. Nama variabel yang digunakan dalam program

6
Modul Praktikum Organisasi dan Arsitektur Komputer

dapat dideklarasikan pada bagian ini, dimana variabel akan dialokasikan dalam
memori. Tipe data pada MIPS dapat dilihat pada tautan

https://www.assemblylanguagetuts.com/mips-assembly-data-types/
Bagian .text menandakan dimulainya blok kode program/instruksi yang akan
dieksekusi.

Sintaks main: menandakan label main program, dimana kita bisa melakukan
branching ke label ini.

7
Modul Praktikum Organisasi dan Arsitektur Komputer

TUGAS PRAKTIKUM (Bagian 1) - MIPS System Call

Tulis program yang ada pada Gambar 3 pada program MARS, kemudian eksekusi
program tersebut. Buat dalam bentuk laporan untuk menjawab instruksi dan
pertanyaan berikut ini:

1. Apakah yang dilakukan oleh program pada Gambar 3 tersebut?

2. Jika pada baris ke-8 kode diganti menjadi la $a0, msg2. Apakah yang terjadi
pada program?

3. Dimanakah alamat memori data msg dan msg2? Untuk menjawab, silakan
eksplorasi Tab Execute, jelaskan kondisi data pada memori (Data Segment) saat
program dijalankan!

4. Jika salah satu instruksi pada baris ke-7 atau ke-8 dihilangkan, apakah yang
terjadi?

5. Jika kita kembalikan seperti semula instruksi yang dihilangkan dari soal nomor
4, kemudian instruksi pada baris ke-11 dihilangkan, apakah yang terjadi?

6. Jika kita kembalikan seperti semula instruksi yang dihilangkan dari soal nomor
5 dan 4, kemudian operand immediate (konstanta) diganti dengan bilangan 1
sehingga instruksi menjadi li $v0, 1. Apakah yang terjadi dari hasil eksekusi
program?

7. Sampai saat ini anda telah melakukan eksperimen terkait system call pada MIPS.
Jelaskan menurut pendapat anda apakah system call pada MIPS!

Lanjut ke halaman berikutnya...

8
Modul Praktikum Organisasi dan Arsitektur Komputer

TUGAS PRAKTIKUM (Bagian 2) - Eksplorasi array

Perhatikan dan pahami program di bawah ini. Untuk memudahkan, anda dapat
mencoba melakukan eksekusi program untuk melihat perilaku program berikut
dengan menggunakan MARS:
.data

msg1: .asciiz “Indeks array: “

msg2: .asciiz “Nilainya: “

arr: .word 7, 8, 10, 9, 4, 6, 3, 2, 5, 1 #deklarasi 10 elemen integer

.text

.globl main

main:

la $t1, arr

li, $v0, 4

la, $a0, msg1

syscall

li, $v0, 5

syscall

move $s0, $v0

li, $s1, 4

mul $s0, $s0, $s1

add $t2, $s0, $t1

li, $v0, 4

la, $a0, msg2

syscall

li, $v0, 1

lw, $a0, 0($t2)

syscall

Tugas

1. Setelah memahami maksud program, berikan komentar untuk setiap baris


instruksi pada program!

9
Modul Praktikum Organisasi dan Arsitektur Komputer

2. Perhatikan Tab Execute dan jendela Text Segment. Pada saat program akan
dijalankan (setelah proses assemble), kita tidak melihat instruksi baris pertama la
$t1, arr yang digantikan dengan 2 baris kode instruksi lui dan ori. Begitu pula
dengan instruksi pada baris selanjutnya yaitu li, $v0, 4 digantikan dengan
instruksi addiu. Jelaskan maksudnya!

3. Berdasarkan program diatas, buatlah program assembly yang dapat menghitung


nilai total elemen pada array arr! Berikan komentar untuk setiap baris instruksi
pada program.

10
Modul Praktikum Organisasi dan Arsitektur Komputer

Referensi
1 http://courses.missouristate.edu/kenvollmar/mars/

2 https://www.assemblylanguagetuts.com/mips-assembly-
programming-tutorials/
3 https://en.wikipedia.org/wiki/MIPS_architecture#Pseudo_instructions
4 http://labdasar.ee.itb.ac.id/lab/Semester%201%202018-
2019/modul/Modul%20EL3111%20Arsikom%202018%20-
%20150%20buku.pdf

11

Anda mungkin juga menyukai