-
[문제해설] 다음 Y=(A+B)(C+D)의 식에 대하여 2주소 명령어 방식을 이용했을 때 표기되는 마지막 연산코드 (가) (나) (다)는 무엇인가?전자계산기조직응용기사/실기 필답형 기출문제 해설 2021. 9. 8. 03:25반응형
전자계산기조직응용기사 실기 필답형 기출문제 (어셈블리어;인스트럭션) - 2018년3회
다음 Y=(A+B)(C+D)의 식에 대하여 2 주소 명령어 방식을 이용했을 때 표기되는 마지막 연산코드 (가) (나) (다)는 무엇인가?
MOV R1 A ADD R1 B MOV R2 C ADD R2 D MUL R1 R2 (가) (나) (다)
- 문제 해설 -
어셈블리어 문제는 생소해서 어렵게 느끼시는 분이 많지만, 쉽게 출제되기 때문에 조금만 알면 아주 쉽게 풀 수 있습니다.(심지어 배점도 높은 편입니다.) 사실 전자계산기기사의 주요 프로그래밍 언어가 어셈블리어고, 조직응용기사는 C언어지만, 어셈블리어는 컴퓨터 구조의 인스트럭션(instruction)과 이와 관련된 명령어 형식이 너무도 중요하기 때문에 조직응용기사에서도 자주 출제가 되고 있습니다.
각설하고 어셈블리어에 대해 필요한 만큼만 알아보겠습니다.
그럼 어셈블리어 코드 문제로 나올만한 니모닉 몇 개를 살펴보겠습니다.
니모닉 의미 ADD + (덧셈) SUB - (뺄셈) MUL × (곱셈) DIV ÷ (나눗셈) PUSH 스택 입력 POP 스택 출력 MOV 자료 전송 너무 적어서 불안하실 겁니다. 하지만 조직응용기사에선 어셈블리어 코드 문제는 이 정도에서 나옵니다.
이번엔 문법이라고 말하기 민망한 어셈블리어의 문법을 살펴보겠습니다.
OP code Operand 이렇게 어셈블리어는 OP 코드와 오퍼랜드로 구성됩니다. OP 코드는 명령어입니다. 앞서 본 니모닉이 오는 자리입니다. 그리고 오퍼랜드는 레지스터, 메모리 주소, 값(value) 등이 오며, 콤마로 구분된 개수에 따라, 0 주소, 1 주소, 2 주소, 3 주소 명령어로 형식을 분류하기도 합니다.
그럼 문제에서 주어진 표를 코드처럼 표시해 라인 별로 살펴보겠습니다.
1 MOV R1, A 2 ADD R1, B 3 MOV R2, C 4 ADD R2, D 5 MUL R1, R2 6 (가) (나),(다)
1라인 : MOV R1, A
MOV는 자료 전송 명령입니다. 첫 번째 오퍼랜드인 R1 레지스터에 두 번째 오퍼랜드인 B의 값을 전송합니다. 그럼 1라인이 실행한 후에 레지스터 R1의 값은 A입니다.
2라인 : ADD R1, B
ADD는 덧셈 명령입니다. 레지스터 R1에 있는 값과 B의 값의 합을 레지스터 R1에 저장합니다. 그럼 2라인이 실행한 후에 레지스터 R1의 값은 A+B입니다.
3라인 : MOV R2, C
레지스터 R2에 C의 값을 전송합니다. 3라인이 실행 후엔 레지스터 R2의 값은 C입니다.
4라인 : ADD R2, D
레지스터 R2의 값과 D의 값의 합을 레지스터 R2에 저장합니다. 4라인 실행 후에는 레지스터 R2의 값은 C+D가 됩니다.
5라인 : MUL R1, R2
MUL은 곱셈 명령입니다. 레지스터 R1과 R2의 곱을 레지스터 R1에 저장합니다. 5라인 실행 후 레지스터 R1의 값은 (A+B)(C+D)가 됩니다.
마지막 6라인에 어떤 코드가 들어갈지 감이 옵니다. 문제에서 주어진 식 Y=(A+B)(C+D)는 Y에 (A+B)(C+D) 저장한다는 의미이므로, 레지스터 R1의 값을 Y에 저장하면 됩니다.
MOV Y, R1
이렇게 자료 전송 니모닉인 MOV를 사용하면 됩니다.
그럼 정답은 (가) MOV, (나) Y (다) R1 이 됩니다.
https://youtube.com/playlist?list=PLboXycXmAIDt4ObBRPVj29BuD2d27oRnO
전자계산기조직응용기사 실기 필답형
국가기술자격증 전자계산기조직응용기사 실기 필답형 강의
www.youtube.com
반응형'전자계산기조직응용기사 > 실기 필답형 기출문제 해설' 카테고리의 다른 글
[문제해설] 4096 x 8bit ROM에 필요한 최소한의 핀의 수는 몇개인가? (4) 2021.09.16 [문제해설] 2입력 EX-OR(그림) 3개를 사용해서 4입력 EX-OR GATE를 구성하시오.(단, 전달지연이 가장 작게 구성하시오.) (0) 2021.09.09 [문제해설] 2진수 '1000'의 짝수 패리티 해밍코드를 구하시오. (2) 2021.09.07 [문제해설] 3개의 페이지 프레임을 가진 주기억장치 FIFO 교체알고리즘을 사용할 경우 페이지 부재는 몇 회 발생하는가? (0) 2021.09.07 [문제 해설] 8bit 레지스터에 10진수 13이 기억되어 있을 때 left shift 연산을 3회 수행한 결과 값을 10진수로 나타내시오. (0) 2021.08.31