미리보기
성공과 실패를 결정하는 1%의 프로그래밍 작동 원리
ISBN 978-89-315-5597-4
저자 가와마타 아키라
발행일 2019-08-07
역자 권기태
분량 496쪽
편집 2도
판형 188*240
개정판정보 2019년 8월 7일 발행
정가 23,000원↓
판매가 20,700
(10% off)
적립금 1,150원(5%)
  소득공제
도서소개



62fb0327bcc5f355






■ 책 소개

 

이 책만큼 하드웨어 기반의 프로그래밍 구조와 


작동 원리에 대해 체계적으로 설명한 책은 없다!


최근 코딩 교육에 대한 관심이 뜨겁다. 선진국들은 이미 코딩을 정규 교육과정에 편입시켜 교육 중이며, 우리나라도 전국 초․중․고교에서 소프트웨어 교육을 의무화하고 있다. 간단한 퍼즐이나 블록 맞추기 등을 비롯해, 파이썬, 자바, C와 같은 소프트웨어 관련 교육을 받고 있다. 그러나 이에 앞서 소프트웨어 교육 효과를 극대화하기 위해서는 프로그래밍 교육과 함께 소프트웨어가 실행되는 컴퓨터 시스템 자체를 이해할 수 있는 동작 원리를 이해하고, 프로그램이 컴퓨터상에서 실행되는 과정을 이해하는 것이 효과적인 소프트웨어의 첫걸음이다.

 

이 책은 프로그래밍을 시작하고 싶어하는 사람과 프로그램 능력을 키우고 싶어하는 프로그래머 및 컴퓨터 사용자를 위해 하드웨어의 구조 및 프로그램이 작동하는 원리를 9장에 나누어 설명하고 있다. 알기 쉬운 대화형 해설과 풍부한 사진 자료 및 실제 코딩 소스를 통해 자연스럽게 따라할 수 있도록 구성하였다. 또한 부록에는 에뮬레이터 EE8080의 조작 설명은 물론, 본문에서 다룬 보충 설명을 정리하여 구성하였다.

 

종래의 컴퓨터공학 개론 강의는 세 가지 유형, 즉 특정 언어를 실습하는 프로그래밍 입문 과정, 컴퓨터공학과의 각 전공 내용을 조금씩 다루는 과정, MS 오피스 프로그램을 주로 다루는 과정으로 구분된다.

이 책은 컴퓨터공학 개론 과목의 성격에 가장 부합하는 책으로, 비트 수준의 기본 로직부터 CPU 구조와 명령, 아키텍처, 운영 체제와 어셈블러, 고급 언어의 컴파일 과정 등과 같은 다양한 주제를 알기 쉽게 다루고 있으며, 자기증식 프로그램, 자살 프로그램 등의 흥미 있는 주제까지 아우른다. 또한 저자가 직접 개발한 에뮬레이터를 이용해 직접 실습하면서 원리를 깨우칠 수 있다.

이 책을 공부하는 데 필요한 자료는 저자의 깃허브(github)에 공개하고 있으며, 강의를 위한 실습 자료 또는 독학을 위한 유용한 자료가 될 것이다.

 


■ 지은이

가와마타 아키라

1964년 도쿄 출생.

현재 주식회사 piedey 사장.

Visual C# MVP.

태어나서 처음 읽은 마이컴 입문서로 8080의 어셈블리 언어에 흥미를 느껴, 대학 시절에 ENIX에서 이식 프로그래머로서 Z80 능력을 한계까지 이끌어냈다. 대표 저서로는 《완전판 궁극의 C# 프로그래밍-신스타일에 의한 실천적 코딩》(기술평론사)이 있다.

 

 

■ 역자

권기태

서울대학교 계산통계학과를 졸업하고 동 대학원에서 전산학전공으로 이학석사 및 이학박사 학위를 취득했다. 현재 강릉원주대학교 컴퓨터공학과 교수로 재직 중이다.







목차


머리말

역자의 말

 

Chapter_00 이 책이 목표로 하는 것

0.1 이 책의 목적

0.2 이 책이 제공하는 에뮬레이터에 관해

0.3 에뮬레이터의 소스 코드에 관해

0.4 이 책에서 소개하는 소스 코드

 

Chapter_01 기본 논리 편

1.1 디지털과 아날로그

1.2 연속과 이산

1.3 그래도 디지털이 승리하는 이유

1.4 아날로그 컴퓨터는 존재하는가?

1.5 디지털 정보는 얼마나 분할하는 것이 좋은가?

1.6 조지 부울의 등장

1.7 비트

1.8 전압과 비트

1.9 비트 연산

1.10 진리표

1.11 진리표와 등가 회로

1.12 회로 기호도

1.13 논리 연산의 응답 속도

1.14 음의 논리 출력 게이트

1.15 음의 논리 입력 게이트

1.16 다입력 게이트

1.17 수치의 기저

1.18 바이트

1.19 바이트의 친구들

1.20 2진수와 비트의 공통점

1.21 2진수와 비트의 차이점

1.22 1의 보수와 2의 보수

1.23 2의 보수의 비대칭성

