[혼공컴운_1주]Chapter3 명령어

study_record·2024년 1월 6일
0

혼공컴운

목록 보기
3/17

고급언어, 저급언어

  • 저급언어 : 컴퓨토가 직접 이해하고 실행할수 있는 언어
    1) 기계어 : 0,1의 명령어로 이루어진 언어
    2) 어셈블리어 : 0,1로 표현된 명령어를 읽기 편한 형태로 번역한 언어
  • 고급언어 : 사람을 위한 언어

컴파일 언어

  • 컴파일러에 의해 소스코드 전체가 저급언어로 변환되어 실행되는 언어
  • 컴파일 : 컴파일언어가 저급언어로 변환되는 과정을 의미함
  • 컴파일러 : 컴파일을 수행하는 도구.
  • 코드를 처음부터 끝까지 컴파일을 함. 이중 오류가 하나라도 나오면 컴파일에 실패함
  • 목적코드 : 컴파일러를 통해 저급언어로 변환된 코드

인터프리터 언어

  • 인터프리터 : 소스코드를 한줄씩 저급언어로 변환하여 실행하는 도구
  • 오류가 생기기 전 코드까지 실행함
  • 컴파일언어보다 느림

링킹

  • 목적코드가 실행파일이 되기 위해 거치는 작업

명령어 구성

  • 명령어 = 연산코드(명령어가 수행할 연산, 연산자) + 오퍼랜드(연산에 사용할 데이터가 저장 될 위치, 피연산자)
  • cpu마다 종류가 다름

오퍼랜드

  • 연산에 사용할 데이터 또는 데이터가 저장된 위치
  • 숫자나 문자, 대부분 메모리나 레지스터 주소가 있음
  • 오퍼랜드필드나 주소필드로 불림
  • 오퍼랜드 개수에 따라서 '0-주소명령어', '1-주소명령어', '2-주소명령어'로 불림

연산코드

  • 명령어가 수행할 연산
  • cpu 마다 연산 코드 종류가 다름
  • 종류(대표적인 종류)
    1) 데이터전송: MOVE, STORE, LOAD, PUSH, POP
    2) 산술/논리 연산 : ADD, DIVIDE, AND, OR, COMPARE
    3) 제어 흐름 변경 : JUMP, HALT, CALL
    4) 입출력 제어 : READ,START IO

주소지정방식

  • 오퍼랜드 필드에 데이터가 저장된 위치를 명시할때 연산에 사용할 데이터 위치를 찾는 방법
    • 즉시 주소 지정방식
    • 직접 주소 지정방식
    • 간접 주소 지정방식
    • 레지스터 주소 지정방식
    • 레지스터 간접 주소 지정방식
  1. 즉시 주소 지정방식
  • 연산에 사용할 데이터를 오퍼랜드 필드에 직접 표시함.
  • 데이터의 크기가 작아짐
  1. 직접 주소 지정방식
  • 오퍼랜드 필드에 유효 주소를 직접 표시하는 방식.
  • 표시할수 있는 유효주소에 제한이 생긴다
  1. 간접 주소 지정방식
  • 유효주소의 주소를 오퍼랜드 필드에 명시.
  • 직접 주소 지정방식보다 표현할수 있는 유효주소 범위가 넓어짐
  • 두번의 메모리접근이 필요해서 다른 방식보다 느림
  1. 레지스터 주소 지정방식
  • 연산에 사용할 데이터를 저장한 레지스터를 오퍼랜드 필드에 직접명시
  1. 레지스터 간접 주소 지정방식
  • 사용할 데이터를 메모리에 저장하고 이를 표시하는 유효주소를 저장한 레지스터를 오퍼랜드 필드에 명시함

스택, 큐 📌선택미션

  • 스택
    한쪽 끝이 막혀있어 막혀있지 않은 쪽으로 데이터를 저장함.
    후입선출 방식(나중에 저장한 데이터를 가장 먼저 빼내는 방식, LIFO)
    PUSH : 새로운 데이터저장 명령어
    POP : 스택에 저장된 데이터 꺼내는 명령어

  • 양쪽이 뚫려있는 저장공간
    선입선출 방식(가장 먼저 저장된 데이터부터 뺴내는 방식, FIFO)

📚마무리문제

P.89

1번 다음언어중 고급언어가 아닌것을 모두 골라라 (3)(4)번
1) 컴파일 언어
2) 인터프리터 언어
3) 기계어
4) 어셈블리어

2번 다음중 틀린것을 골라라 (2)번
1) 컴파일 언어는 한줄이라도 소스 코드상 오류가 있다면 실행될수 없다
2) 일반적으로 컴파일 언어보다 인터프리터 언어가 더 빠르다
3) 인터프리터는 인터프리터 언어로 작성된 소스 코드를 저급 언어로 변환하여 실행한다
4) 컴파일러는 컴파일 언어로 작성된 소스코드 전체를 목적 코드로 변환한다

P.101

1번 명령어에 대한 설명중 옳지 않은것을 골라라 (2)번
1) 명령어는 연산 코드와 오퍼랜드로 구성된다
2) 연산 코드 필드에는 메모리 주소만 담을수 있다
3) 오퍼랜드 필드는 여러개 있을수 있다
4) 명령어에 연산에 사용할 데이터를 직접 명시할 경우 표현할수 있는 데이터의 크기는 연산코드의 크기만큼 작아진다

2번 (1)(2)를 채워라 (1)6 (2)200

명령어를 레지스터 간접 주소 지정 방식으로 수행할 때 메모리 (1)번지 속 (2)이라는 값을 CPU로 가지고 온다

0개의 댓글