Page 57 - 컴퓨터구조(프로그래밍 관점에서 바라보는)도서 미리보기
P. 57
269CHAPTER 7? 기계어 프로그래밍을 통한 컴퓨터 구조 이해
기계어 프로그래밍을 이해하기 위해서는, CPU 내부의 기억 장소인 레지스 컴퓨터의 구조를 익히기 위
터(registers)의 개수와 모양, 메인 메모리의 용량, 입출력 방법, 그리고 제 한 목적은 여러 가지가 있을
공되는 기계어(instructions)를 살펴봐야 한다. 수 있다.
yy컴퓨터의 설계, 제작 기
7.1.2? 레지스터
술을 익히기 위해서: 컴
아래의 그림처럼 Pep/8 가상 머신은 6개의 레지스터를 사용한다. 아래 그 퓨터 내부의 다양한 부
림의 작은 네모는 각각 1비트를 의미한다. 즉, Pep/8 가상 머신의 대부분 품들의 설계 방식, 동작
의 레지스터(status bits와 Instruction register를 제외하고)는 16비트(2 바 방식을 이해해야한다. 아
이트)이다. 주 깊은 전기, 전자 회로
등에 대한 사전 지식이
Status bits(NZVC) 필요하다.
Accumulator(A) yy보다 효율적인 소프트웨
어 프로그래밍을 위해 하
Index register(X) 드웨어 구조를 익히기 위
Program counter(PC) 해서: 고급 언어를 이용해
서 프로그래밍을 하더라
Stack pointer(SP) 도 하드웨어의 구조를 이
해하고 있다면 보다 효율
적인 프로그래밍이 가능
하다(본 교재의 목표다).
레지스터는 CPU 내부에
위치한 작은 용량의 메모
리이다. 보통 메인 메모리
에서 가져온 데이터나 인
스트럭션을 잠시 저장하기
위해서 사용된다.
Instruction register(IR)
Pep/8 가상 머신의 레지스터
각 레지스터의 용도에 대해서 알아보자.
yyStatus Bits(상태 레지스터): 기계어 실행 결과로 발생하는 CPU 내부의 상태
를 기억한다. NZVC 4비트로 구성된다. 예를 들어, 연산 결과 값이 음수이
면 N(negative)이, 결과값이 ‘0’이면 Z(zero)가, 연산 결과로 오버 플로우가
발생하면 V(overflow)가, 연산 결과로 캐리가 발생하면 C(carrry) 비트가 1
로 세팅되고, 그렇지 않은 경우는 0이 된다.