안 쓰던 블로그

TIS-100 SIGNAL MULTIPLEXER (SEGMENT 22280)공략 본문

취미/TIS-100 공략

TIS-100 SIGNAL MULTIPLEXER (SEGMENT 22280)공략

proqk 2020. 6. 28. 15:45
반응형

IN.S값이 -1이면 IN.A값 출력

IN.S값이 1이면 IN.B값 출력

IN.S값이 0이면 IN.A+IN.B값 출력

 

한 노드에서 3가지 경우를 다 처리할 수 있는데

-1일 때, 1일 때, 0일 때 이렇게 3번 분기를 만들면 한 칸에 명령어줄이 부족해서 다 안 들어간다

2가지 경우만 하고 나머지일 때~ 이런 식으로 else문처럼 분기해야 한다

 

시작하자마자 왼쪽/오른쪽에서 값을 받는다

-1이면 L로 분기, 0이면 ZERO로 분기, 이도저도 아니면 그냥 아래 명령어 실행

 

L로 분기하면 LEFT값을 DOWN으로 보내주고, RIGHT를 NIL로 보낸다

ZERO로 분기하면 LEFT+RIGHT값을 DOWN으로 보내준다

이도저도 아니면(1이면) RIGHT값을 DOWN으로 보내주고, LEFT를 NIL로 보낸다

 

NIL로 보내는 부분이 중요한데, 이게 없으면

한쪽값은 DOWN으로 내려갔지만 다른쪽 값은 아직 대기중이 되어서

다음 값이 들어왔다고 덮어지지 않고, 그쪽 값을 쓸 때까지 계속 대기하게 된다

그래서 안 쓴 값은 NIL로 보내줘야 LEFT/RIGHT값이 순서대로 비교할 수 있다

 

반응형
Comments