6 인스트럭션 세트
인스트럭션 세트(instruction set)란 CPU가 인식하여 실행할 수 있는 기계어입니다. 기계어는 바이너리 형태라 사람이 읽기 어렵습니다. 어셈블리어는 기계어를 사람이 읽을 수 있도록 일대일로 대응한 문자 형태의 명령어입니다.
인스트럭션 세트는 CPU마다 다릅니다. 새로운 CPU를 도입했다면 그 CPU에 적합한 인스트럭션 세트로 다시 프로그래밍해야 합니다. 이러한 불편을 없애고자 C 언어를 비롯한 하이레벨 언어가 탄생한 것입니다. 컴파일 언어는 작성한 코드는 그대로 두고 작동하는 컴퓨터에 따라 컴파일만 다시 하면 됩니다(컴파일에 대해서는 11장에서 자세히 다룹니다).
이번 절에서는 몇 가지 명령어를 직접 설계해 볼 텐데, 지금까지 예제로 쓴 4비트 CPU로는 명령어를 구성할 수 없으므로 4비트를 8비트로 확장하겠습니다. 범용 레지스터도 CX와 DX를 추가하여 설명하겠습니다.
TIP 명령어 설계는 인텔 계열의 x86 어셈블리 코드를 참고했습니다.