[CS : 컴퓨터 구조] 03-2 명령어의 구조

2023. 10. 24. 18:35·Computer Science/컴퓨터 구조

T) 명령어의 구조

T1) 명령어란?

  • ' 무엇을 대상으로 무엇을 수행하라'라는 것
  • ex) "철수야 미역국 좀 끓여라"
더해라 100과 120을
뺴라 메모리 32번지 안의 값과 메모리 33번지 안의 값을
저장해라 10을 메모리 128번지에
수행할 연산 연산에 사용될 데이터 혹은 주소필드( 연산에 사용될 데이터가 저장된 위치 )

 

T2) 명령어의 구성

저장해라 10을 메모리 128번지에
A) 연산코드 B) 오퍼랜드

B) 오퍼랜드

  • 오퍼랜드에는 연산에 사용될 데이터 혹은 연산에 사용될 데이터가 저장된 위치(주소필드)가 들어있다.
  • 경우에 따라 없는 경우 여러개가 들어있는 경우가 있을 수 있다.

오퍼랜드 구성의 경우의 수

 

A) 연산코드 (연산코드의 종류와 생김새는 CPU마다 다르다)

종류 :  ① 데이터전송 ② 산술 / 논리 연산 ③ 제어 흐름 변경 ④ 입·출력 제어

 

A-1) 데이터 전송

  • MOVE : 데이터를 옮겨라
  • STORE : 메모리에 저장하라
  • LOAD(FETCH) : 메모리에서 CPU로 데이터를 가져와라
  • PUSH : 스택에 데이터를 저장하라
  • POP : 스택의 최상단 데이터를 가져와라

A-2) 산술 / 논리연산

  • ADD(덧셈) / SUBTRACT(뺼셈) / MULTIPLY(곱셈) / DIVIDE(나눗셈)
  • INCREMENT(오퍼랜드에 1을 더하라) / DECREMENT(오퍼랜드에 1을 빼라)
  • AND / OR / NOT:AND / OR / NOT 연산을 수행하라
  • COMPARE : 두 개의 숫자 또는 TRUE / FALSE 값을 비교하라 

A-3) 제어흐름 변경

  • JUMP : 특정 주소로 실행 순서를 옮겨라
  • CONDITIONAL JUMP : 조건에 부합할 때 특정 주소로 실행 순서를 옮겨라
  • HALT : 프로그램의 실행을 멈춰라
  • CALL : 되돌아올 주소를 저장한 채 특정 주소로 실행 순서를 옮겨라
  • RETURN : CALL을 호출할 때 저장했던 주소로 돌아가라

A-4) 입·출력 제어

  • READ(INPUT) : 특정 입출력 장치로부터 데이터를 읽어라
  • WRITE(OUTPUT) : 특정 입출력 장치로 데이터를 써라
  • START IO : 입출력 장치를 시작하라
  • TEST IO : 입출력 장치의 상태를 확인하라

 

T-2) 명령어 주소 지정 방식

명령어 구성

※ 명령어의 구조 중 오퍼랜드 필드에 연산에 사용될 데이터가 저장된 위치가 저장되는 이유는 명령어의 크기가 한정적이고 그로인해 오퍼랜드 필드의 크기도 줄어들고 그렇게 되면 자장할 수 있는 데이터의 크기가 작아지고 한정적이기 때문에 참조할 수 있는 주소값을 저장시킨다.

 

C-1) 유효주소(effective address)

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

C-2) 명령어 주소 지정 방식(addressing modes)

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

C-3) 즉시 주소 지정 방식(immediate addressing mode)

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

즉시 주소 지정 방식의 명령어 구조

C-4) 직접 주소 지정 방식(direct addressing mode) - 메모리

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

직접 주소 지정 방식의 명령어 구조

C-5) 간접 주소 지정 방식(indirect addressing mode) - 메모리

  • 오퍼랜드 필드에 유효주소의 주소를 명시
  • 앞선 주소 지정 방식들에 비해 속도가 느림

간접 주소 지정 방식의 명령어 구조

C-6) 레지스터 주소 지정 방식(register addressing mode)

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

레지스터 주소 지정 방식의 명령어 구조

C-7) 레지스터 간접 주소 지정 방식(register indirect addressing mode)

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

레지스터 간접 주소 지정 방식의 명령어 구조

 

 

출처: 인프런-개발자를 위한 컴퓨터공학 1: 혼자 공부하는 컴퓨터구조 + 운영체제
https://www.inflearn.com/course/%ED%98%BC%EC%9E%90-%EA%B3%B5%EB%B6%80%ED%95%98%EB%8A%94-%EC%BB%B4%ED%93%A8%ED%84%B0%EA%B5%AC%EC%A1%B0-%EC%9A%B4%EC%98%81%EC%B2%B4%EC%A0%9C/dashboard

 

저작자표시

'Computer Science > 컴퓨터 구조' 카테고리의 다른 글

[CS : 컴퓨터 구조] CPU의 작동 원리 : ALU와 제어장치  (0) 2023.10.28
[CS : 컴퓨터 구조] C 언어의 컴파일 과정  (1) 2023.10.25
[CS : 컴퓨터 구조] 명령어 : 03-1 소스코드와 명령어  (0) 2023.10.23
[CS : 컴퓨터 구조] 데이터 : 02-2 0과 1로 문자를 표현하는 방법  (0) 2023.10.20
[CS : 컴퓨터 구조] 데이터 : 02-1 0과 1로 숫자를 표현하는 방법  (0) 2023.10.19
'Computer Science/컴퓨터 구조' 카테고리의 다른 글
  • [CS : 컴퓨터 구조] CPU의 작동 원리 : ALU와 제어장치
  • [CS : 컴퓨터 구조] C 언어의 컴파일 과정
  • [CS : 컴퓨터 구조] 명령어 : 03-1 소스코드와 명령어
  • [CS : 컴퓨터 구조] 데이터 : 02-2 0과 1로 문자를 표현하는 방법
JinSeong
JinSeong
재미없으면 안한다.
  • JinSeong
    As you think, so shall you become.
    JinSeong
  • 전체
    오늘
    어제
    • 분류 전체보기 (96)
      • 📆 Today I Learned(개발언어학습) (76)
        • JAVA (20)
        • HTML (1)
        • JSP (46)
        • SPRING (2)
        • ORACLE(DB) (6)
        • CSS (1)
      • 📆 Today I Learned(코딩테스트) (0)
        • JAVA (0)
      • Computer Science (9)
        • 컴퓨터 구조 (9)
        • 운영체제 (0)
        • 자료구조 & 알고리즘 (0)
        • 데이터베이스 (0)
      • 창고 (11)
        • 기초지식 (7)
        • 파일창고 (0)
        • 기술지식창고 (0)
        • 버그버그 👀 (4)
      • Tools🔧 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    ALU
    java 객체타입확인
    DB
    JAVA문자열자르기
    spring 스케줄러
    레지스터
    SQL
    instanceof 연산자
    substring()
    환경변수 차이
    java버전 표현
    java json리턴 에러
    CPU
    명령어
    제어장치
    java 스케줄러
    no converter found for
    Oracle
    jdk구분
    이클립스 오버라이딩 메소드 자동 생성 기능
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
JinSeong
[CS : 컴퓨터 구조] 03-2 명령어의 구조
상단으로

티스토리툴바