안녕하세요? 이대원 회원님 ^^
정보처리 자격시험 온라인 강의, 최강! 기사친구의 가족이 되신 것을 환영합니다.
회원님, 좋은 자료와 의견주셔서 감사드립니다.
만약 이 문제로 인해 합격여부가 당락이 되셨다면 위로의 말씀 전해드리구요..
아마도 시행처에서는 Operand 1에서 숫자에 의미를 두는 것이 아니라
Operand에 결과가 저장된다는데 의미를 두고 출제한 것으로 생각됩니다.
출제자의 의도가 좀 더 명확하게 판단되어 수험생 여러분들께서
혼란이 없었으면 하는 바람을 가져봅니다.
힘내시구요.. 정보처리기사 최종 합격하시길 진심으로 기원합니다. 화이팅!! ^^
회원님의 정보처리기사 합격의 순간까지 기사친구가 늘 함께 하겠습니다.
감사합니다.
다음 답변은 제가 직접 신문고를 통해 민원제기하고 얻은 답변입니다. 참고하시기바랍니다. 작성자는 산업인력공단 담당자입니다.
[2009년 문제]
3-주소 명령어의 설명으로 옳은 것은?
가. 결과는 1st operand에 남는다.
나. 결과는 2nd operand에 남는다.
다. 결과는 3rd operand에 남는다.
라. 결과는 임시 구역에 남는다. (정답 : 다)
[2011년 문제]
3주소 명령어 연산에서 결과가 저장될 수 있는 곳은?
구 조 |
OP |
operand1 |
operand2 |
operand3 |
가. PC(program counter) 나. stack
다. operand1 라. 임시저장소
(정답 : 다)
○ 3주소 명령어는 operand부가 3부분으로 구성되어 있으며 1주소, 2주소 명령어와 달리 그 결과값을 3개의 operand부 중 어느 한 곳에 연산 결과값을 저장하는 명령어 형식입니다.
[2009년 문제]에서 1st operand, 2nd operand, 3rd operand의 의미는
명령어 처리 절차 상 수행되는 operand의 순서적 개념을 의미합니다.
- 실제 명령어 적용 예 : ADD R3, R1, R2
- 위 명령어는 1st operand에 의해 R1(피연산자1의 값)을 저장하고, 2nd operand에 의해 R2(피연산자2의 값)을 저장하며, 마지막으로 ADD 명령(R1 + R2)에 의한 연산 결과값을 3rd operand에 저장한다는 의미입니다.
(만일 2주소 명령어 형식일 경우에는 그 결과값을 1st operand 또는 2nd operand에 저장합니다.)
[맺 음 말]
○ 3주소 명령어는 operand부가 3부분으로 구성되어 있다는 것만 정의되었을 뿐,
○ 설명 상 편의를 위해 operand1 ~ operand3으로 칭하며, 이 때 지칭한 operand1 ~ operand3은 개념적 의미일 뿐입니다. 다시 말하면 [2011년 문제]에서 3주소 명령어 구조를 다음과 같이 표현할 수도 있습니다.
구 조 |
OP |
operand3 |
operand2 |
operand1 |
○ 따라서, [2009년 문제]는 명령어 수행 시 각 operand의 역할 중 피연산자를 저장하고 있지 않은 3rd operand에 결과를 저장하며, [2011년 문제]는 operand부가 operand1, operand2, operand3으로 명명된 구조를 제시했을 때, operand1, operand2, operand3 중 결과를 저장할 수 있는 곳은 보기항에 존재하는 operand1이며, [2009년]의 1st operand와 구조를 제시한 [2011년]의 operand1는 전혀 다른 의미이기 때문에 제기한 문제의 답에 대한 일관성과는 무관합니다. |