목차

DCPU-16

Markus Persson이 현재 개발 중인 게임 0x10c에서 우주선을 제어하기 위한 목적으로 개발 중인 가상의 16비트 컴퓨터 명세. 게임 상에서는 일종의 IBM PC와 같은 지위를 가지고 있는 것으로 가정하고 있는 것 같다.

0x10c프로그래밍게임의 요소를 가지게 된 일등 공신으로서, 레딧dcpu16 서브레딧이 따로 있을 정도이다. 그리고 Persson은 이 서브레딧에다가 최신 명세를 올린다. 거의 공식 창구 취급. 게다가 이걸 해 보겠다고 어셈블리를 배우겠다는 족속들까지 생겨나서, sanxiynDLX, LC-3이나 MIX/MMIX 등의 교육용 아키텍처를 위협하는 새로운 대안이 아니냐는 농담 아닌 얘기를 하기까지 했다.

아래 서술에서는 2012년 4월 현재 최신판인 1.7 명세를 기준으로 한다.

특징

게임의 기술적 배경이 1988년을 기준으로 삼고 있기 때문에 DCPU-16도 그 즈음의 아키텍처랑 비스무리하게 생겼…어야 할 것 같은데 사실은 에뮬레이션을 간단하게 하기 위해 좀 더 구린 편이다. 기술적으로는:

바깥 링크

1) 바이트의 기술적인 정의에 따르면 1바이트 = 16비트라는 말도 성립하는데, 기존의 "바이트"의 사용과 너무 충돌해서 명세에서 대놓고 "워드"라는 말만 쓰고 있다.
2) I/J 레지스터는 STI/STD 명령에서 자동으로 증가되거나 감소된다.
3) 16비트 피연산자를 16비트 피연산자로 나눈 결과를 16.16 고정소숫점 포맷으로 변환한다.
4) 일부 최적화하는 어셈블러는 XOR PC, … 같은 인코딩을 사용하기도 한다.