3. 명령어

1. 소스 코드와 명령어

고급 언어와 저급 언어

  • 우리가 사용하는 프로그래밍 언어는 컴퓨터는 이해하지 못하고, 사람이 이해하기 편하도록 만들어진 언어이다.

  • 이렇게 사람을 위한 언어를 고급 언어라 말한다. -> Java, Python, C#, C++

  • 컴퓨터가 직접 이해하고 실행할 수 있는 언어를 저급 언어라 말한다.

    • 기계어 : 0, 1의 명령어 비트로 이루어진 언어이다. (절대로 사람이 이해할 수 없다)

    • 어셈블리어 : 기계어를 사람의 입장에서 편하게 읽기 위해서 만들어진 저급 언어 -> CPU 는 명령어 집합(ISA)이라는 특정한 형태의 기계어를 이해하고 실행할 수 있는데, -> 어셈블리어는 ISA 와 매칭 된다. (CPU 마다 ISA 가 다르기 때문에, CPU 마다 어셈블리어가 다르다)

컴파일 언어와 인터프리터 언어

  • 컴파일 언어 : 컴파일러에 의해 소스 코드 전체가 저급 언어로 변환(컴파일)되어 실행되는 고급 언어 -> 컴파일러를 통해 저급 언어로 변환 된 코드를 목적 코드라고 한다.

  • 인터프리터 언어 : 인터프리터에 의해 소스 코드 한 줄씩 실행되는 고급 언어 -> 한줄씩 저급 언어로 변환하고 바로 실행한다.

  • 일반적으로 컴파일 언어가 인터프리터 언어보다 빠르다!

2. 명령어의 구조

연산 코드와 오퍼랜드

  • 명령어는 연산코드와 오퍼랜드로 이루어져 있다.

    • 연산코드 : 명령어가 수행할 연산

    • 오퍼랜드 : 연산에 사용할 데이터가 저장된 위치

      • 오퍼랜드에 할당된 메모리의 크기는 한정적인데, 값을 직접 넣어 사용하게 되면, 표현할 수 있는 범위가 한정적이다.

      • 오퍼랜드에는 값이 들어있는 것이 아닌, 값이 저장된 주소가 들어가 있다. (주소필드)

Last updated