Computers/(한빛) 컴퓨터개론

ch4. 컴퓨터 구조

emzei 2010. 9. 26. 11:15

1. 시스템 버스의 역할과 종류에 대해 설명하여라.

- 역할 : 중앙처리장치, 주기억장치, 입출력 장치들을 연결하는 일

- 종류 : 주소버스 / 데이터버스 / 제어버스

2. 프로그램이 실행되는 과정을 개략적으로 나타내어라.

- 보조기억장치에서 주기억장치로 불러와 주기억장치에 들어온 프로그램의 명령어들을 하나씩 차례댈 읽어 실행

3. 중앙처리장치를 구성하는 세 가지 장치에 대해 설명하여라.

제어장치 - 프로그램 명령어 해석 ~ 동작 지시

연산장치 - 산술연산·논리연산 수행

레지스터 - 명령어/데이터 저장 또는 연산 결과 저장

4. 중앙처리장치가 한 명령어를 실행하는 세 단계에 대해 설명하여라.

인출 - 주기억장치로부터 명령어를 하나씩 읽어옴

해독 - 읽어온 명령어를 제어 정보로 해독

실행 - 해독된 명령어 실행

5. 주기억장치가 제공하는 두 가지 동작은 무엇인가?

쓰기 - 중앙처리장치가 주기억장치에 데이터를 저장

읽기 - 주기억장치에 저장된 데이터를 중앙처리장치로 읽음

6. 프로그램 명령어의 기본 형식을 나타내어라.

연산코드

피연산자

7. 대부분의 중앙처리장치가 제공하는 세 가지 명령어는 무엇인가?

 

명령어의 분류

설명

데이터 전송 명령어

레지스터 또는 주기억장치의 데이터를 레지스터 또는 주기억장치로 이동하는 명령어와 입출력장치와 데이터를 주고받는 입출력 명령어가 있다.

연산 명령어

더하기, 빼기, 곱하기, 나누기 등의 산술 연산을 하는 명령어, AND, OR, NOT, XOR 등의 논리 연산 명령어, 레지스터에 저장된 비트들을 이동시키는 시프트 명령어가 있다.

분기 명령어

다음에 실행될 명령어를 새롭게 지정하는 명령어다.

8. 다음 명령어를 실행하는 과정을 나타내어라

MOV BX [150]

: 주기억장치 주소 150에 저장된 값을 읽어와 레지스터 BX에 저장한다는 뜻

①제어장치가 명령어[MOV BX[150]]를 해독한다

②주소버스에 150을, 제어버스에 읽기 제어신호를 보낸다

③주기억장치 주소 150에 저장된 값#을 데이터버스를 통해 읽어와 레지스터 BX에 저장한다

 

9. 다음 명령어를 실행하는 과정을 나타내어라

ADD AX BX

:레지스터 AX와 BX에 저장도니 값을 더해서 레지스터 AX에 저장하는 명령

①제어장치는 명령어 레지스터에 저장된 명령어[ADD AX BX]를 해독하여 레지스터 AX에 저장된 100과 레지스터 BX에 저장된 200을 연산장치로 전송한다

②연산장치는 제어장치의 지시에 따라 이 두값을 더하고 그 결과값#을 레지스터 AX에 저장한다

 

10. 50번지 명령어에 의해 함수가 호출되고 함수 실행이 종료되기까지의 동작 과정을 나타내어라.



※분기명령어인 CALL은 프로그램 카운터에 저장되어 있는 주소를 스택에 저장하고, 다른 위치로 분기하는 명령어로 함수를 호출할 때 사용한다.

 

①제어장치가 명령어[CALL 100]을 해독한다

②프로그램 카운터에 저장되어있는 주소 $$를 스택에 삽입하는데, 스택 포인터에 20이 저장되있다 가정하고, 주소 20에 $$를 저장한다.

③스택 포인터는 1이 증가되어 21이 되고, CALL 100의 100을 프로그램 카운터에 저장하면 동작이 종료된다.

④그러면 함수의 첫번째 명령어인 주소 100의 명령어부터 실행된다.

⑤ 주소 100~109의 명령어들을 실행하고, 주소 110의 RETURN을 실행하게 된다.

 

그런데, RETURN은 함수의 끝을 의미하는 것으로, 함수 호출 명령인 CALL 100 다음 주소의 명령어가 실행되도록 한다. 그러므로 RETURN을 실행하면 스택 포인터 값을 1 감소시킨 주소 20에 저장된 $$을 꺼내서 프로그램 카운터에 저장한다.

 

 

 

11. 다음 연상 기호 코드 형식의 프로그램 실행 동작을 나타내어라.

 

 MOV AX [11]

주기억장치 주소 11의 값을 레지스터 AX로 읽어옴

 MOV BX [12]

주기억장치 주소 12의 값을 레지스터 BX로 읽어옴
 ADD AX BX

레지스터 AX와 BX에 저장된 값을 더한 결과를 AX에 저장

 MOV [13] AX

AX의 값을 주기억장치 주소13에 저장

 HALT

프로그램 종료

 

12. 다음 2진 표기법 형식의 프로그램 실행 동작을 나타내어라.

 

00001011

주기억장치 주소 11의 내용을 범용 레지스터 00으로 전송

00011100

주기억장치 주소 12의 내용을 범용 레지스터 01로 전송

10000001

범용 레지스터 00과 01의 값을 더해 00에 저장

01001101

범용 레지스터 00의 내용을 주기억장치 주소 13으로 전송

11000000

프로그램 종료

 

※2진 표기법 형식

- 2진 표기법 형식의 명령어를 살펴보기 위해 다음과 같은 가정을 한다.

  • 주기억장치는 바이트 단위로 분할하며 0부터 15까지 16개의 주소를 갖는다.
  • 범용 레지스터는 4개로 각 번호는 00, 01, 10, 11이다.
  • 명령어의 길이는 8비트로, 처음 2비트는 명령코드고, 다음 2비트는 피연산자 1부분, 나머지 4부분은 피연산자 2부분이다.

 

명령코드

피연산자1

피연산자2

 

 

 

 

 

 

 

 

  • 명령어로는 다음의 4가지가 있다.

명령

코드

피연산자1

피연산자2

설명

00

범용 레지스터 번호

주기억장치 주소

주소가 피연산자2인 주기억장치 내용을 레지스터 피연산자1로 전송한다.

01

범용 레지스터 번호

주기억장치 주소

레지스터 피연산자1의 내용을 주소가 피연산자2인 주기억장치로 전송한다.

10

범용 레지스터 번호

범용 레지스터 번호

레지스터 피연산자1의 값과 레지스터 피연산자2의 값을 더해 레지스터 피연산자1에 저장한다.

11

00

0000

실행을 종료한다.

 


'Computers > (한빛) 컴퓨터개론' 카테고리의 다른 글

ch6. 프로그래밍 언어  (0) 2010.12.28
ch5. 운영체제  (0) 2010.12.28
ch3. 부울대수와 논리회로  (0) 2010.08.08
ch2. 수 체계와 데이터 표현  (0) 2010.08.08
ch1. 서론  (0) 2010.07.25