그런데 명령어의 구조가 모두 다르죠? PUSH라는 명령어 뒤에는 한 값만 따라오고, ADD라는 명령어에는 세 값이 따라옵니다. 이와 같이 명령어(연산코드) 뒤에 따라오는 값(오퍼랜드)의 개수에 따라 다음과 같이 0주소 명령어부터 3주소 명령어까지 나눌 수 있습니다.
▲ 그림 3-1 주소 명령어 분류
0주소 명령어를 자세히 보면 오퍼랜드 부분이 없습니다. 오퍼랜드 정보를 컴퓨터가 미리 알고 있다고 가정하기 때문입니다. 예를 들어 점심시간마다 가는 식당이 있다고 가정해 봅시다. 누군가 “밥 먹으러 갑시다”라고 말하면, 특정 식당을 언급하지 않아도 사람들은 어디로 가야 할지 알고 있습니다. 여기서 “밥 먹으러 갑시다”는 명령어가 되고, 식당은 오퍼랜드가 됩니다. 즉, 0주소 명령은 오퍼랜드를 매번 명시하지 않아도 될 때 사용합니다. 대표적으로는 PUSH, POP 등이 있습니다.