1 / 28

명령어의 구성

명령어의 구성. 컴퓨터 명령어의 개요 컴퓨터 명령어 형식 주소지정방식 명령어의 종류. 명령어의 개요. 컴퓨터의 논리적 구조의 이해 어셈블리어 매뉴얼을 참조 하드웨어에 의해 실행되는 명령어에 대한 자세한 사항을 기록 명령어의 2 진 코드와 기호화된 이름에 대한 정의를 기록 컴퓨터는 다양한 명령어와 명령어 형태를 가짐 제어장치에서 명령어를 해석하고 실행하기 위한 제어신호를 제공 명령어 컴퓨터가 어느 정보를 가지고 어떤 처리를 하는지를 나타내는 것으로 연산코드와 오퍼랜드로 구성. 명령어의 구성.

shay
Download Presentation

명령어의 구성

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 명령어의 구성 컴퓨터 명령어의 개요 컴퓨터 명령어 형식 주소지정방식 명령어의 종류

  2. 명령어의 개요 • 컴퓨터의 논리적 구조의 이해 • 어셈블리어 매뉴얼을 참조 • 하드웨어에 의해 실행되는 명령어에 대한 자세한 사항을 기록 • 명령어의 2진 코드와 기호화된 이름에 대한 정의를 기록 • 컴퓨터는 다양한 명령어와 명령어 형태를 가짐 • 제어장치에서 명령어를 해석하고 실행하기 위한 제어신호를 제공 • 명령어 • 컴퓨터가 어느 정보를 가지고 어떤 처리를 하는지를 나타내는 것으로 연산코드와 오퍼랜드로 구성

  3. 명령어의 구성 • 명령어의 구성 • 연산코드와 오퍼랜드로 구성 • OP code : 처리해야 할 연산의 종류 • Operand(피연산자) : 처리할 정보나 처리된 정보 • 명령어 형식 • 명령어를 구성하는 필드의 수와 배치방식 및 각 필드의 비트 수 • 필드라는 비트그룹으로 나뉨 • 연산코드 필드 : 수행할 연산을 위한 명령어를 나타냄 • 오퍼랜드 필드 : 연산코드에서 결정된 명령을 수행할 대상이 되는 데이터 또는 데이터가 저장된 주소를 나타냄 연산코드(OP code) 오퍼랜드(Operand)

  4. 명령어의 기능 • 함수연산 기능 • 데이터 처리 명령어가 산술과 논리 연산을 수행 • 전달기능 • 데이터 전송 명령어가 레지스터 사이의 정보 전달이나 중앙처리 장치와 주기억 장치 사이의 정보 이동을 수행 • 제어기능 • 프로그램 제어 명령어가 명령어의 수행 순서를 제어

  5. 컴퓨터 명령어 형식 • 명령어 set • 컴퓨터에서 사용할 수 있는 명령어의 집합 • 컴퓨터의 구조적 정보를 나타내는 가장 중요한 정보 • 컴퓨터 계열(family)에 속하는 컴퓨터들은 컴퓨터 자체는 달라도 명령어 set은 동일하나 계열이 다르면 다른 명령어 set을 가짐 • 윈도우 계열 Vs 유닉스 계열 Vs 매킨토시 계열

  6. 기억 장소에 따른 명령어 형식 • 오퍼랜드를 기억시켜 놓는 장소에 따른 명령어 형식의 분류 • 누산기를 이용한 명령어 형식 • 다중 레지스터를 이용한 명령어 형식 • 스택 구조를 이용한 명령어 형식

  7. 입력버스 특수 레지스터 (PC, MAR, MBR) 산술/논리연산장치 (ALU) 누산기 (AC) 출력버스 기억 장소에 따른 명령어 형식 - 누산기 • 누산기를 이용한 명령어 형식(1주소 명령어) • 함수 연산 기능의 명령어를 수행할 때 오퍼랜드 중의 하나가 누산기에 기억되도록 하는 컴퓨터 구조 • 중앙처리장치 내에 있는 유일한데이터 레지스터 • 오퍼랜드를 기억시키는 레지스터(누산기) • 하나의 기억 장치 주소 필드를 사용 • ADD X  AC  AC + M[X] • 누산기의 내용 + X번지 내용  누산기에 저장

  8. 입력버스 레지스터 set 산술/논리연산장치 (ALU) 출력버스 기억 장소에 따른 명령어 형식 - 다중레지스터 • 다중레지스터를 이용한 명령어 형식(2-3주소) • 중앙처리장치 내에 여러 개의레지스터 • 세 개의 레지스터가 필요 • 예 • ADD R1, R2, R3  R3  R1 + R2 • ADD R1, R2  R2  R1 + R2 • MOVE R1, R2  R2  R1

  9. 5 4 3 산술/논리 연산장치 스택 포인터 2 1 0 스택 기억 장소에 따른 명령어 형식 –스택구조 • 스택 구조를 이용한 명령어 형식(0주소) • 연산에 필요한 오퍼랜드와 연산의 결과를 스택에 기억시키는 구조 • 스택(Stack : LIFO) • 가장 마지막에 저장된 데이터를 가장 먼저 얻는 후입선출의 특성을 가지는 데이터 구조 • 명령어 형식은 연산코드만 표시 • ADD  주소 필드가 필요 없음 • Push X  TOS  M[X] • POP X  M[X]  TOS

  10. 연산코드 오퍼랜드1 오퍼랜드2 오퍼랜드3 오퍼랜드 수에 따른 명령어 형식-3주소 • 3-주소 명령어(three-address instruction) 형식 • 오퍼랜드의 수가 3개인 명령어 형식 • 주소필드는 처리장치 레지스터 혹은 기억장치 레지스터 • ADD A, B, R1  R1  M[A] + M[B] • 장점 • 산술식을 프로그램하는 데 있어서 프로그램의 길이가 짧아짐 • 단점 • 3주소 명령어를 2진 코드화 했을 때 세 개의 오퍼랜드를 나타내기 위한 비트 수가 다른 주소 명령어 형식보다 많이 필요

  11. 오퍼랜드 수에 따른 명령어 형식-2주소 • 2-주소 명령어 형식 • 오퍼랜드의 수가 2개인 명령어 형식 • 상업용 컴퓨터에서 가장 많이 사용 • 주소필드는 처리장치 레지스터 혹은 기억장치 레지스터 • MOVE A, R1  R1  M[A] • ADD B, R1  R1  R1 + M[B] • 장점 • 3주소 명령어에 비해 명령어의 길이가 짧아짐 • 단점 • 같은 내용을 수행하기 위한 명령어의 수가 증가 • 3주소 (1개의 명령어) Vs 2주소(2개의 명령어) ADD A, B, R1

  12. 오퍼랜드 수에 따른 명령어 형식-1주소 • 1-주소 명령어 형식 • 오퍼랜드의 수가 1개인 명령어 형식 • 오퍼랜드를 가져오거나 연산결과를 저장하기 위한 임시적인 장소로 누산기를 사용 • LOAD A  AC  M[A] • ADD B  AC  AC+M[B] • STORE X  M[X]  AC • 장점 • 3주소 명령어에 비해 명령어의 길이가 짧아짐 • 단점 • 같은 내용을 수행하기 위한 명령어의 수가 증가 • 3주소 (1개의 명령어) Vs 1주소(3개의 명령어) R1 ADD A, B, X

  13. 오퍼랜드 수에 따른 명령어 형식-0주소 • 0-주소 명령어 형식 • 기억장치 스택을 사용하며 주소 필드는 사용하지 않음 • TOS : 스택의 최상위 • TOS-1 : 최상위의 바로 아래 항목 • 산술 연산의 수행 • TOS-1의 오퍼랜드를 가져와 연산을 수행한 후에 결과를 TOS에 저장 • 레지스터와 기억장치 주소를 사용하지 않음 • PUSH A  TOS  M[A] • PUSH B  TOS  M[B] • ADD  TOS  TOS+TOS-1 • POP X  M[X]  TOS • 명령어의 길이가 짧아 기억공간을 적게 차지하나 많은 양의 정보가 스택과 주기억장치를 이동하므로 비효율적 ADD A, B, X

  14. 오퍼랜드 수에 따른 장단점 • 오퍼랜드 수가 많아질수록 • 명령어가 복잡 • 레지스터의 수가 많아져 연산속도가 빨라짐 • 프로그램이 짧아져 프로그램당 명령어 수가 감소 • 오퍼랜드 수가 적어질수록 • 명령어가 간단 • 실행속도 증가 • 프로그램 길이 증가

  15. 연산코드 방식 주소 혹은 오퍼랜드 주소 지정 방식 • 주소지정방식 • 프로그램 수행시 오퍼랜드의 지정 방법을 결정 • 오퍼랜드를 실제 참조하기 전에 명령어의 오퍼랜드를 변경하거나 해석하는 규칙을 지정하는 형식 • 유효 주소 • 규칙의 적용에 의해 만들어진 오퍼랜드 주소 • 주로 주소 필드의 값이 바로 오퍼랜드의 주소가 됨 • 계산해야 할 때도 있음 • 별도의 연산필드를 가진 명령어 형식 • 연산코드 : 수행할 연산의 종류를 지정 • 연산방식 : 연산에 필요한 오퍼랜드의 주소를 알아내는데 사용 • 주소 필드 : 존재하면 기억 장치나 레지스터의 주소를 지정

  16. 의미 주소 지정(implied mode) • 주소필드를 필요로 하지 않는 방식 • 연산코드에 지정된 묵시적 의미의 오퍼랜드를 지정 • 스택에서 ADD와 같은 명령어는 스택의 TOS 항목과 그 아래 항목을 더하여 스택의 TOS 저장하는 명령어로서 오퍼랜드가 스택의 TOS에 있다는 것을 묵시적으로 가정 • MUL X  AC  AC X M[X] • X가 곱해지는 대상과 저장되는 위치가 모두 AC인 것으로 묵시적 지정이 됨 • 장점 • 오퍼랜드가 생략되므로 명령어의 길이가 짧아짐 • 단점 • 명령어의 종류가 제한됨

  17. 즉치 주소 지정(immediate mode) • 오퍼랜드를 명령어 자체 내에 지정 • 오퍼랜드에 저장된 내용이 명령어에서 사용될 실제 데이터 • 레지스터나 변수의 값을 초기화하는데 유용 • LDI 100, R1  R1  100 • 레지스터 R1에 데이터 100을 초기화 • 장점 • 오퍼랜드가 데이터이므로 기억장치 접근이 필요 없음 • 단점 • 데이터의 크기가 오퍼랜드의 비트 수에 의해 제한

  18. 직접 주소 지정(direct-addressing mode) • 명령어의 주소필드에 직접 오퍼랜드의 주소를 저장시키는 방식 • 오퍼랜드에 저장된 내용이 가리키는 주소로 가야 실제 데이터 • AC  M[ADRS] • ADRS의 값이 가지는 주소로 가서 실제 데이터를 가져다 AC에 저장 • 장점 • 기억장치를 한번만 접근 • 단점 • 오퍼랜드의 길이에 의해 접근할 수 있는 기억장치의 주소공간에 한계가 있음

  19. 간접 주소 지정(indirect-addressing mode) • 명령어의 주소필드에 유효 주소가 저장되어 있는 기억장치의 주소를 기억 • 오퍼랜드가 가리키는 주소로 가서 다시 그 값이 가리키는 주소로 가야 실제 데이터 • AC  M[M[ADRS]]  M[ADRS] • ADRS의 값이 가지는 주소에서 다시 그 값을 주소로 하는 실제 데이터를 가져다 AC에 저장 • 장점 • 기억장치의 주소 공간이 CPU가 한번에 접근할 수 있는 단어의 길이에 의해 결정 • 단점 • 두 번의 기억장치 접근이 필요 • 주소지정 방식을 나타내는 방식필드(mode)가 필요 • 직접=0, 간접=1

  20. 레지스터와 레지스터 간접주소지정(register mode) • 레지스터 방식 • 오퍼랜드에 실제 오퍼랜드가 저장된 레지스터가 저장 • 오퍼랜드에는 레지스터 번호가 저장  유효주소=레지스터번호 • 장점 : 오퍼랜드의 비트가 적고 레지스터를 접근하므로 고속 • 단점 :오퍼랜드가 중앙처리장치의 레지스터로 제한 • 레지스터 간접주소지정 방식 • 레지스터가 실제 오퍼랜드가 저장된 기억장치의 주소 값을 갖고 있는 방식 • 오퍼랜드 자체가 아니라 오퍼랜드가 저장된 주소를 가짐 • 유효 주소 = 지정된 레지스터에 있는 주소 • 자동 증가나 자동 감소 방식에 주로 사용 • 장점 : 주소필드의 비트 수가 직접 주소를 지정하는 것보다 적다

  21. 상대 주소 지정 • 유효주소를 계산하기 위해 처리장치 내에 있는 특정 레지스터의 내용에 명령어 주소필드 값을 더하는 방식 • 명령어가 지정하는 오퍼랜드가 다음 실행 명령어 위치에서 상대적으로 얼마만큼 위치에 있다는 의미 • 분기형 명령어에서 주로 사용 • PC (program counter) • 상대 주소를 계산하기 위해 사용되는 레지스터 • 다음에 실행될 명령어가 있는 곳의 주소를 가짐 • 유효주소의 계산 • 유효주소 = 명령어 주소부분의 내용 + PC 의 내용 • 명령어 주소 부분 : 부호(+/-)가 있는 수

  22. 인덱스된 주소 지정(indexed mode) • 인덱스된 주소지정 • 인덱스 레지스터의 내용을 명령어 주소 부분에 더해서 유효주소 구함 • 특정한 CPU레지스터나 레지스터 set 중의 하나 • 인덱스 레지스터는 명령어의 주소 영역에 대한 상대적인 위치 값을 가짐 • 배열을 인덱싱할 때 주로 사용 • 유효 주소 = 명령어 주소부분의 내용 + 인덱스레지스터의 내용 • 베이스-레지스터 모드 • 인덱스된 주소지정방식의 변형 • 인덱스 레지스터 대신 베이스-레지스터를 사용 • 베이스 레지스터는 베이스 주소를 가짐

  23. 주소지정 방식의 요약 OP-code mode 250 PC = 250 251 연산코드 : AC에 적재하라 R1 = 400 252 AC 400 500 752 800 900 기억장치

  24. 과 제 OP-code mode 100 PC = 100 101 연산코드 : AC에 적재하라 R1 = 200 102 AC 200 302 500 800 900 기억장치

  25. 명령어의 종류 • 기본적인 명령어 집합 • 데이터 전송명령어 • 데이터 처리명령어 • 프로그램 제어명령어

  26. 데이터 전송 명령어 • 2진 정보의 내용을 변화시키지 않고 한 장소에서 다른 장소로 데이터를 전송하는 것 • 레지스터간, 레지스터와 기억장치간, 기억장치간 • 입출력 명령어가 포함 • 대표적인 명령어

  27. 데이터 처리 명령어 • 데이터에 대한 연산을 실행하고 컴퓨터에 계산 능력을 제공 • 산술 명령어 • 사칙연산에 대한 산술 명령어를 제공 • 1증가, 1감소, 2의 보수 등의 연산을 포함 • 논리와 비트 처리 명령어 • 레지스터나 기억장치에 저장된 단어에 대해 2진 연산을 수행 • 오퍼랜드 각 비트를 독립적으로 간주하며 각 비트를 부울식의 한 변수로 처리 • Clear, Set, Complement, AND, OR, … • 쉬프트 명령어 • 오퍼랜드의 비트를 왼쪽이나 오른쪽으로 이동 • 논리적 쉬프트 : 남는 비트는 0으로 채움 • 산술적 쉬프트 : 부호 비트는 고정, 왼쪽은 부호로 오른쪽은 0으로 • 회전형 쉬프트 : 버려지는 비트는 반대쪽으로 순환

  28. 프로그램 제어 명령어 • 프로그램 명령어는 기억 장치에 연속적으로 저장됨 • 제어장치에 의해 연속적으로 읽어 하나씩 처리 • 명령어를 가져올 때마다 PC가 자동으로 1씩 증가되어 다음 명령어의 주소를 갖게 됨 • 프로그램 제어 명령어의 수행 • PC의 값과 제어 흐름이 바뀜 • 이전 계산 결과에 따라 흐름을 제어하거나 다른 프로그램 세그먼트로 분기할 수 있는 능력을 제공하기 때문에 가능

More Related