소스 코드와 명령어

hongxeob·2022년 12월 21일
0

컴퓨터 구조

목록 보기
3/14

고급 언어

  • 개발자가 이해하기 쉽게 만든 언어
  • 컴파일 언어, 인터프리터 언어가 있다.
    - 컴파일 언어 : 컴파일 언어로 작성된 소스 코드는 컴파일러를 통해 저급 언어로 변환되고, 이 과정을 컴파일 이라고 한다.
    - 인터프리트 언어 : 인터프리터에 의해 한 줄씩 실행 -> 소스 코드 전체가 저급언어로 변환 되기까지 기다릴 필요가 없다

저급 언어

  • 컴퓨터가 이해하고 실행하는 언어
  • 기계어,어셈블리어가 있다
    - 기계어 : 0과 1로 이루어진 명령어로 구성됨
    - 어셈블리어 : 0과 1로 이루어진 기계어를 읽기 편한 상태로 번역한 저급 언어

명령어의 구조

  • 더해라,빼라,저장해라 : 연산 코드(+필드)
  • 연산에 사용될 데이터가 저장된 위치 : 오퍼랜드(+필드)
    - 오퍼랜드는 연산에 사용도리 데이터를 저장하는 경우보다 연산에 사용될 데이터가 저장된 위치를 저장하는게 대부분이다!
    - 이유 : 오퍼랜드 필드로 표현할 수 있는 데이터 크기가 2의16승 이라 데이터를 직접 넣는 것보다,데이터가 저장된 메모리 주소를 넣는것이 더 많은 정보를 표현할 수 있다.(데이터의 크기는 하나의 메모리 주소에 저장할 수 있는 공간만큼 커짐)

명령어 주소 지정 방식

  • 즉시 주소 지정 방식
    - 연산에 사용할 데이터를 오퍼랜드 필드에 직접 명시
    - 가장 간단한 형태의 주소 지정 방식
    - 연산에 사용할 데이터의 크기가 작아질 수 있지만,빠르다
  • 직접 주소 지정 방식
    - 오퍼랜드 필드에 유효 주소를 직접 명시하는 방법
    - 유효 주소를 표현 할 수 있는 크기가 연산 코드만큼 줄어든다
  • 간접 주소 지정 방식
    - 오퍼랜드 필드에 유효 주소의 주소를 명시
    - 앞선 주소 지정 방식들에 비해 속도가 느리다.(메모리를 많이 뒤적거림)
  • 레지스터 주소 지정 방식
    - 연산에 사용할 데이터가 저장된 레지스터 명시
    - 메모리에 접근하는 속도보다 레지스터에 접근하는 것이 빠름!
  • 레지스터 간접 주소 지정 방식
    - 연산에 사용할 데이터를 메모리에 저장
    - 그 주소를 저장한 레지스터를 오퍼랜드 필드에 명시

Tip:
cpu가 메모리를 뒤적거리는 속도는 매우 매우 느리다->메모리 접근을 최소화 하는것이 속도면에서는 중요하다.
cpu가 메모리에 접근하는 속도보다 메모리에 접근하는 속도가 더 빠르다


본 게시물은 한빛 미디어 <혼자 공부하는 컴퓨터구조+운영체제>를 읽고 공부한 것을 기록한 게시물입니다.

profile
걍 하자 저스트 뚜잇

0개의 댓글