본문 바로가기
System SW

[2.6] MIPS Instruction Set Architecture VI - 언어와 MIPS 어셈블리언어

by Hangii 2022. 10. 13.

C언어가 MIPS 어셈블리언어로 어떻게 변환되는지 알아본다.

  • 컴파일러에 의해 고급 언어로 작성된 C코드가 MIPS의 어셈블리언어로 바뀐다.   
  • 예전에는 어셈블리언어로 프로그램을 작성하는 경우도 있었다.
    • 운영체제와 관련된 작업 중 속도가 중요한 경우는 그렇게 했다. 하지만 어셈블리의 비효율성 등을 극복하기 위해 고급언어인 C언어를 만들어낸 것이다.
  • 이제 C언어를 어셈블리언어로 바꾸는 몇 가지 예시에 대해 알아보자.

레지스터 3개를 이용한 간단한 연산. 사칙연산의 규칙에 따라 괄호부터 계산하면 된다.

 

  • 배열의 경우 시작 위치만을 저장하고, 이후 원하는 배열의 원소에 접근하기 위해 인덱스 값만큼 떨어진 주소를 찾아간다. 
    • 정수의 크기는 4byte이므로 어셈블리어의 첫 두 줄에서 i*4를 진행한다. 이때, 곱셈보다 덧셈의 처리 속도가 훨씬 빠르므로 덧셈 두 번을 한다. 

댓글