혼공 학습단/혼자 공부하는 컴퓨터구조+운영체제

혼자 공부하는 컴퓨터 구조 + 운영체제 Chapter 3

uomnf97 2024. 1. 7. 23:06

안녕하세요! 제이덥입니다~ 저는 이번주부터 학부 때 공부했던 CS 기초 내용을 Wrap-Up 하기 위해 혼공학습단 11기 활동을 진행하고 있는데요. 11기 활동을 진행하면서 학습 했던 내용을 여러분께 공유해드리기위해 해당 글을 포스팅하게 되었습니다. 해당 도서는 제가 직접 구매하여 글을 작성한 것과 혼공단 11기 활동의 일환으로 학습 내용에 대한 공유 글을 작성하게되었음을 알려드리며, 도서에 대한 자세한 내용과 활동에 대한 내용을 알고 싶은 분들은 아래 Reference에서 확인해주세요~

Chapter 3. 명령어

1️⃣ 소스코드와 명령어

  • 고급 언어와 저급 언어 :
    • 고급 언어(high-level programming language): 컴퓨터가 이해하는 언어가 아닌 사람이 이해하고 작성하기 쉽게 만들어진 언어
    • 저급 언어(low-level programming language): 컴퓨터가 직접 이해하고 실행할 수 있는 언어
      • 기계어(machine code) : 0과 1의 명령어 비트로 이루어진 언어
      • 어셈블리어(assembly language) : 기계어를 읽기 편한 형태로 번역한 언어
        • 복잡한 프로그램은 만들기 어려우나, 임베디드 개발자/게임 개발자/정보 보안 분야 등의 하드웨어와 밀접하게 관련되어 있는 개발자는 어셈블리어를 자주 많이 사용함
    • 고급 언어로 작성된 소스코드가 실행되려면 반드시 저급 언어(명령어)로 변환되어야 함
  • 컴파일 언어와 인터프리터 언어 :
    • 컴파일 언어 : 소스 코드 전체가 저급 언어로 변환되어 실행되는 고급 언어
      • 컴파일(compile) : 코드 전체가 저급언어로 변환되는 과정
      • 컴파일러(compiler) : 문법적인 오류는 없는지, 실행 가능한 코드인지 실행하는데 불필요한 코드는 없는지 등을 따지며 컴파일을 진행하는 도구
      • 목적 코드 : 저급 코드로 변환된 코드
    • 인터프리터 언어 : 소스 코드가 한줄 씩 실행되는 언어
      • 인터프리터 : 소스 코드를 한줄 씩 저급 언어로 변환하여 실행해주는 도구
    • 컴파일 언어는 인터프리터 언어보다 보통 빠름.
    • 컴파일 언어와 인터프리터 언어 간의 경계가 모호한 경우가 많음.

2️⃣ 명령어의 구조

  • 연산 코드와 오퍼랜드
    • 명령어 : 연산코드와 오퍼랜드로 구성
    • 연산 코드(operation code) : 명령어가 수행할 연산을 정의(연산자)
    • 오퍼랜드(operand) : 연산에 사용할 데이터가 저장된 위치(피연산자)
  • 연산 코드
    • 연산 코드 유형은 크게 4가지 존재
      • 데이터 전송
      • 산술/논리 연산
      • 제어 흐름 변경
      • 입출력 제어
  • 오퍼랜드
    • 메모리 주소나 레지스터 이름이 담김
    • 오퍼랜드가 0~3개까지 존재할 수 있음.

Reference :

혼자 공부하는 컴퓨터구조 + 운영체제

혼공학습단 11기 활동