Anda di halaman 1dari 13

MENGAMATI PROSES CPU INSTRUCTIONS MENGGUNAKAN CPU

OS SIMULATOR

Dikerjakan oleh:

Luthfi Areta A. 16/396283/SV/10496

Dosen :
Imam Fakhrurrozi, M.Cs

UNIVERSITAS GADJAH MADA


YOGYAKARTA
2017
1. MSF
Mark Stack Frame digunakan untuk membungkus serta memanggil semua
perintah yang akan dijalankan oleh CPU. Dalam instruction MSF Program counter
bernilai 1 karena mengeksekusi semua instruksi dalam program itu sendiri, dan alamat
instruksi berikutnya yang akan dieksekusi belum ada. sehingga dapat diartikan bahwa
MSF di sini digunakan untuk memberi wadah instruksi-instruksi yang akan dijalankan
CPU.

2. PSH#8
Pushes value or value in register into top of stack : Digunakan untuk
mengambil nilai 8 ke urutan register tertentu dalam susunan program. Value akan
dimasukkan program stack dalam RAM, sehingga nilai value di TOS (Top of
Hardware Stack) berubah dari 0 menjadi 8.

3. CAL$L2

CAL$L2: Memanggil Variabel Subroutine L2.

4. HLT
Menghentikan aktivitas cpu dalam menjalankan program. dalam suatu
instruksi cpu, dalam memulai instruksi cpu harus diberi perintah kapan untuk berhenti
menjalankannya. sehingga tidak terjadi looping terus menerus antar instruksi.

5. L2

L2: Merupakan variabel instruksi baru yang diberi nama L2. Instruksi ini
adalah subroutine yang fungsinya untuk membungkus kumpulan instruksi satu dengan
yang lainnya  untuk mengerjakan suatu pekerjaan tertentu.

6. POP R02
POP R02 digunakan untuk mendapatkan nilai dari PSH yang diberi value 8
lalu mengisinya ke dalam register ke-2. Sehingga dalam table General purpose CPU
Register nilainya berubah dari 0 menjadi nilai 8.

7. PSH#1
Pushes value or value in register into top of stack : Digunakan untuk memasukkan
nilai 1 ke stack tertentu dalam susunan program. Value akan dimasukkan program

stack dalam RAM, sehingga nilai value di TOS (Top of Hardware Stack) berubah dari
8 menjadi 9. Atau dengan kata lain dapat dituliskan dengan value 8+value 1= value 9.

8. POP R01
POP R01 digunakan untuk mendapatkan nilai dari PSH yang diberi value 1
lalu mengisinya ke dalam register ke-1. Sehingga dalam table General purpose CPU
Register nilainya berubah dari 0 menjadi nilai 1.

9. MOV #0, R01


Mengganti nilai dari register pertama lalu menggantinya menjadi nilai 0. Dari
gambar di atas melalui table general purpose cpu register dapat diamati bahwasanya
register pertama yang awalnya berisi nilai 8, sekarang nilainya menjadi 0.

10. MOV #24, R00

Mengganti nilai dari register ke-0 lalu menggantinya menjadi nilai 24. Dari
gambar di atas melalui table general purpose cpu register dapat diamati bahwasanya
register ke-0 yang awalnya berisi nilai 0, sekarang nilainya menjadi 24.
11. L0:

L0: Merupakan variabel pembungkus instruksi baru yang diberi nama L0.
Instruksi ini adalah subroutine yang fungsinya untuk membungkus kumpulan
instruksi satu dengan yang lainnya  untuk mengerjakan suatu pekerjaan tertentu. Di
dalam subroutine L0 terdapat instruksi ADD #1, R01; MSF; CAL $L1; CMP R02,
R01; JNE $L0; RET.

12. ADD #1, R01


Add berfungsi untuk menambahkan value ke registry atau sebaliknya. Add dalam
interuksi L0 digunakan untuk mengubah value registry ke-1 yang awalnya bernilai 0
menjadi 1.
13. MSF
Mark Stack Frame digunakan untuk membungkus serta memanggil instruksi dalam
suatu kumpulan instruksi tertentu. Sehingga MSF di dalam step instruksi ini
digunakan untuk membungkus instruksi CAL $LI sampai dengan return.
14. CAL $L1

Cal $L1 berfungsi untuk meloncati instruksi untuk pergi ke subroutine L1.

15. CMP R02, R01

CMP R02, R01 digunakan untuk membandingkan nilai pada registry. Dari
gambar di atas dapat dijelaskan bahwa nilai yang dibandingkan yaitu 8 pada registry
kedua dan 1 pada registry pertama.
16. JNE $L0

JNE $LO digunakan untuk meloncati instruksi subroutine 0 apabila hasil


komparasi tidak sama. Karena hasil komparasi sebelumnya menghasilkan 1:8 maka
perintah ini akan dijalankan.

17. RET

RET : Digunakan untuk mengembalikan pointer ke subroutine tertentu. Dalam


instruksi pada CPU ini setelah dilakukan return maka pointer akan kembali ke
subroutine L1.
18. L1
L1: Merupakan variabel pembungkus instruksi baru yang diberi nama L1.
Instruksi ini adalah subroutine yang fungsinya untuk membungkus kumpulan
instruksi satu dengan yang lainnya  untuk mengerjakan suatu pekerjaan tertentu. Di
dalam subroutine L0 terdapat instruksi ADD #1, R01; MSF; CAL $L1; CMP R02,
R01; JNE $L0; RET.

19. OUT R00, 0


Out R00, 0 : Digunakan untuk Output data/nilai pada registry ke 0 untuk ditampilkan.

20. RET
RET : Digunakan untuk mengembalikan pointer ke subroutine tertentu. Dalam
instruksi pada CPU ini setelah dilakukan returrn maka pointer akan kembali ke

subroutine L1.

Anda mungkin juga menyukai