장바구니 담기 close

장바구니에 상품을 담았습니다.

시스템 프로그래밍 (개정판)

시스템 프로그래밍 (개정판)

  • 이상곤
  • |
  • 생능출판사
  • |
  • 2015-02-12 출간
  • |
  • 408페이지
  • |
  • 190 X 260 mm
  • |
  • ISBN 9788970508276
판매가

28,000원

즉시할인가

27,720

배송비

2,500원

(제주/도서산간 배송 추가비용:3,000원)

예약도서

08월01일 출고예정

수량
+ -
총주문금액
27,720

※ 스프링제본 상품은 반품/교환/환불이 불가능하므로 신중하게 선택하여 주시기 바랍니다.

출판사서평




기초적인 컴퓨터 기본 동작으로부터 시스템 소프트웨어 설계 및 구현 사례를 망라하여 수록

컴퓨터 소프트웨어는 시스템 소프트웨어와 응용 소프트웨어로 나누어지는데, 일반적으로 후자는 고급 언어를 전자는 어셈블리어를 많이 사용하므로, 시스템 프로그래밍 방법은 어떤 특정 어셈블리어를 이용하여 예제를 만들고 이를 위한 어셈블러를 만드는 방법으로 설명한다.
그동안 대다수의 시스템 프로그래밍 책이 다룬 IBM 360 어셈블러는 이미 사용하지 않는 컴퓨터에 대한 내용인 반면에, 현재 대부분의 국내 대학에서는 인텔 프로세서 계열의 PC를 가지고 컴퓨터 실습을 하고 있는 실정이다. 따라서 이 책은 지금까지 이미 존재하지 않은 기계에 대한 내용을 실습도 하지 못하면서 배워야 했던 불편함을 해결하고자 인텔 프로세서 기반의 시스템 프로그래밍을 설계하여 실습할 수 있도록 집필하였다.
이 책은 인텔 프로세서를 위한 시스템 소프트웨어들(어셈블러, 매크로 프로세서 등)의 설계 방법과 알고리즘을 설명하고, 실제 구현 코드를 [부록]에 수록함으로서 시스템 소프트웨어의 구현 능력을 배양하도록 하였다. 또한 이를 통해 인텔 계열뿐만 아니라 Motorola사의 M68 계열과 Z80 계열 등과 같이 기종이 다른 프로세서를 위한 일반적인 시스템 소프트웨어 설계 및 구현 방법을 습득할 수 있도록 하였다.

이 책의 내용

1장에서는 시스템 소프트웨어와 임베디드 시스템에 대하여 살펴본다.
2장에서는 일반적인 컴퓨터 시스템의 개념 부분으로 연산의 기본 논리, 명령어 실행의 기본 개념, 기억 장치의 관리 등을 다룬다.
3장에서는 어셈블리어(Assembly Language)에 대해 설명한다. 이를 이해하기 위해서는 프로세서의 내부 구조를 알아야 한다. 이 장에서는 인텔 프로세서에 대한 기억 장치 모델과 레지스터의 종류 및 역할 등을 통해 인텔 프로세서의 내부 원리를 터득한다.
4장에서 어셈블러를 설계하기 위해서는 기본적인 어셈블리 언어의 동작을 알아야 한다. 따라서 이에 필요한 어셈블리 언어를 간단한 프로그램 통하여 명령어 및 주소 지정 방식들을 이해하여야 한다.
5장에서는 어셈블러 프로그램에서 매크로 확장을 할 때 필요한 매크로 프로세서의 원리와 설계 시 고려사항, 자료구조, 이중 패스에 의한 구현 알고리즘, 이 알고리즘의 구현에 대하여 알아본다. 이 장에서 설계된 방법으로 구현한 프로그램을 [부록]에 수록하였다.
6장에서는 어셈블러의 기능과 이를 구현하기 위한 알고리즘을 설명한다. 이중 패스 알고리즘으로 구현한 간단한 어셈블러를 [부록]에 수록하였다. 수록된 어셈블러 코드는 다양한 기능의 어셈블러로 확장할 수 있다.
7장에서는 어셈블러가 생성한 모듈을 연결하고 메모리에 적재하는 기능을 수행하는 링커와 로더를 설계하는 알고리즘을 이해한다.
8장에는 어셈블리 프로그램의 연습을 수록하였다


목차


