명령은 3 개의 숫자로 구성되고 각 결과는 램에 저장된다.
명령의 규칙은 다음과 같다.
모든 레지스터는 처음 000 으로 클리어 되어 있고 램상의 모든 내용은 표준입력으로 읽혀지고 , 첫 명령은 램상의 0 번 주소 부터 시작한다. 모든 결과는 1000 으로 나눈 나머지로 계산한다.
- 100
- 100 은 정지
- 2dn
- d 번 레지스터에 n(0..9) 으로 세트
- 3dn
- d 번 레지스터에 n 을 더함
- 4dn
- d 번 레지스터에 n 을 곱함
- 5ds
- 레지스터 d 값을 레지스터 s 값으로 세트
- 6ds
- 레지스터 d 값에 레지스터 s 값을 더함
- 7ds
- 레지스터 d 값에 레지스터 s 값을 곱함
- 8da
- 레지스터 d 값을 레지스터 a 값을 주소로 하는 램의 내용으로
- 9sa
- a번 레지스터의 내용을 주소로 하는 램상의 값을 레지스터 s 의 값으로 변경
- 0ds
- 레지스터 s 의 내용이 0 이 아니라면 레지스터 d 를 주소로 하는 램상의 주소로 goto
입력 299 492 495 399 492 495 399 283 279 689 078 100 000 000 000 출력 16
명령은 operation code 와 operand 로 이루어짐. 0 번지에 들어 있는 명령의 예를 들면
2dn 은 d 번 레지스터의 내용을 n 으로 세팅. 즉 9 번 레지스터의 내용을 9 로 세팅합니다.
출처: Waterloo local 2000.09.30