Computer/Architecture

C언어 -> MIPS instruction

Detacher 2012. 7. 22. 08:27

Q. y[7] = y[15] - c + d, let c stored in reg.17, d in reg.13, base address of y = 3850120(10)


3850120(10) = 0011 1010   1011 1111 1000 1000(2)

 |---58---| |------49032------|

lui $s1, 100    #load upper immediate, $s1 = 100 * 2^16, $s1의 상위 16비트에 constant 100 로드

ori $s1, $s2, 100    #or immediate, $s1 = $s2 | 100, 상수와 bitwise-OR


lui $9, 58

ori $9, $9, 49032    #$9 becomes base address, y[0]의 주소값은 $9


lw $10, 60($9)    #15*4 = 60, word가 4byte 이므로 4곱, y[15](=$10)의 base address는 $9+60, y[15] = Mem[$9+60]


sub $10, $10, $17    #$10 = $10 - $17

add $10, $10, $13    #$10 = $10 - $13


sw $10, 28($9)    #y[7]에 $10값 저장




'Computer > Architecture' 카테고리의 다른 글

Datapath - PC  (0) 2012.07.22
MIPS Reference  (0) 2012.07.22
Arithmetic  (0) 2012.07.20
Imm, unsigned  (0) 2012.07.20
Program Counter -> Instruction Memory  (0) 2012.07.20