기출문제/정보처리기사
2018년 2회 정보처리기사 기출문제 28번
엉클지니
2025. 5. 28. 23:22
28. 컴퓨터 시스템에서 1-address machine, 2-address machine, 3-address machine으로 나눌 때 기준이 되는 것은?
① operation code ② 기억장치의 크기
③ register 수 ❹ operand의 address 수
300x250
이 문제는 **컴퓨터 구조(Computer Architecture)**에서 **명령어 형식(Instruction Format)**의 분류 기준을 묻는 문제입니다.
핵심 개념을 알면 아주 쉽게 풀 수 있어요 😊
✅ 정답: ❹ operand의 address 수
🔍 문제 해설
컴퓨터의 **명령어(Instruction)**는 보통 다음과 같은 형식으로 되어 있습니다:
[Operation Code] [Operand Address 1] [Operand Address 2] ...
여기서 **"주소(address)의 수"**가 몇 개인지를 기준으로 해서 1-address, 2-address, 3-address 머신으로 구분합니다.
📘 예시로 쉽게 이해하기
🔹 3-address machine
ADD R1, R2, R3
➡️ R1 = R2 + R3
→ 3개의 주소 사용 (두 개의 피연산자 + 결과 저장 주소)
🔹 2-address machine
ADD R1, R2
➡️ R1 = R1 + R2
→ 2개의 주소 사용 (피연산자와 결과 저장이 겹침)
🔹 1-address machine
LOAD A
ADD B
STORE C
➡️ 누산기(Accumulator) 기반
→ 한 번에 한 주소만 사용, 나머지는 암시적으로 누산기를 사용
🔹 0-address machine
스택 구조에서 사용됩니다.
PUSH A
PUSH B
ADD
→ 주소를 명시하지 않고, 스택을 통해 연산
❌ 다른 보기 해설
보기 설명 틀린 이유
① operation code | 명령의 종류 (예: ADD, SUB) | 명령어 종류가 아니라 주소 수가 기준입니다 ❌ |
② 기억장치의 크기 | 메모리 용량 | 명령어 형식 분류 기준과는 무관 ❌ |
③ register 수 | CPU 내부의 레지스터 개수 | 레지스터는 주소 지정과는 별개의 하드웨어 자원 ❌ |
🎓 학생을 위한 요약
분류 기준 설명
0-address | 주소 없음 (스택 사용) |
1-address | 하나의 주소 (나머지는 누산기 등 암시적 사용) |
2-address | 두 개의 주소 (결과 저장지 포함) |
3-address | 세 개의 주소 (두 피연산자 + 결과 저장지) ✅ 기준은 주소 수! |