컴퓨터한테 어떻게 '이걸 해'라고 시킬까요?
지금까지 계산하는 회로, 기억하는 회로, 주소를 차례로 다뤘다. 그렇다면 이 부품들에게 '이걸 해'라고 어떻게 시킬까? 컴퓨터가 알아듣는 말, 명령어를 만나 볼 차례예요.
명령은 '무엇을'과 '어디에'로
컴퓨터에게 내리는 명령은 아주 단순하다.
'무엇을 하라'와 '어디에, 어디를'이라는 두 부분이면 끝난다.
예를 들면 '더해라, 3번과 7번을' 같은 식이에요.
무엇을(더해라) + 어디를(3번과 7번).
사람 말로 풀면 '3번 칸과 7번 칸을 더해'가 된다.
짧고 분명하다.
컴퓨터는 이런 작은 명령을 하나씩 받아 실행하고, 그 하나하나를 명령어라고 불러요.
명령어도 0과 1로 적는다
그런데 컴퓨터는 한글도 영어도 모르고, 오직 0과 1만 안다.
그래서 명령어도 0과 1로 적는다.
앞부분에는 무엇을 할지, 뒷부분에는 어디에 할지를 정해진 자리에 정해진 모양으로 넣어요.
앞 4비트는 명령의 종류, 뒤는 대상 주소.
우리 눈에는 그저 0과 1의 나열이지만, 컴퓨터에게는 '3번과 7번을 더해라'라는 완벽한 문장이다.
정해진 자리를 보면 뜻이 정확하게 읽혀요.
아는 단어는 몇 개뿐
놀라운 사실이 하나 있다. 컴퓨터가 아는 명령은 생각보다 적다.
값을 가져와라, 값을 저장해라, 더해라, 다른 곳으로 건너뛰어라 같은 기본 명령 몇 가지뿐이에요.
이 작은 단어장으로 모든 일을 해낸다.
이 단순한 명령들을 수없이 엮어서 게임도 영상도 만든다.
단어가 적어도 괜찮다.
짧은 단어로 긴 이야기를 쓰듯, 이 몇 가지 명령을 수백만 번 엮으면 못 할 일이 없어요.
컴퓨터가 명령을 읽는 법
그렇다면 컴퓨터는 이 0과 1을 어떻게 읽을까?
정해진 자리를 잘라서 본다.
앞부분을 보고 '더하라는 거구나', 뒷부분을 보고 '3번과 7번이구나' 하고 알아낸다.
이렇게 쪼개 읽는 일을 해독이라고 해요.
아래 해독하기 버튼을 누르면 자리마다 뜻이 드러난다.
정해진 자리를 잘라서 뜻을 읽어 낸다.
정해진 자리에 정해진 뜻이 있다.
그래서 컴퓨터는 0과 1만 보고도 무엇을 어디에 할지 정확히 알아낸다.
약속이 있으니까 가능한 일이에요.
명령을 이으면 프로그램
명령어 하나는 작지만 줄줄이 이으면 무언가를 해낸다.
'5번 값 가져와, 6번 값 가져와, 둘을 더해 7번에 저장해' 이렇게 세 줄이면 덧셈 프로그램이 된다.
실행 버튼을 누르면 한 줄씩 진행돼요.
3줄짜리 미니 프로그램.
방금 본 것이 컴퓨터가 일하는 가장 밑바닥이다.
우리가 쓰는 모든 프로그램은 결국 이런 명령어 수백만 개로 이루어져 있다.
다음 레슨에서는 더하기 말고 빼기와 비교는 어디서 하는지 알아봐요.