chapter 01 시스템 소프트웨어의 개요
1.1 컴퓨터 하드웨어
1.1.1 컴퓨터 시스템의 기본 개념
1.1.2 시스템 소프트웨어 정의
1.2 시스템 소프트웨어
1.2.1 어셈블러(assembler)
1.2.2 매크로 프로세서(macro processor)
1.2.3 링커(linker)와 로더(loader)
1.2.4 번역기(Translator)
1.2.5 운영체제(Operating System)
1.3 임베디드 시스템(Embedded System)의 개요 및 활용
1.3.1 임베디드 시스템의 정의
1.3.2 임베디드 시스템을 설계하거나 개발할 때 고려 사항
1.3.3 임베디드 시스템 활용의 예
요약
연습문제

chapter 02 컴퓨터 동작의 기본 개념
2.1 컴퓨터 연산 단위
2.1.1 비트(Bit)
2.1.2 바이트(Byte)
2.1.3 단어(Word)
2.1.4 2진수 연산
2.2 컴퓨터 조직
2.2.1 프로세서(processor)
2.2.2 시스템 버스(system bus)
2.2.3 기억 장치(memory)
2.2.4 입출력 장치(input/output device)
2.3 명령어 실행 개념
2.3.1 판독 사이클(read cycle)과 기록 사이클(write cycle)
2.3.2 명령어의 실행
2.3.3 명령어 실행 속도
2.4 기억 장치 관리
2.4.1 기억 장치의 주소
2.4.2 데이터 및 프로그램의 저장
2.4.3 기억 장치의 관리 방법
요약
연습문제

chapter 03 인텔 프로세서의 내부 구조
3.1 32비트 인텔 프로세서
3.1.1 펜티엄 프로세서의 개요
3.1.2 32비트 프로세서의 실행 환경
3.1.3 기본 프로그램 실행 레지스터
3.2 16비트 인텔 프로세서
3.2.1 16비트 인텔 프로세서의 구조
3.2.2 명령어의 길이
3.2.3 8086 명령어
3.3 기억 장치(memory)
3.3.1 기억 장치의 모델
3.3.2 데이터 기록
3.4 레지스터(register)
3.4.1 레지스터의 종류와 역할
3.4.2 데이터 레지스터(data register)
3.4.3 포인터, 인덱스 레지스터
3.4.4 플래그 레지스터(Flag Register)
3.4.5 세그먼트 레지스터(Segment Register)
3.4.6 논리 주소와 실제 주소
3.4.7 명령어 포인터(IP: Instruction Pointer)
3.5 데이터의 표현
3.5.1 데이터의 부호(sign)
3.5.2 데이터의 해석
요약
연습문제

chapter 04 어셈블리어
4.1 프로그래밍 언어
4.1.1 수의 체계
4.1.2 프로그래밍 언어의 계층
4.1.3 고급 언어와 중급 언어
4.1.4 저급 언어
4.1.5 프로그래밍 언어의 선택
4.2 메모리와 레지스터
4.2.1 메모리
4.2.2 세그먼트:오프셋(Segment:Offset)
4.2.3 레지스터(Register)
4.3 8086 어셈블리어 개요
4.3.1 어셈블리 언어의 기본적인 이해
4.3.2 명령어 형식
4.3.3 주석문
4.3.4 데이터 정의
4.4 분기와 표지 기호
4.4.1 순차적 실행(sequential execution)
4.4.2 조건 분기(conditional branch)
4.4.3 무조건 분기(Unconditional Branch)
4.5 주소 지정 방식(Addressing Mode)
4.6 값 즉시 지정 방식
4.7 직접 주소 지정 방식
4.7.1 레지스터 직접 지정 방식
4.7.2 메모리 직접 주소 지정 방식
4.8 간접 주소 지정 방식
4.8.1 레지스터 간접 주소 지정 방식([ ])
4.8.2 베이스 주소 지정 방식(Displacement, BX, BP)
4.8.3 인덱스 주소 지정 방식(Displacement, SI, DI)
4.8.4 베이스 인덱스 번지 지정 방식(Displacement, BX or BP, SI or DI)
4.9 MOV와 ADD 명령어의 코드 변환
요약
연습문제

chapter 05 매크로 프로세서 설계
5.1 매크로의 역할
5.1.1 매크로 정의와 확장
5.1.2 매크로와 서브루틴
5.2 매크로 기능
5.2.1 매크로 인수
5.2.2 조건부 매크로 확장
5.2.3 매크로 내의 매크로 호출
5.2.4 매크로 내의 매크로 정의
5.2.5 반복 기능의 매크로
5.3 매크로 프로세서의 설계
5.3.1 설계 시 고려사항
5.3.2 자료구조
5.4 이중 패스 매크로 프로세서 알고리즘
5.4.1 패스 1 알고리즘
5.4.2 기본 기능만 포함하는 패스 2 알고리즘
5.4.3 매크로 내의 매크로 호출 기능을 포함하는 패스 2 알고리즘
요약
연습문제

