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 (부호 비트) |
반응형
'CS' 카테고리의 다른 글
반가산기와 전가산기 (0) | 2023.09.19 |
---|---|
논리게이트와 드 모르간 법칙 (0) | 2023.09.10 |
10진 표현 pack형식/unpack형식, 2진 부동 소수점 (0) | 2023.09.05 |
패리티 비트, 해밍 코드 (0) | 2023.09.05 |
BCD 코드, 그레이 코드, 3초과 코드 (0) | 2023.09.05 |