ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [전산기초] 명령어 (= 인스트럭션 Instruction)
    비전공자 공부일기/:: Computer Science 2021. 7. 8. 00:35

    1. 명령어의 구성

    컴퓨터에서 실행되는 명령어는 크게

    1) 연산자가 표시되는 연산자부(Operation Code)

    2) 연산의 수행에 필요한 자료의 정보가 표시되는 자료부(Operand) 로 구성

    ** 전산 출제문제에서 명령어를 '인스트럭션(Instruction)이라고 부르기도 함

     

    * 연산자(Operation Code)부

    - 수행해야 할 동작에 맞는 연산자를 표시

    - 흔히 OP-Code부라고 하며, 명령부라고 부르기도 함

    - 연산자부의 크기(비트 수)는 표현할 수 있는 명령의 종류를 나타냄

      --> nBit일 때 최대 2의 n승 개 명령어 사용 가능

    - 명령어 형식, 동작코드, 데이터 종류 등을 표시

     

    * 자료(Operand)부

    - 실제 데이터에 대한 정보를 표시

    - 기억장소의 주소, 레지스터 번호, 사용할 데이터, 명령어 순서 등을 표시

    - 주로 연산에 사용할 자료의 주소를 표시하므로 주소부(Address), 번지부라고 부르기도 함

     

    2. 연산자(Operation code)의 기능

    : 연산자(Operation Code)의 기능에는 함수 연산, 자료 전달, 제어, 입출력 기능이 있음

     

    1) 함수 연산 기능

    - 산술 연산: ADD, SUB, MUL, DIV, 산술 Shift 등

    - 논리 연산: NOT, AND, OR, XOR, 논리적 Shift, Rotate, Complement, Clear 등

     

    2) 자료 전달 기능

    CPU와 기억장치 사이에서 정보를 교환하는 기능

    - Load : 기억장치에 기억되어 있는 정보를 CPU로 꺼내오는 명령

    - Store : CPU에 있는 정보를 기억장치에 기억시키는 명령

     

    3) 제어 기능

    명령의 실행 순서를 변경시킬 때 사용하는 명령

    - 무조건 분기 명령 : GOTO, Jump(JMP) 등

    - 조건 분기 명령 : IF 조건

     

    4) 입출력 기능

    CPU ~ I/O장치 또는 메모리 ~ I/O장치 사이에서 자료를 전달하는 기능

     

    3. 명령어 형식

    Operand부의 개수에 따라서 다음의 4가지 명령어 형식이 있다.

    - 3주소 명령어(3 Address Instruction)

    - 2주소 명령어(2 Address Instruction)

    - 1주소 명령어(1 Address Instruction)

    - 0주소 명령어(0 Address Instruction)

     

    예를들어 3주소 명령어라 한다면

      [Op-Code]-[Operand1(자료1의 주소)]-[Operand2(자료2의 주소)]-[Operand3(자료3의 주소)]  형태로 되어있음

     

    1) 3주소 명령어

    - Operand부가 3개로 구성

    - 여러 개의 범용 레지스터(GPR)를 가진 컴퓨터에서 사용

     

    2) 2주소 명령어

    - 가장 일반적으로 사용

    - 여러 개의 범용 레지스터를 가진 컴퓨터에서 사용

    - 연산의 결과는 주로 Operand 1에 저장되며, 이 때 Operand1에 있던 원래의 자료가 파괴

     

    3) 1주소 명령어

    - Operand부가 1개로 구성

    - 명령어 형식의 컴퓨터는 *누산기(AC; Accumulator)를 이용하여 명령어 처리

     

    4) 0주소 명령어

    - Operand부 없이 OP-Code부만으로 구성

    - 주소사용 없이 *스택에 연산자와 피연산자를 넣었다 꺼내어 연산한 후, 결과를 다시 스택에 넣으면서 연산

      --> 원래의 자료가 남지 않음

     

    *** 스택(Stack)

    : 스택은 자료의 삽입-삭제 작업이 한쪽 방향에서만 가능할 수 있도록 할당ㅁ한 메모리의 일부

    - 후입선출(*LIFO) 방식으로 자료 처리

    - 삽입명령은 Push(), 삭제명령은 Pop()

    댓글

coding wanee