이번에는 operand 와 opcode에 대하여 설명해 보겠습니다
먼저, opcode 란? Operation to be performed
opcode란? Indicate where data are(address라고도 표현합니다!)
그림으로 살펴보시죠!
Number of Operands
1. Three Operands
ADD A, B, C
Destination: A
Source: B, C
A<- B+C(B와 C의 합산한 값을 A에 저장)
2. Two Operands
ADD A,B
Destination:A
Sources: A and B
A<- A+B (A+B의 값을 A에 저장)
3. One Operand
operand가 하나인 경우에는
- special register “AC”(Accumulator), which hold data value
=> AC 에 data value 를 저장해놓는 거죠! 보겠습니다
ADD A
Destination: AC
Sources: A and AC
AC <- AC+A
LD A
Destination: AC
Source: A
AC <- A
이런식으로 operand의 갯수에 표현하는 방법이 많이 다릅니다.
그렇다면 operand가 없이 표현하는 건 가능할까요??? 굳이 이야기 하자면 가능 합니다!! 밑에를 보시죠
4. Zero Operands
STACK - First In First Out(FIFO)를 사용해서
모든 operand들이 TOS(Top Of Stack)에 들어오게 되는거죠
Data는 push or pop을 통해 움직입니다
예시를 볼까요??
Push A
Push B
ADD
Pop C
위와 같은 instruction은 operand가 필요하지 않으므로 Zero operand instruction이라고 부릅니다!
Operand 숫자가 늘어나면 수행하는데 있어 더 적은 숫자의 instruction이 필요하게 됩니다!! 예를 들어 볼까요??
Z = (A+B) /C 를 각각의 operand의 갯수를 통해 문제를 해결해 보겠습니다! 그림을 보시져
간단한 연산식이라 Two 와 One의 갯수가 같지만 operand의 숫자가 많아 질 수록 instruction의 갯수는 줄어드는걸 보 실수 있습니다!
이건 부수적인 이야기 이지만
operand의 숫자가 늘어나게 될 수록 BUS가 더 넓어집니다!
그럼 BUS가 뭘까요??
왼쪽 원은 CPU 오른 쪽 네모는 Memory 입니다
자 그림을 보시면 Load, Fetch, Store가 나와있죠?
Load: Cpu로 data를 가져오는 행위
Fetch: Cpu로 부터 data를 가져오는 행위
store: Cpu가 Memory에 data를 저장하는 행위
이러한 행위들은 바로 "전기신호"를 통해 명령하게 되는데 이러한 전기신호가 지나다니는 통로를 "BUS"라고 부릅니다!!
다음에는 addressing mode에 대하여 정리해 보겠습니다!
'컴퓨터구조' 카테고리의 다른 글
1.1장 - Instruction Set architecture (1) | 2021.10.24 |
---|