제1항 명령어(Instruction)

(1) 컴퓨터의 명령어

1) 컴퓨터에 대한 일련의 연산을 기술한 2진 코드를 말한다.

2) 컴퓨터에게 특수한 동작(명령어)을 수행할 것을 알리는 비트들의 집합이고연산코드부분과 주소부분(피연산자)으로 나뉘어지고 메모리에 저장된다.


명령레지스터에 호출된 OP 코드를 해독하여 그 명령을 수행시키는데 필요한 각종 제어신호를 만들어 내는 장치는

 

instruction decoder

instruction encoder

instruction counter

instruction multiplexor

 

(.)

 

① op(operation) code

• 연산코드 부분은 동작(Operation)을 정의한 비트들의 집합으로 n비트로 구성되며 최대 2n 개의 서로 다른 연산이 실행 가능하다.

 

• 연산기능

                             i.         산술연산 (ADD, SUB, MUL, DIV, SHIFT, etc…)

                            ii.         논리연산 (NOT, Complement, Shift, Rotate, etc…)

                           iii.         단항연산자(Unary Operator)

1.      피연산자가 1개만 필요한 연산자

2.      NOT, Complement, Shift, Rotate, MOVE 

                           iv.         이항연산자(Binary Operator)

1.      피연산자가 2개 필요한 연산자

2.      사칙연산, AND, OR, XOR, XNOR 

                            v.         AND (Masking Operation) : 특정 비트를 삭제 시키는 연산

                           vi.         OR (Selective-Set) : 특정 비트를 삽입하거나 1로 세트 시키는 연산

                          vii.         XOR(Compare) : 두개의 데이터를 비교하거나특정 비트를 반전시킬 때 사용

                         viii.         NOT(Complement) : 각 비트의 값을 반전시키는 연산보수를 구할 때 사용

 

 

                           ix.         논리 shift: 왼쪽 또는 오른쪽으로 1bit씩 이동하는 연산직렬 전송에 사용

                            x.         Rotate : shift에서 밀려 나가는 비트값을 반대편으로 입력하는 연산문자의 위치를 변환할 때 사용

                           xi.         산술 shift: 부로흘 고려하여 자리를 이동시키는 연산곱하거나 나눌 때 사용

 

• 전달기능

                             i.         Load: 기억장치의 내용을 중앙처리장치에 전달하는 명령어

                            ii.         Store: 중앙처리장치의 정보를 기억장치에 기억시키는 명령어

                           iii.         Move: 특정 레지스터의 내용을 다른 레지스터로 옮기는 명령어

                           iv.         Push, pop: 스택에 자료를 저장인출하는 명령어

  

연산자 기능에 대한 명령어를 나타낸 것 중 옳지 않은 것은?

 

함수 연산 기능 – ROL, ROR

전달기능 – CMP, CLC

제어기능 – JMP, SMA

입출력기능 – INP, OUT

 

전달기능에는 load, store, move, push, pop 등이 있다. (.)

 

• 제어기능

                             i.         무조건 분기 명령 (GOTO, JUMP, etc…)

                            ii.         조건 분기 명령 (IF, SPA, SNA, SZA, etc…)

                           iii.         Call, Return

 


컴퓨터에서 사용하는 명령어를 기능별로 분류할 때 동일한 분류에 포함되지 않는 것은?

 

JMP (jump 명령)

ADD (Addition 명령)

ROL (Rotate Left 명령)

CLC (Clear Carry 명령)

 

ADD, ROL, CLC는 연산기능, JMP는 제어기능에 속한다. (.)

 

• 입∙출력 기능

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

                            ii.         INPUT(입출력 → 주기억), OUTPUT(주기억 → 입출력)

 

② operand

• 피연산자(operand)는 처리할 데이터가 저장되어 있는 레지스터나 메모리 워드주소또한 연산결과가 저장될 장소의 주소를 나타낸다.

 

3) 4096 * 16 메모리

① 주소지정방식

• 묵시적 주소지정방식 (Implied mode)

                             i.         명령어의 형식 상 이미 Operand가 묵시적으로 정해지는 주소 지정 방식

                            ii.         0-주소 명령의 경우 Operand 없이 Stack을 사용한다.

                           iii.         1-주소 명령의 경우 누산기임을 알수 있다.

 

• 즉시 주소지정방식 (Immediate mode)

                             i.         명령어 자체에 실제 데이터를 가지고 있는 방식이다.

                            ii.         별도의 기억장소를 액세스하지 않고 CPU에서 곧바로 자료를 이용할 수 있어서 실행 속도가 빠르다는 장점이 있다.

                           iii.         명령어의 길이에 영향을 받으므로 표현할 수 있는 데이터 값의 범위가 제한적이다.

 

명령어의 operand 부분에 실제 데이터를 갖고 있는 방식은?

 

즉시(Immediate) 주소 지정방식

베이스(base) 주소 지정방식

상대(relative) 주소 지정방식

직접(direct) 주소 지정방식

 

(.)

 

• 직접주소지정방식(dicrect mode)

                             i.         명령의 주소부(operand)가 사용할 자료의 번지를 표현하는 방식이다.

 

