Anda di halaman 1dari 11

NAMA : Fajar Adika Rahman

NIM : E1E123063
GANJIL
TEKNIK INFORMATIKA

SISTEM OPERASI

PRAKTIKUM 1 : PENGENALAN CPU SIMULATOR

1. MEMBUAT INTRUKSI
Pertama-tama kita perlu menempatkan sejumlah instruksi pada tampilan instruction
memory (menggambarkan RAM pada mesin yang nyata) sebelum melakukan
eksekusi
instruksi. Berikut adalah cara menempatkan instruksi ke instruction memory :

Pada tampilan program instruction, masukkan nama

program (misal: program1), dan juga base address

(untuk praktikum ini beri base address nilai 100). Klik

tombol ADD. Maka program baru beserta namanya

akan dimasukkan ke tampilan Program List seperti

yang disajikan gambar 22. Gunakan tombol SAVE.../

LOAD... untuk menyimpan dan mengambil instruksi

dari file.
Gunakan tombol REMOVE PROGRAM untuk menyingkirkan

program yang disorot.

2. TRANSFER DATA

Untuk memasukkan instruksi ke CPU, klik tombol ADD

NEW... yang akan menampilkan jendela Instructions: CPU0.


Pertama kita membuat instruksi yang memindahkan (move) angka 5 ke register R00

Eksekusi instruksi diatas (dengan klik dua kali pada tampilan instruction memory).
Buatlah instruksi yang memindahkan angka 8 ke register R01.

Lakukan dengan cara yang sama

Amati isi R00 dan R01 pada tampilan Register Set


3. ARITMATIKA

Buatlah suatu instruksi yang menambahkan (add) isi R00 dan R01.
Dan eksekusilah

Amati dimana hasil penjumlahan tersebut disimpan


4. STACK POINTER (SP)

Buatlah instruksi yang menaruh hasil diatas pada program stack, kemudian
eksekusilah.

Buatlah instruksi yang sama untuk menaruh (push) angka -2 pada stack teratas dan eksekusilah.

Amati nilai register SP.


5 . PEMBANDING

Buatlah instruksi untuk membandingkan nilai register R00 dan R01.


Dan eksekusilah

Amati nilai register SR

Amati bit status OV/Z/N pada status register.


Pada instruksi perbandingan, jika R00 dibandingkan dengan R01 (CMP R00, R01),
maka pada bagian SR status flag tidak akan ada dari OV/Z/N yang ter-set. Alasannya
karena dalam instruksi CMP R00, R01; berlaku ketentuan:
1. Z akan tercentang apabila R00=R01
2. Tidak ada yang tercentang apabila R01 > R00
3. N akan tercentang apabila R00>R01

5. STACK POINTER (SP)


Buatlah instruksi untuk mengambil (pop) nilai teratas dari program stack ke register

R02. Eksekusilah.

Amati nilai pada register SP.

Buatlah suatu instruksi untuk mengambil nilai teratas dari program stack ke register

R03.Eksekusilah.
Amati nilai pada register SP.

Eksekusi lagi instruksi yang terakhir

Jendela Stack underflow muncul disebabkan karena instruksi POP dijalankan namun
di dalam register SP tidak terdapat data yang bisa dipindahkan ke register CPU.

1. MOV (Move): Instruksi MOV digunakan untuk memindahkan data dari satu lokasi ke lokasi lain. Ini
bisa dari atau ke register CPU, dari memori ke register, atau sebaliknya.

2. ADD (Addition): Instruksi ADD digunakan untuk menjumlahkan data dari satu register ke register
lainnya. Ini dapat digunakan untuk operasi penjumlahan antara dua angka atau variabel yang disimpan
dalam register CPU.

3. PSH (Push): Instruksi PSH digunakan untuk menyimpan nilai dari register CPU ke dalam tumpukan
(stack). Nilai yang dimasukkan akan menjadi TOS (Top Of Stack). Setiap kali instruksi PSH dijalankan, nilai
baru akan menjadi TOS, dan nilai sebelumnya yang menjadi TOS akan turun ke bawah tumpukan
(Bottom Of Stack - BOS).
4. CMP (Compare): Instruksi CMP digunakan untuk membandingkan nilai dari dua register. Hasil
perbandingan ini digunakan untuk mengatur status register (SR) atau status flag, yang akan digunakan
dalam instruksi pengambilan keputusan berikutnya, seperti instruksi percabangan (branching).

5. POP (Pop): Instruksi POP digunakan untuk mengambil nilai dari TOS dalam tumpukan (stack) dan
memindahkannya ke register CPU yang ditentukan. Instruksi POP tidak akan berhasil jika tidak ada data
yang tersedia dalam register SP (Stack Pointer).

Instruksi-instruksi ini merupakan dasar-dasar dalam pemrograman assembly dan sangat penting untuk
memahami bagaimana prosesor berinteraksi dengan memori dan register. Mereka membentuk fondasi
dari bahasa rakitan yang lebih kompleks dan memungkinkan pengembang untuk mengontrol perilaku
perangkat keras secara langsung.

Anda mungkin juga menyukai