본문 바로가기
728x90
반응형

mips2

[MIPS] MIPS 스택을 활용한 반복문 스택을 사용하기 위해서 아래와 같은 MIPS 명령어를 이해해야 한다. 명령어 피연산자 1 피연산자 2 의미 lw (load word) $t0 변수 이름 메모리에서 t0 레지스터로 값을 저장한다. sw (store word) $t0 변수 이름 t0 레지스터의 값을 메모리에 저장한다. jal loop 없음 jal loop 다음 명령어의 주소를 $ra에 저장하고loop로 jump 한다 jr $ra 없음 $ra 레지스터에 담긴 주소로 이동한다. 이전 포스팅에서 조건부 점프, 무조건 점프에 대해서 공부했었는데 https://growth-coder.tistory.com/34 jal과 jr 명령어는 무조건 점프에 해당한다. jal loop를 실행하게 되면 loop로 점프하기 전에 다음에 실행할 명령어의 주소를 $ra.. 2022. 12. 12.
[MIPS] MIPS 함수 및 반복문 사용법 MIPS 반복문을 사용할 때는 재귀적인 방식을 사용하곤 한다. 예를 들어 입력받은 수부터 1까지 모두 출력하는 어셈블리 코드의 흐름은 다음과 같다. 입력받은 수를 레지스터에 저장한다. 해당 레지스터의 수를 출력한다. 레지스터의 값에서 1을 뺀다. 레지스터의 값이 1이 아닌 경우 2번으로 돌아간다. 레지스터의 값이 0인 경우 종료한다. 이번 포스팅에서 새롭게 배울 내용은 함수를 실행시키는 방법이다. 지금까지는 main 함수 하나만 사용하였는데 우리가 임의로 함수를 만들어서 사용할 수도 있다. loop라는 이름의 함수를 만든다면 아래와 같다. .data .text main: loop: main 함수에서 특정 함수를 실행하고 싶다면 "j loop"와 같이 loop라는 함수로 jump할 것이라는 것을 알려주면 .. 2022. 12. 11.
728x90
반응형