MIPS processors membahagikan kepada tiga bahagian iaitu text segment, data segment, dan stack segment.
- TEXT SEGMENT
- DATA SEGMENT
- STACK SEGMENT
Memory Layout
TYPE
|
SIZE(BINARY)
|
SIZE(HEXADECIMAL)
|
Byte
|
8 bits
e.g. 10011001
|
2 bits
e.g. 2A
|
Word
|
4 bytes, 32 bits
e.g. 1000000000…
|
8 bits
e.g. 12345ABC
|
Double word
|
8 bytes, 64 bits
e.g. 10000000000000…
|
16 bits
e.g. 123456789ABCDEF0
|
Data alignment in MIPS
Double word
| |||||||
Word
|
Word
| ||||||
HalfWord
|
HalfWord
|
HalfWord
|
HalfWord
| ||||
byte
|
byte
|
byte
|
byte
|
byte
|
byte
|
byte
|
byte
|
REGISTERS
MIPS mengandungi 32 register yang dinomborkan sebagai 0-31.
REGISTER NAME
(MNEMONIC NAME)
|
REGISTER NUMBER
|
USAGE
|
$zero
|
$0
|
Constant 0
|
$at
|
$1
|
Assembler Temporary (reserved)
|
$v0-$v1
|
$2-$3
|
Expression evaluation and results of a subroutine
|
$a0-$a3
|
$4-$7
|
Arguments to a subroutine
|
$t0-$t7
|
$8-$15
|
Temporary (As caller - saved registers for hold a temporary values, no preserved in function call)
|
$s0-$s7
|
$16-$23
|
Saved temporary (As caller - saved register for hold long-lived value, preserved in function call)
|
$t8-$t9
|
$24-$25
|
More temporary to used
|
$k0 - $k1
|
$26 - $27
|
Operating system (For reserved, no used by user program or compiler)
|
$gp
|
$28
|
Global pointer (Points in middle of a 64K block of memory, static data segment, preserved on call)
|
$sp
|
$29
|
Stack pointer (Points of last location on stack, preserved on call)
|
$fp
|
$30
|
Frame pointer (preserved on call)
|
$ra
|
$31
|
Return address (automatically used in some instructions)
|
MIPS register conventions
Selain itu, Coprocessor 0 mengandungi pengecualian daftar kawalan untuk tujuan dalam pengecualian. SPIM tidak ada melaksanakan daftar dalam semua Coprocessor 0 kerana mereka tidak sentiasa berguna atau terjejas dalam simulator atau sebahagian daripada sistem memori. Walau bagaimanapun, ia juga menyediakan perangkap mendaftar untuk membantu dalam coprocessor.
NAMA PENDAFTARAN
|
NOMBOR
PENDAFTARAN
|
PENGGUNAAN
|
BadVAddr
|
8
|
Alamat ingatan berlaku pengecualian alamat
|
Status
|
12
|
Mengganggu topeng dan mengaktifkan bit
|
Cause
|
13
|
Jenis pengecualian dan menunggu bit sampukan
|
EPC
|
14
|
Alamat arahan yang disebabkan pengecualian
|
Trap Register
Pendaftaran ini adalah salah satu pendaftaran menetapkan diakses oleh arahan sebahagian kopemproses daripada mfc0 dan mtc0.
15 8
|
4
|
1
|
0
|
|||
Interrupt
Mask
|
U
M
|
E
L
|
I
E
|
Status Register
31
|
15 8
|
6 2
|
|||
B
D
|
Pending Interrupt
|
Exception Code
|
Cause RegisterBit yang menunjukkan status pendaftaran melaksanakan SPIM. Topeng sampukan akan memegang bit bagi setiap selepas 8 tahap sampukan. Jika ia hanya perlu bit, sampukan adalah dapat berfungsi. Walau bagaimanapun, jika ia terdapat sifar bit, sampukan tidak dibenarkan. User mode(UM) bit ialah 0 bermakna program ini dijalankan dalam mode kernel dan UM ialah 1 bit bermakna program ini pergi ke user mode. Exception level (EL) biasanya adalah pada 0 dan hanya akan berubah kepada 1 apabila pengecualian berjalan. Interrupt Enable (IE) ialah menjadi 1 bit, tahap sampukan adalah membenarkan dan sampukan tidak dibenarkan apabila ia menjadi 0.
Lapan bit dalam menunggu sampukan bermakna ia mempunyai 8 sampukan tahap. Bit menjadi 1, ia menunjukkan sampukan adalah proses tetapi tidak mempunyai perkhidmatan. Walau bagaimanapun bit menjadi 0, ia menunjukkan sampukan tidak membenarkan. Bit kod terkecuali mengandungi senarai kod.
NOMBOR
|
NAMA
|
PUNCA
PENGECUALIAN
|
0
|
Int
|
Interrupt (hardware)
|
4
|
AdEL
|
Address error exception (load or instruction
fetch)
|
5
|
AdES
|
Address error exception (store)
|
6
|
IBE
|
Bus error on instruction fetch
|
7
|
DBUS
|
Bus error on data load or store
|
8
|
SYSCALL
|
Syscall exception
|
9
|
BKPT
|
Breakpoint exception
|
10
|
RI
|
Reversed instruction exception
|
12
|
OVF
|
Arithmetic overflow exceotion
|
13
|
Tr
|
Trap
|
Exception code register
No comments:
Post a Comment