TIS-100?

TIS-100 (TESSELLATED INTELLIGENCE SYSTEM)

Zachtronics에서 개발한 (가상의) 어셈블리어 프로그래밍 게임. 각 스테이지마다 주어진 테스트 케이스를 모두 만족시키는 프로그램을 작성하면 된다. 일반적인 코딩 테스트 플랫폼과 비슷한 구조이며, 차이가 있다면 게임 속에서만 존재하는 어셈블리어를 사용한다는 점이다.

세이브 파일 git으로 관리하는 방법

MacOS에서 Steam을 통해 TIS-100을 설치했다면 다음 경로에 TIS-100 관련 파일이 있을 것이다.

~/Library/Application Support/TIS-100/12345698025538105

마지막의 12345698025538105는 사람마다 다를 수 있다.

이 경로에 있는 save 디렉토리가 바로 TIS-100 에서 작성한 어셈블리 코드가 저장되는 곳이다.

나는 외부 경로에 save 디렉토리를 옮겨놓고, ~/Library/Application Support/TIS-100/12345698025538105 안쪽에 심볼릭 링크를 걸어놓았다.

이렇게 하면 git으로 세이브파일을 관리할 수 있으며 당연히 github에도 올릴 수 있다.

https://github.com/johngrib/TIS-100-solutions

TIS-100 노드

아키텍처

레지스터 정수값 범위

레지스터의 정수값 범위는 -999 ~ 999 이다.

명령

주석

주석은 #으로 시작한다.

한편 노드 중 하나에 ##으로 시작하는 주석을 작성하면 해당 텍스트가 프로그램의 이름으로 저장된다(노드별 세이브 슬롯에 표시되게 된다).

이렇게 ##를 사용하면..

image

이렇게 표시된다.

image

JRO

현재 라인에서 주어진 숫자만큼 실행 커서를 이동시킨 다음 실행한다.

  • JRO 2: 바로 아랫줄의 명령을 건너뛰고 그 다음줄의 명령을 실행한다.
  • JRO -1: 바로 윗줄로 올라가 명령을 실행한다.
  • JRO ACC: ACC에 저장된 값만큼 커서를 이동시킨다.
  • JRO 0: 주의. 이 명령을 실행하면 프로그램의 실행이 중단된다.

Documents