[혼공학습단 9기] 혼공컴운 1주차 챕터3 : 명령어 + 미션

낙원·2023년 1월 5일
2
post-thumbnail

💻소스코드와 명령어

  • 고급 언어 : 개발자가 이해하기 쉽게 만든 언어
  • 저급 언어 : 컴퓨터가 이해하고 실행하는 언어
    → 기계어, 어셈블리어가 있다.

  • 기계어 : 0과 1로 이루어진 명령어로 구성된 저급 언어
  • 어셈블리어 : 기계어를 읽기 편한 형태로 번역한 저급 언어

✨컴파일 언어

  • 컴파일 : 코드 전체가 저급 언어로 변환되는 과정
  • 컴파일러 : 컴파일을 수행해 주는 도구
  • 목적 코드 : 컴파일러를 통해 저급 언어로 변환된 코드

🎠인터프리터 언어

  • 인터프리터에 의해 소스 코드가 한 줄씩 실행되는 고급 언어
  • 인터프리터 : 소스 코드를 한 줄씩 저급 언어로 변환해 실행해주는 도구
  • 소스 코드 전체가 저급 언어로 변환되기까지 기다릴 필요 없다.
    컴파일 언어, 인터프리터 언어 차이

📜명령어의 구조

  • 연산 코드 : 색 배경 필드 값, 명령어가 수행할 연산
  • 오퍼랜드 : 흰색 배경 필드 값, 연산에 사용될 데이터 혹은 연산에 사용 될 데이터가 저장된 위치

연산 코드

종류는 다양하지만, 가장 기본적인 유형은 크게 4가지다.

  1. 데이터 전송
  2. 산술/논리 연산
  3. 제어 흐름 변경
  4. 입출력 제어

📸오퍼랜드

  • 대부분의 경우 데이터가 저장된 위치를 저장한다
    → 주소 필드라고 부르기도 함

※오퍼랜드 필드에 메모리, 레지스터의 주소를 담는 이유※

위와 같이 명령어의 길이 때문에 하나의 오퍼랜드 필드로 표현할 수 있는 정보의 가짓수가 적다.

하지만 오퍼랜드 필드 안에 메모리 주소가 담긴다면 표현할 수 있는 데이터의 크기는 하나의 메모리 주소에 저장할 수 있는 공간만큼 커진다.

🏹주소 지정 방식

  • 유효 주소
    연산에 사용할 데이터가 저장된 위치

  • 명령어 주소 지정 방식
    연산에 사용할 데이터가 저장된 위치를 찾는 방법
    유효 주소를 찾는 방법

즉시 주소 지정 방식

  • 연산에 사용할 데이터를 오퍼랜드 필드에 직접 명시
  • 가장 간단한 형태
  • 사용할 데이터의 크기가 작아질 수 있지만 빠르다.

직접 주소 지정 방식

  • 유효 주소를 오퍼랜드 필드에 직접적으로 명시
  • 유효 주소를 표현할 수 있는 크기가 연산 코드만큼 줄어든다.

간접 주소 지정 방식

  • 유효 주소의 주소를 오퍼랜드 필드에 명시
  • 위 두 방식보다 느리다.

레지스터 주소 지정 방식

  • 연산에 사용할 데이터가 저장된 레지스터 명시
  • 메모리에 접근하는 것보다 레지서트에 접근하는 것이 더 빠르다.

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

  • 연산에 사용할 데이터를 메모리에 저장
  • 그 주소를 저장한 레지스터를 오퍼랜드 필드에 명시

1주차 미션

p. 51의 확인 문제 3번

프로그램이 실행되려면 반드시 메모리에 저장되어 있어야 합니다.

p. 65의 확인 문제 3번

1101의 음수를 2의 보수 표현법으로 표현하기
1101 -> 0010 -> 0011

📣스택과 큐

스택

  • 한쪽 끝이 막혀 있는 통과 같은 저장 공간
  • 후입선출(LIFO) 방식 : 나중에 저장한 데이터를 먼저 빼낸다.
  • 스택에 새로운 명령어를 저장하는 것은 push, 빼내는 것은 pop

  • 양쪽이 뚫려 있는 통과 같은 저장 공간
  • 선입선출(FIFO) 방식 : 먼저 저장된 데이터부터 빼낸다.
  • 새로운 명령어 저장은 enqueue, 빼는것은 dequeue

0개의 댓글