본문 바로가기
CS

명령어 형식과 특징

by noddu 2023. 9. 27.
728x90
반응형

 

 

 

명령어 형식

3주소 명령어 형식

  • 원래 자료가 없어지지 않고 보전됨
  • 프로그램 전체 길이가 짧아짐
  • 명령어의 길이가 길어짐
  • 메모리에 접근하는 횟수가 많아져서 수행시간이 길어짐

Operand 1과 Operand 2를 연산해서 Operand 3에 저장합니다

ADD 1(Operand1)  2(Operand2) = 3(Operand3)

 

 

2주소 명령어 형식

  • 가장 일반적으로 사용되는 명령어 형식

처리 결과가 Operand 1에 저장됩니다

ADD 1(Operand1)  2(Operand2) = 3(Operand1)

 

 

1주소 명령어 형식

  • 누산기(ACC)를 이용하여 연산함

LOAD 1(Operand1)  = 1의 데이터를 ACC에 저장

ADD 2(Operand1)  = 2의 데이터를 ACC에 저장된 데이터와 합

 

 

0주소 명령어 형식

  • 모든 연산은 스택(Stack) 메모리를 사용함
  • 스택 머신(Stack Machine)이라고 함

 

 

 

명령어

 

명령어의 구성

연산자부(OP-Code : Operation Code) 자료부(Operand)
연산에 필요한 동작에 맞는 연산자
n비트일 때 최대 2ⁿ개의 명령어 사용
크기는 메모리 용량과 관계
n비트일 때 최대 2ⁿ의 주소를 지정
2¹⁰이 1K(정확히 1,024비트이지만 1K로)

 

연산자의 기능

데이터 전송 명령어 (자료 전달 기능)

Load 메모리에서 CPU로 읽어오는 기능
Store CPU에 있는 내용을 메모리에 저장하는 기능
Move 자료 전달 기
Push 스택에 자료를 저장하는 명령
Pop 스택에서 자료를 꺼내오는 명령

제어 기능

무조건 분기 명령 GOTO, JMP(Jump) 등
조건 분기 명령 IF 조건
Call 부 프로그램 호출
Return 부 프로그램에서 주 프로그램으로 복귀

 

연산(Operation)
AND(Masking Operation) 0과 AND 연산을 하면 0이 돼 Masking
OR(Selective-set) 1과 OR 연산을 하면 1이 돼 Selective-set
XOR(Compare) 두 개의 데이터를 비교하거나 특정 비트를 반전
NOT(Complement, 보수연산) - 각 비트의 값을 반전
- 보수를 구하는 연산
논리 Shift - 왼쪽 또는 오른쪽으로 데이터 이동, 병렬 데이터를 직렬 데이터로 변환할 때
- 데이터를 이동하고 삽입되는 자리는 무조건 0
산술 Shift - 왼쪽으로 n비트 Shift하면 2ⁿ을 곱한 것과 같음
- 오른쪽으로 n비트 Shift하면 2ⁿ으로 나눈 것과 같음
- 데이터를 이동하고 삽입되는 자리는 수치 표현 방법에 따라 다름

 

산술 Shift

  왼쪽 산술 Shift(곱셈) 오른쪽 산술 Shift(나눗셈)
종류 패딩 비트 패딩 비트
부호화 절대치 항상 0 항상 0
1의 보수 양수 - 0
음수 - 1
(부호 비트)
양수 - 0
음수 - 1
(부호 비트)
2의 보수 항상 0 양수 - 0
음수 - 1
(부호 비트)

 

반응형