• 간접주소지정방식(indirect mode)

                             i.         명령어 내의 operand부에 실제 데이터의 주소가 아니고실제 데이터의 주소가 저장된 곳의 주소를 표현하므로최소한 주기억장치를 두번 이상 접근하여 데이터가 있는 기억장소에 도달한다.

 

                            ii.         명령어에 나타낼 주소가 명령어 내에서 데이터를 지정하기 위해 할당된 비트(operand 부의 비트수로 나타낼 수 없을 때 사용하는 방식이다.

                           iii.         명령의 길이가 짧고 제한되어 있어도 긴 주소에 접근 가능한 방식이다.

                           iv.         간접 주소지정방식을 사용하는 컴퓨터에서의 명령어 형식

I=0이면 직접 주소지정방식이고, I=1이면 간접 주소지정 방식이 된다.



CPU내의 레지스터들과 주기억장치에 다음과 같이 저장되어 있다간접주소지정방식을 사용하는 명령어의 주소 필드에 저장된 내용이 172일 때유효주소와 그로 인해 인출되는 데이터는?

 

유효주소 : 172, 데이터 : 202

유효주소 : 172, 데이터 : 3256

유효주소 : 202, 데이터 : 3256

유효주소 : 202, 데이터 : 172

 

(.)


간접주소(indirect addressing) 방식을 설명한 것은?

 

명령문 내의 번지는 실제 데이터의 주소를 표시한다.

명령문 내의 번지는 절대 주소이므로 더 이상의 연산이 필요하지 않다.

명령문 내의 번지는 상대주소이므로 기본 번지를 더하여 절대 주소가 생성된다.

명령문 내의 번지는 실제 데이터의 위치를 찾을 수 있는 번지가 들어 있는 장소를 표시한다.

 

직접주소지정방식즉시주소지정방식 다상재주소지정방식 (.)

 

• 계산에 의한 주소지정방식

                             i.         상대 주소 지정 방식

기본주소에 상대적으로 표시되는 주소 지정 방식

 

                            ii.         베이스 레지스터

 

                           iii.         인덱스 레지스터

 

② Op-code, operand size 구하기

• 하나의 워드의 크기가 16bit이고 워드가 4096개가 모여있다면

• 주소선은 4096 (212 (210 * 22)) 을 필요하기 때문에 12개의 주소선이 필요하다.

• 명령어 코드는 16-12 = 4개의 선이 필요하며명령어의 개수는 24 = 최대 16개이다.

 

 

명령어의 길이가 16bit이다이중 OP code 6bit, operand 10bit를 차지한다면 이 명령어가 가질 수 있는 연산자 종류는 최대 몇개인가?

 

16

32

64

256

 

(.)


명령어 형식(instruction format) opcode, addressing mode, address 3부분으로 되어 있는 컴퓨터에서 주기억장치가 1024 워드일 경우명령의 크기는 몇비트로 구성되어야 하는가? (, op-code 4비트이며, addressing mode는 직접/간접 주소지정방식 구분에만 사용한다라고 가정한다.)

 

10

15

20

25

 

(.)

 


16-bit 컴퓨터 시스템에서 다음과 같은 2가지의 명령어 형식을 사용할 때 최대 연산자 수는?

 

64

72

86

144

 

(23 = 8) + (26= 64) = 72  (.)

 

(2) 주소(Operand) 형식

 

1) 0-주소

① 오퍼랜드용 주소를 두지 않음

② 스택에 있는 데이터를 사용한다.

③ ADD

 

 

기억장치의 구조가 stack 구조를 가질 때 가장 밀접한 관계가 있는 명령어는?

 

one-address 명령어

two-address 명령어

three-address 명령어

zero-address 명령어

 

(.)

 

2) 1-주소

① AC (Accumulator)를 묵시적으로 이용하여 연산을 수행한다.

② ADD a             ; AC  a + AC

③ LOAD X          ; AC  M[X]

 


주소 부분이 하나밖에 없는 1주소 명령 형식에서 결과 자료를 넣어 두는데 사용하는 레지스터는?

 

accumulator

stack

index register

범용 레지스터

 

(.)

 

3) 2-주소

① 명령어에 2개의 오퍼랜드 주소가 포함

② ADD a, b

 a + b

③ 장점

• 실행속도가 빠르고 기억장소를 많이 차지하지 않는다.

④ 단점

• 연산의 결과는 주소 Operand1에 저장되므로 Operand1에 있던 원래 자료가 파괴된다.

 

4) 3-주소 방식

⑤ 명령어에 3개의 오퍼랜드 주소가 포함

⑥ Add a, b, c

 a + b

⑦ 장점

• 원래의 자료를 파괴하지 않는다.

• 프로그램 전체의 길이를 짧게 할 수 있다.

• 주기억장치에 접근하는 횟수가 줄어든다.

⑧ 단점

• 한 개의 명령어 길이가 길어진다.

'정보처리기사 > 전자계산기구조' 카테고리의 다른 글

07. 기억장치  (0) 2017.08.02
06. 명령 실행과 제어  (0) 2017.08.02
04. 프로세서 - 중앙처리장치 구성요소  (0) 2017.08.02
03. 순서논리회로  (0) 2017.08.02
02. 조합논리회로  (0) 2017.08.02

+ Recent posts