반응형
Notice
Recent Posts
Recent Comments
Link
안 쓰던 블로그
TIS-100 NO_BACKUP 도전과제 공략 본문
반응형
Solve SEQUENCE COUNTER without using the SWP instruction
그냥 풀면 이렇게 풀린다 https://foxtrotin.tistory.com/200
원래는 BAK에 값을 저장하다가 0이 오면 출력하는 방법으로 풀었는데
BAK을 쓰지 않는다면 ACC만 쓰면 된다
ACC만 쓰려면 0이 올 때까지 수를 그냥 ACC에 계속 누적하다가, 0이 오면 출력하는 방법으로 하면 되긴 할텐데
그러면 ACC에 새로운 값이 들어오면 누적값이 없어지는 거 아니야? 할 수도 있음
의외로 되게 간단한 방법이 있는데 0이 오면 터무니 없는 음수 값을 ACC에 더하고, 0이하라면 0이 왔다고 판단하고 출력하면 된다
물론 입력값에 음수가 없다는 위험한 전제가 있어야 하지만. 어쨌든 여기서는 음수가 없기 때문에 가능한 방법
입력을 받아서 0이면 -999를 아래와 오른쪽으로 보낸다
0이 아니면 ACC값과 1을 각각 아래, 오른쪽으로 보낸다
오른쪽에서는 왼쪽에서 온 값을 ACC에 더한다(-999든 일반 값이든)
만약 -999를 더했다면 음수가 될 테니까 JLZ로 0보다 작다면 ZERO:로 분기한다
아니면 계속 그 루프를 돌고 있다
분기해서 ZERO로 오면, 일단 -999값을 +999해서 원래 값으로 만들어주고, 그 값을 DOWN으로 보내서 출력한다
0으로 초기화 해준다
아래쪽에서도 똑같이 위에서 온 값을 ACC에 더한다
-999면 ZERO로 분기하고 아니면 ACC에 값을 더한다
반응형
'취미 > TIS-100 공략' 카테고리의 다른 글
TIS-100 SEQUENCE GENERATOR (SEGMENT 30647) 공략 (0) | 2020.06.28 |
---|---|
TIS-100 SIGNAL MULTIPLEXER (SEGMENT 22280)공략 (0) | 2020.06.28 |
TIS-100 SEQUENCE COUNTER 공략 (0) | 2020.06.28 |
TIS-100 PARALLELIZE 도전과제 공략 (0) | 2020.06.28 |
TIS-100 BUSY_LOOP 도전과제 공략 (0) | 2020.06.27 |
Comments