Kleofáš의 프로세서
시간 제한1초메모리 제한512 MB
레지스터 26개를 가진 비트 연산 프로세서에서 임의의 64비트 값이 담긴 A에 8을 더하는 64개 미만 명령의 프로그램을 작성한다.
문제
예비 과학자 Kleofáš는 최근 새 프로세서를 개발했다. 이 프로세서에는 A부터 Z까지 이름이 붙은 26개의 레지스터가 있다. 각 레지스터는 64비트 부호 없는 정수를 저장하는 변수이다.
이 프로세서는 매우 단순하다. 아래 표에 나온 명령어만 지원한다. (모든 명령어에서 R은 레지스터 이름이고, X는 레지스터 이름이거나 64비트 부호 없는 정수 상수이다.)
참고:
- not을 제외한 모든 명령어에서 두 번째 인수가 레지스터 이름이면, 그 레지스터의 내용은 변하지 않는다.
- shl이나 shr을 0이 아닌 두 번째 인수로 호출하면, 첫 번째 인수의 시프트 결과는 0으로 채워진다. 따라서 두 번째 인수가 64 이상이면 첫 번째 인수와 관계없이 결과는 항상 0이다.
예시 과제:
레지스터 A에 0과 15 사이의 임의의 입력 값이 들어 있고, 나머지 레지스터는 모두 0이라고 하자. A에 켜진 비트의 개수가 홀수이면 Z를 1로, 그렇지 않으면 0으로 만드는 프로그램을 작성하라.
쉬운 과제:
레지스터 A에 임의의 입력 값이 들어 있고, 나머지 레지스터는 모두 0이라고 하자. A의 값을 8만큼 증가시키는(필요하면 2^64로 나눈 나머지를 계산하는) 프로그램을 작성하라. 프로그램이 끝난 뒤 다른 레지스터에는 어떤 값이 들어 있어도 된다. 프로그램은 64개 미만의 명령어로 이루어져야 한다.
입력
이 문제에는 입력이 없다.
출력
프로그램을 텍스트 파일로 제출한다. 파일의 각 줄은 완전한 명령어 하나를 포함하거나 공백만으로 이루어질 수 있다.