chapter 06 8086 어셈블러 설계
6.1 어셈블러의 역할
6.1.1 프로그램의 작성과 실행 단계
6.1.2 어셈블러의 입력과 출력
6.2 이중 패스(Two Pass)
6.2.1 이중 패스의 필요성
6.2.2 어셈블 과정
6.2.3 패스 1과 패스 2의 역할
6.3 이중 패스 어셈블러의 설계
6.3.1 이중 패스 알고리즘
6.3.2 자료구조
6.4 단일 패스 어셈블러
6.4.1 단순 전향 참조
6.4.2 다수의 전향 참조 처리
요약
연습문제

chapter 07 링커와 로더의 설계
7.1 링커와 로더의 역할
7.1.1 링크(link)
7.1.2 주기억 장치의 할당(memory allocation)
7.1.3 재배치 및 적재(relocation & loading)
7.2 로더의 형태
7.2.1 컴파일 즉시 로더(compile-and-go loader)
7.2.2 절대 로더(absolute loader)
7.2.3 링커 및 재배치 로더(linker and relocate loader)
7.2.4 링킹 로더(linking loader)
7.2.5 동적 로더(dynamic loader)
7.3 링커 및 재배치 로더 설계
7.3.1 설계를 위한 문제점
7.3.2 링크를 위한 어셈블링(예제)
7.3.3 링크 및 재배치 과정(예제의 연속)
7.4 자료구조 및 알고리즘
7.4.1 자료구조
7.4.2 알고리즘
요약
연습문제

chapter 08 어셈블리 프로그램의 연습
[연습 1] 간단한 키패드 제어 프로그램
[연습 2] Repetive Move Operation의 프로그램
[연습 3] ASCII 파일의 입/출력 프로그램
부록
부록 A. 16진수 변환표, 2의 x제곱
부록 B. ASCII 변환표
부록 C. BCD 코드 변환표
부록 D. 8086/8088 명령어표와 80x86 명령어
부록 E. 어셈블러의 지시어
부록 F. DOS 함수 호출(function call)
부록 G. DEBUG 명령어와 사용법
부록 H. 이중 패스 매크로 프로세서의 구현
부록 I. 이중 패스 어셈블러의 설계 및 구현
부록 J. Visual Basic 6.0으로 설계한 스택 시뮬레이션의 구현 예
부록 K. TASM에서 그래픽 문자의 제거 방법
부록 L. stdio.h에 정의된 함수들
부록 M. 세그먼트(Segment)

교환 및 환불안내

도서교환 및 환불
  • ㆍ배송기간은 평일 기준 1~3일 정도 소요됩니다.(스프링 분철은 1일 정도 시간이 더 소요됩니다.)
  • ㆍ상품불량 및 오배송등의 이유로 반품하실 경우, 반품배송비는 무료입니다.
  • ㆍ고객님의 변심에 의한 반품,환불,교환시 택배비는 본인 부담입니다.
  • ㆍ상담원과의 상담없이 교환 및 반품으로 반송된 물품은 책임지지 않습니다.
  • ㆍ이미 발송된 상품의 취소 및 반품, 교환요청시 배송비가 발생할 수 있습니다.
  • ㆍ반품신청시 반송된 상품의 수령후 환불처리됩니다.(카드사 사정에 따라 카드취소는 시일이 3~5일이 소요될 수 있습니다.)
  • ㆍ주문하신 상품의 반품,교환은 상품수령일로 부터 7일이내에 신청하실 수 있습니다.
  • ㆍ상품이 훼손된 경우 반품 및 교환,환불이 불가능합니다.
  • ㆍ반품/교환시 고객님 귀책사유로 인해 수거가 지연될 경우에는 반품이 제한될 수 있습니다.
  • ㆍ스프링제본 상품은 교환 및 환불이 불가능 합니다.
  • ㆍ군부대(사서함) 및 해외배송은 불가능합니다.
  • ㆍ오후 3시 이후 상담원과 통화되지 않은 취소건에 대해서는 고객 반품비용이 발생할 수 있습니다.
반품안내
  • 마이페이지 > 나의상담 > 1 : 1 문의하기 게시판 또는 고객센터 1800-7327
교환/반품주소
  • 경기도 파주시 문발로 211 1층 / (주)북채널 / 전화 : 1800-7327
  • 택배안내 : CJ대한통운(1588-1255)
  • 고객님 변심으로 인한 교환 또는 반품시 왕복 배송비 5,000원을 부담하셔야 하며, 제품 불량 또는 오 배송시에는 전액을 당사에서부담 합니다.