1. 상수 0 ($zero: read-only)
- add $t2, $s1, $zero // 복사
- addi $t2, zero, 10 // 상수 loading
2. Instructions Access (Read)
- cpu에는 현재 명령어 주소를 track하는 특별한 레지스터 존재 -> PC(program counter)
- 명령어가 실행되면 pc의 주소가 바뀜
3. Loading and Storing Bytes (lb, lbu, sb)
- 다 i-format 명령어
- lb rt, address // lb $t0, 1($s3)
: byte는 레지스터 $t0의 LSB에 로드되고 나머지는 sign-extended
만약 sign-extended 싫으면 lbu 명령 사용 (나머지 모두 0으로 채움)
- sb rt, address // sb $t0, -7($s3)
: 레지스터의 LSB의 byte를 메모리에 쓴다
sign extension 필요 없음 (메모리의 1바이트 공간만 건드리기 때문에)
4. Endianness
Big-endian : MSB(젤 왼쪽)가 낮은 주소에!
Little-endian : MSB(쩰 왼쪽)가 높은 주소에!