이번에는 입력신호를 뒤짚어서 출력하는 해보겠습니다.
입력값이 1,2,3,4,5로 들어왔다면
출력값은 5,4,3,2,1로 출력되는 겁니다.
SEQUENCES ARE ZERO-TERMINATED
READ A SEQUENCE FROM IN
REVERSE THE SEQUENCE
WRITE THE SEQUENCE TO OUT
이번에는 새로운 노드가 나왔습니다.
입력된 값을 저장해두는 노드인대요
FILO(First In Last Out)이라는 것입니다.(자세한 내용은 검색하시면 나와요.)
즉 입력된 순서대로 저장이 되어 출력을 할때는 마지막으로 입력된 값이 가장먼저 출력이 됩니다.
그리고 이번에도 역시 0을 기준으로 REVERSE하는 것을 목표로하는 군요.
그럼 단순하게 로직을 생각해보겠습니다.
0이 되면 입력을 그만두고 출력이 되야합니다.
그리고 노드에 있는 데이터가 모두 출력이되면 다시 입력을 받아야합니다.
따라서 입력된 값이 몇개인지 카운트할 변수가 필요할거같네요.
어렵게 생각하지 말고 코드를 봅시다.
1. 입력값을 오른쪽 저장노드에 넣어준후 2번으로 카운트를 보냅니다.
이 때, 카운트값이 1이면 1증가이고 0이면 출력을 시도하라는 뜻입니다.
2.위에서 카운트 값을받습니다.
0일경우 BAK에 저장해둔 카운트값을 3으로 넘겨줍니다.
아닐경우 SWP하여 1씩 증가시켜준 후 SAV해줍니다.
3. 2에서 받은 카운트값을 1씩 감소시키면서 출력값을 아래로 보냅니다.
카운트값이 0이 되면 0을 출력한 후 2에게 출력을 완료했다고 신호를 보냅니다. (이 신호는 1까지 이동하여 다시 입력을 받기 시작하게 됩니다.)
개인적인 의견으로는 반전하는 이번 코드보다 최소,최대값을 구하는 코드가 더 어려웠던 것 같습니다.
'게임 > TIS-100' 카테고리의 다른 글
[스팀게임]TIS-100 IMAGE TEST PATTERN 1 (0) | 2018.04.24 |
---|---|
[스팀게임]TIS-100 SIGAL MULTIPLIER (0) | 2018.04.24 |
[스팀게임]TIS-100 SEQUENCE PEAK DETECTOR (0) | 2018.04.23 |
[스팀게임]TIS-100 SIGNAL PATTERN DETECTOR (0) | 2018.04.22 |
[스팀게임]TIS-100 INTERRUPT HANDLER (2) | 2018.04.22 |