isPowerfulBlog

[컴퓨터구조] #04 | data transfer 본문

CS

[컴퓨터구조] #04 | data transfer

왕밤빵도라에몽 2023. 10. 16. 20:25

임은진 교수님의 컴퓨터구조 lecture10을 학습하고 작성한 TIL입니다


MIPS Data Transfer Operations

sw

store instruction: registermemory

sw $., ..($.)

sw store word
$. source operand in register
..($.) memory address = R[$.] + ..(offset)

sw $4, 8($5)

(5번 register가 가지고 있는 값 + 8)
= 4번 register에 저장된 값을 저장할 32-bit짜리 메모리 주소

lw

load instruction: memoryregister

lw $., ..($.)

lw load word
$. source operand in register
..($.) memory address = R[$.] + ..(offset)
$. base register number

lw $4, 8($5)

(5번 register가 가지고 있는 값 + 8)에 저장된 값을 4번 register에 저장

MIPS I-format Instructions

| op(6bits) | rs(5bits) | rt(5bits) | offset(16bits) |

rt sw source, lw destination register number
rs base register number
offset -2^15 ~ (+2^15-1)
memory address


Initializing Data Segment

.data

data segment가 시작된다

.byte

byte 형태의 값을 data segment에 저장

char는 1byte

.word

word(4byte) 형태의 값을 data segment에 저장

int는 4byte
✅ word 저장 시 메모리 주소를 4의 배수로 맞추기 위해 word alignment

.ascii / .asciiz

문자열 저장 / 문자열 + null 저장

.text

text 형태의 데이터 저장
MIPS 어셈블리 코드는 data segment에 작성할 수 X → text segment에 저장

.globl ~

다른 파일에서도 액세스 할 수 있게 전역으로 선언

label

segment의 이름

byte order

  • little endian
    작은 주소 인덱스에 해당하는 값이 word형태로 표현 시 뒤쪽에
  • big endian
    큰 주소 인덱스에 해당하는 값이 word형태로 표현 시 뒤쪽에

✅ SPIM에서는 memory 내용을 보여줄 때 word 단위로 보여준다.


참고 임은진 교수님 컴퓨터구조 강의안


2021년 벨로그 글 옮겨옴