Computer architectures
[MIPS] Instruction (Load, Store)
YEJI ⍢
2022. 9. 25. 02:26
728x90
① Load
Memory → Register
Ex) LW $s1, 8($s0) # $s1 ← Memory[$s0 + 8]
② Store
Register → Memory
Ex) SW $s1, 12($s0) # Memory[$s0 + 12] ← $s1
C code를 assembly code로 바꾸는 예제를 살펴보겠습니다.
C code
A[8] = a + A[8]
Assembly code
# A[0]의 주소가 $s3에 있다고 가정
# a의 값은 $s2에 있다고 가정
lw $t0, 32($s3)
# A[8]은 array의 8번째 이면서 4bytes씩 할당되어 있기 때문에 4*8위치에 있는 $s3가 됩니다.
# $t0 ← A[8]
add $t0, $s2, $t0
# $t0 ← $s0 + $t0
sw $t0, 32($s3)
# A[8] ← $t0
◡̈