IT기술(코딩)

어셈블리어 MIPS를 이용한 Mars_NS-shaft.jar 컴파일

크리에이트매이커 2022. 5. 9. 17:47
반응형

안녕하세요 여러분~

오늘은 어셈블리어에 대한 글을쓸게요~

제가 며칠전 의뢰를 받으면서 어셈블리어를 공부하게 됐는데, MIPS문법? 의 어셈블리어였어요~

대학 과제 같았는데, 어쨋든 잘 만들어 줬답니다.

 

컴파일러는 Mars_NS-shaft.jar 를 썼는데, 의뢰자가 제공해준 파일 이었습니당..

자바 10이상 버전을 깔고 , 해당 프로그램이 있는 폴더에서 shift + 오른쪽 클릭해서 파워쉘을 열고

 

java -jar Mars_NS-shaft.jar 을 치면 실행이 됩니다.

아무튼 MIPS문법은 32바이트 인가를 계속 할당하면서 $s, $t, $a, $v 등등 각각 정해진 역할의 변수를 사용해서 작업하는 방식이었던것 같습니다.

 

$s 는 계속 저장하는 변수

$t 는 해당 함수? 에서 한번만 사용되는 변수

$a 는 함수 분기시에 참조? 하는 변수 이런식으로 쓰이더군요.

$v 는 systemcall 시에(syscall 이라는 명령어로 쓰입니다.) 변수값에 따른 동작 방식이고 그 결과값을 받아옵니다. 결과값이 없다면 그냥 넘어가구요~

 

아무튼 신선한 공부를 했기에 글을 써봅니다.

 

과제에 대한 코드는 제가 깃허브에 남겨 놓았습니다.

 

https://github.com/olo6525/assemblyMIPS/blob/main/gamecode

 

GitHub - olo6525/assemblyMIPS: down game, with assembly language. MIPS

down game, with assembly language. MIPS. Contribute to olo6525/assemblyMIPS development by creating an account on GitHub.

github.com

 

딱히 설명같은건 하지 않겠습니다 ㅎㅎ.. 요즘 자주 쓰이는 언어도 코드 자체도 게임 1차밖에 없기 때문에,, 완성도가 없습니다.

 

혹시 해당 언어로 코딩을 해야할 시 위 코드를 참조해서 팁을 얻어가셔도 좋을것 같습니다~

보시면 각 함수마다 일정 패턴이 있는데, 그런 방식으로 코딩을 한다 생각하시면 됩니다!

 

그럼 안녕!

반응형