1.24 부호 비트

1.25 고정소수점 실수

1.26 부동소수점 실수

1.27 오차의 문제

1.28 8진수

1.29 10진수

1.30 2진화10진수

1.31 16진수

1.32 와이어드 OR

1.33 3상태

1.34 가산기

1.35 플립플롭

1.36 래치

1.37 카운터

1.38 디코더

1.39 멀티플렉서

 

Chapter_02 CPU 구조/명령 편

2.1 CPU란?

2.2 조상님을 부활시키자

2.3 Z80이라는 옵션

2.4 Intel 8080의 내부 구조

2.5 시분할 버스

2.6 내부 버스와 외부 버스

2.7 버스 수

2.8 레지스터/래치

2.9 8비트 레지스터와 16비트 레지스터

2.10 8비트 레지스터로 간주되는 것

2.11 16비트 레지스터로 간주되는 것

2.12 버퍼

2.13 주소 버퍼

2.14 플래그 플립플롭

2.15 리틀 엔디언과 빅 엔디언

2.16 Intel 8080 전체 명령의 상세한 설명

2.17 연산 장치

2.18 10진 보정

2.19 명령 디코더 및 기계 사이클 인코더

2.20 레지스터 배열

2.21 레지스터 선택

2.22 멀티플렉서

2.23 타이밍 및 제어

2.24 전원

2.25 CPU 패키지

2.26 인터럽트

2.27 DMA

2.28 CPU 구조 편의 나머지

2.29 CPU –그 외의 필수 지식

 

Chapter_03 시스템 편

3.1 표준화된 서비스

3.2 직렬 버스와 병렬 버스

3.3 메모리(기억 장치)

3.4 교환 가능한 메모리

3.5 메모리–고쳐 쓰는 것이 가능한지의 여부

3.6 메모리 –액세스 속도 에 따른 분류

3.7 주요한 RAM의 분류

3.8 D-RAM 리프레시

3.9 주요한 ROM의 분류

3.10 메모리 백업

3.11 캐시 메모리

3.12 뱅크 전환

3.13 뱅크 전환과 CP/M

3.14 2포트 메모리

3.15 병렬 입출력

3.16 직렬 입출력

3.17 인터럽트 제어기

3.18 DMA 제어기

3.19 디스크 제어기

3.20 CRT 제어기

3.21 수동 DMA

3.22 문자 생성기

3.23 텍스트 VRAM과 그래픽 VRAM

3.24 사운드 생성기

3.25 주소 디코더

3.26 간이 디코더와 고스트 이미지

3.27 클럭 생성기

3.28 버스 버퍼

3.29 키보드 인터페이스

3.30 마우스 인터페이스

3.31 전원

3.32 마더보드

 

Chapter_04 펌웨어 편

4.1 구동 스타일

4.2 구동의 역사

4.3 펌웨어와 BIOS

4.4 PC의 구동 순서

4.5 기계어 모니터와 완전히 독립한 시스템

4.6 CPU 에뮬레이터의 구현

 

Chapter_05 운영 체제 편

5.1 운영 체제의 역할

5.2 운영 체제의 기본 구조

5.3 CP/M의 부팅

5.4 BIOS의 내용

5.5 CP/M을 사용하여 BIOS를 개발한다면

 

Chapter_06 어셈블러 편

6.1 기계어를 어셈블러에서 처리

6.2 어셈블러의 기본 구조

6.3 어셈블러의 분류

6.4 LOAD 명령의 존재 의의

6.5 링커의 존재 의의

6.6 어셈블러의 장단점

6.7 에뮬레이터 EE8080의 간이 어셈블러

 

Chapter_07 고급 언어 편

7.1 어셈블러의 한계

7.2 문법과 규격과 구현

7.3 인터프리터와 컴파일러

7.4 간단한 고급 언어를 시험적으로 만들어보자

7.5 언어 명세의 확정

7.6 어휘 분석

7.7 구문 분석

7.8 실행 또는 코드 생성

7.9 minibf의 소스 코드

7.10 컴파일러 컴파일러

7.11 구문 트리

7.12 최적화

7.13 레지스터 변수와 레지스터 컬러링

7.14 코드 생성

 

Chapter_08 보안 편

8.1 자기증식 프로그램은 가능한가?

8.2 무한 자기증식 프로그램은 가능한가?

8.3 악의를 가진 제삼자가 처리에 끼어들 수 있는가?

8.4 자살 프로그램은 가능한가?

8.5 프로그램이 서로를 망가뜨리는 게임은 가능한가?

 

Chapter_09 마무리

9.1 마법과 분간할 수 없다

9.2 과거를 보면 미래가 보인다

9.3 그리고 여러분이 사용하는 애플리케이션이 탄생했다

 

부록

에뮬레이터 EE8080 조작 설명

WordMaster 간이 레퍼런스

CP/M CCP 간이 레퍼런스

CP/M CALL 5 간이 레퍼런스

CP/M DDT 간이 레퍼런스

ADM-3A 간이 레퍼런스

독자를 위한 힌트

 

찾아보기

 




저자
부록/예제소스
정오표
    최근 본 상품 1