본문 바로가기
  • 컴공생의 공부 일기
  • 공부보단 일기에 가까운 것 같은
  • 블로그
📖 CS/시스템소프트웨어

💾시소실 - MIPS(ISA) C언어와 MIPS 어셈블리 언어

by 정람지 2023. 9. 14.

c언어로 작성된 고급 언어가

MIPS에서 어셈블리 언어로 바뀌는가?

초록색(C언어) =>(컴파일러) => 노란색 (어셈블리 언어)

 

g h를 더해야 하니까 t0 임시 레지스터에 s1 s2더해서 저장

i j 똑같이

두 값을 연산하는 마지막 줄 (s0에 저장)

 

<배열연산>

변수들, 배열의 시작 위치는 이미 레지스터에 올라와 있는 상황

 

배열 a[i]의 값은 어떻게 메모리에서 가져올까?

배열의 시작 위치+i 를 해서  (이떄 정수형 배열이면 정수형 크기인 4를 곱해서 더해야 함)(더하기가 더 빨라서 곱셈 대신 덧셈을 하기도)

4i라는 값을 t1이 가지고 있게 됨

<조건문 연산>

노란글자들(각 변수가 저 레지스터에 올라와 잇음)

브랜치를 함 

bne : 같지 않으면 

Else로 가라 

Exit으로 가게 (else 점프)

<while 반목문 연산>

ijk 배열 시작위치 레지스터에 올라와잇음

그리고..

나중에 한번 더 보기