-
[문제해설] 상대주소지정방식을 사용하는 JUMP 명령어가 450번지에 저장되어 있다. 오퍼랜드가 다음과 같을 때 몇 번지로 JUMP 하는가?전자계산기조직응용기사/실기 필답형 기출문제 해설 2021. 10. 13. 14:46반응형
전자계산기조직응용기사 실기 필답형 기출문제(인스트럭션) - 2017년3회
상대주소지정방식을 사용하는 JUMP 명령어가 450번지에 저장되어 있다. 오퍼랜드가 다음과 같을 때 몇 번지로 JUMP 하는가?
1) A = 21일 때 번지는?
2) B = -45 일 때 번지는?
- 문제 해설 -
인스트럭션(instruction;명령어 ≒ 어셈블리어)과 주소지정방식 개념이 실전에 응용된 좋은 문제입니다.
CPU가 명령어를 실행하기 위해선 메모리에서 명령어를 가져옵니다. 이를 CPU 메이저 상태(major state) 중 인출 단계(Fetch cycle)라고 합니다.
인출 단계의 RTL(Register Transfer Language;레지스터 전송 언어)는 다음과 같습니다.
T0 : MAR ← PC ; 실행될 명령의 주소를 MAR로 이동
T1 : MBR ← M(MAR), PC ← PC + 1 ; MAR이 가리키는 명령어를 MBR로 이동, PC를 1 증가
T2 : IR ← MBR ; MBR의 내용을 명령 레지스터로 전달
T3 : F ← 1 or R ← 1 ; 간접 사이클(indirect cycle) 또는 실행 사이클(Excute Cycle)로 이동
위 RTL에서 눈여겨봐야 될 것은 T1입니다. CPU가 명령어를 실행하기 위해 Fetch 하는 과정에서 PC(프로그램 카운터)를 1 증가시키는 것을 알 수 있습니다.
명령어를 인출하는 과정에서 PC의 변화를 살펴본 이유는, 상대주소지정방식은 오퍼랜드(operand)가 PC의 값과 더해져서 유효 주소를 산출하기 때문입니다.
이러한 명령어 실행 과정의 이해를 토대로 문제를 풀어보겠습니다.
명령어가 450번지에 저장되어 있으면, 이 명령어를 Fetch 하기 이전의 PC의 값은 450입니다.
명령어를 Fetch 하게 되면 PC는 1 증가하여 451이 되고 실행단계(Excute Cycle)로 넘어가게 됩니다.
실행단계에서는 JUMP 명령어가 상대주소지정방식이므로 PC와 오퍼랜드 값을 더해 얻은 유효 주소로 분기하게 됩니다.
그럼 오퍼랜드 A가 21일 때는,
실행단계에서 PC는 451이므로, 451 + 21 = 472. 472번지로 점프하게 됩니다.
오퍼랜드 B가 -45일 때는, 451 - 45 = 406. 406번지로 점프합니다.
https://youtube.com/playlist?list=PLboXycXmAIDt4ObBRPVj29BuD2d27oRnO
반응형'전자계산기조직응용기사 > 실기 필답형 기출문제 해설' 카테고리의 다른 글
[문제해설] 다음 그림은 4비트 병렬 가산기이다. overflow를 검출하기 위한 점선내의 Gate와 회로내의 결선을 연결하시오. (0) 2022.01.04 [문제풀이] 다음 진리표의 POS 최소화식을 구하고, 회로도를 그리시오. (0) 2021.12.30 [문제해설] 직렬 전송을 하는 컴퓨터가 32bit의 레지스터와 1MHz 클럭을 가질 때 이 컴퓨터의 비트 시간(bit time)과 워드 시간(word time)은? (단, 단위는 초(s)이다.) (0) 2021.10.09 [문제해설] 다음 수식 A/B-C*D를 Postfix로 표시하시오. (0) 2021.10.03 [문제해설] 다음 논리식 Y=A'B'+AB'+AB 식을 간소화 하시오. (0) 2021.10.03