반응형

증폭기

이번에는 signal amplifier 즉 신호증폭기를 해볼께요.

우선 증폭기란 무엇인가에 대해서 설명해 드릴께요.

증폭기란?

입력된 신호의 출력을 키워서 내보내는 장치들을 의미한다. 전기신호 이외에도 빛이나 자기장 같은 신호도 증폭시키면 앰프라고 할 수 있다.  - 출처 나무위키 -

한마디로 1이란 신호를 2로 값을 증가시키는걸 증폭기라고 한다고 보면 되겟네요.


그럼 이제 실제로 코딩을 해보도록 하죠 
먼저 Signal Amplifier segment를 create new program으로 들어갑니다.

위 이미지랑 동일한거 찾으면 되요.

그러면 다음과 같은 화면이 나옵니다.

IN.A 값이 있고 OUT.A 값이 있는걸보면 IN값을 받아서 OUT으로 출력하라는 거 같네요

왼쪽에 결과가 출력된것을 보면 딱 IN값의 2배가 되어있는것을 볼 수 있습니다.

문제를 읽지않아도 결과만 보고 문제를 유추할 수 있지만 그래도 문제를 한번 읽는편이 더 도움이 될거같으니깐 번역을 해보죠

READ A VALUE FROM IN.A

DOUBLE THE VALUE

WRITE THE VALUE TO OUT.A

IN.A 값을 읽어서 해당값을 두배로 만든후 OUT.A로 출력하세요 라는군요.


여러가지 방법이 있겠지만 값이 두배가 된다는 점에서 입력받은 값을 한번 더 더해주면 된다는 사실을 알게 되었습니다.

ADD명령어는 ACC를 더할수 있으므로 해당값을 ACC에 저장한 후 ADD를 하면 값이 두배가 된다는 것을 알수있겟네요 

4배라면 ADD ACC를 한번 더 해주면 되지만 만약 3배가 증폭된다고 하면 좀 더 생각해봐야할거같습니다.


그래서 결과적으로 나온 코드는 이 것

매우 단순해 보이는 코드입니다.

실제로도 단순하고요

MOV UP,ACC (IN.A 값을 ACC에 저장합니다.)

ADD ACC(ACC값에 ACC 값을 더합니다. ACC+ACC=2ACC)

MOV ACC,DOWN(ACC값을 아래로 내립니다. 그리고 OUT 까지 이동합니다.)


ACC에 값이잇을때 새로운값을 MOV UP,ACC를 하게된다면 들어오는 값을 ACC에 덮어쓰기를 한다는 뜻입니다.

따라서 ACC의 값을 초기화 할 필요가 없습니다.

반응형

+ Recent posts