MIPS
Registers
-
MIPS mengandungi
32 general purpose registers yang bernombor 0 – 31.
-
Registers $ 0
sentiasa membawa nilai 0.
Nama
|
No registers
|
Penggunaan
|
Dikekalkan pd
panggilan?
|
$zero
|
$0
|
constant 0 (hardware)
|
n/a
|
$at
|
$1
|
reserved
for assembler
|
n/a
|
$v0 - $v1
|
$2-3
|
returned values
|
Tidak
|
$a0 - $a3
|
$4-7
|
Arguments
|
Ya
|
$t0 - $t7
|
$8-15
|
Temporaries
|
Tidak
|
$s0 - $s7
|
$16-23
|
saved values
|
Ya
|
$t8 - $t9
|
$24-25
|
Temporaries
|
Tidak
|
$gp
|
$28
|
global pointer
|
Ya
|
$sp
|
$29
|
stack pointer
|
Ya
|
$fp
|
$30
|
frame pointer
|
Ya
|
$ra
|
$31
|
return addr (hardware)
|
Ya
|
System Call
SPIM simulator untuk seni bina MIPS menyediakan “exception
handler” yang mensimulasikan sistem operasi kecil yang mebolehkan user memasukkan
input dari keyboard dan memaparkan output pada monitor.
Assembly programs service by loading the system call
(syscal) instruction.
Contoh exception handler yang digunakan dalam SPIM.
Li $v0, code #load
$v0 dgn “system call code”
#no.
servis OS
#masukkan
parameter utk servis
#registers
$a0, $a1 atau $f12
Syscall #invoke OS
#kembalikan
nilai (jika ada)dalam $v0 atau $f0
Untuk keluar dari program, (bagi mengelakkan SPIM
crash jika tiada arahan).
li $v0,10 #load $v0 with code 10 == exit
syscall #kembali kan data
Muhammad Nasruddin Bin Rosli
B031210017
No comments:
Post a Comment