명령어

Ju_Nik_e·2023년 6월 3일
0

혼공컴운

목록 보기
2/3

명령어

소스코드와 명령어

고급 언어와 저급 언어

  • 고급언어 : 사람을 위한 언어(C, C++, Java, Python 등 프로그래밍 언어)
  • 저급언어 : 컴퓨터가 직접 이해하고 실행할 수 있는 언어로 고급언어로 작성된 소스코드가 실행되려면 저급 언어, 즉 명령어로 변환되어야 함
    저급언어에는 기계어어셈블리어 두가지 종류가 있음

기계어

  • 0과 1로 이루어진 명령어 모음

어셈블리어

  • 0과 1로 표현된 기계어를 읽기 편한 형태로 번역한 언어

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

  • 고급언어가 저급 언어로 변환되는 두 가지 방식 : 컴파일, 인터프리터

컴파일 언어 : 컴파일 방식으로 작동하는 언어
인터프리터 언어 : 인터프리트 방식으로 작동하는 언어

컴파일 언어

컴파일러에 의해 소스 코드 전체가 저급언어로 변환되어 실행되는 고급언어

  • 오류가 하나라도 있으면 해당 소스 코드는 컴파일(저급언어로 변환)에 실패함
  • 목적 코드 : 컴파일러를 통해 컴파일에 성공하여 저급 언어로 변환된 코드

인터프리터 언어

인터프리터에 의해 소스 코드가 한 줄씩 실행되는 고급 언어

  • 오류가 있더라도 오류가 있는 소스 코드 구간을 만나기 전까지는 정상 실행 됨

명령어의 구조

연산코드와 오퍼랜드

명령어는 연산코드와 어퍼랜드로 구성되어 있음

  • 연산코드(연산자) : 명령어가 수행할 연산(더해라, 빼라, 저장해라 등)
  • 오퍼랜드(피연산자) : 연산에 사용할 데이터, 연산에 사용할 데이터가 저장된 위치

주소지정방식

  • 오퍼랜드 필드(피연산자 필드)에 데이터가 아닌 주소를 담는 방식
    : 명령어의 길이의 제한 때문에 이 방식을 사용

즉시 주소 지정 방식

  • 오퍼랜드 필드에 연산에 사용할 데이터를 직접 명시

직접 주소 지정 방식

  • 오퍼랜드 필드에 유효 주소(메모리의 주소)를 직접적으로 명시

간접 주소 지정 방식

  • 메모리가 데이터의 주소를 갖고 있고 그 메모리의 주소를 명시(주소의 주소)

레지스터 주소 지정 방식

  • 데이터가 저장되어 있는 레지스터의 주소를 명시(빠름)

레지스터 간접 주소 지정 방식

  • 레지스터가 메모리의 주소를 갖고 있고 해당 레지스터의 주소를 오퍼랜드 필드에 명시하는 방식

0개의 댓글