기출문제/정보처리기사

2018년 2회 정보처리기사 기출문제 28번

엉클지니 2025. 5. 28. 23:22

28. 컴퓨터 시스템에서 1-address machine, 2-address machine, 3-address machine으로 나눌 때 기준이 되는 것은?

    operation code       기억장치의 크기

    register               operandaddress

 

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 세 개의 주소 (두 피연산자 + 결과 저장지) ✅ 기준은 주소 수!