000 | 00000cam c2200205 4500 | |
001 | 000045189019 | |
005 | 20220427093329 | |
007 | ta | |
008 | 050902s2005 ggka 001a kor | |
020 | ▼a 8989975719 ▼g 93560 : ▼c \25,000 | |
035 | ▼a KRIC09981911 | |
040 | ▼a 221020 ▼c 221020 ▼d 221020 ▼d 244002 ▼d 211009 | |
041 | 1 | ▼a kor ▼h eng |
056 | ▼a 566 ▼2 4 | |
082 | 0 4 | ▼a 005.1 ▼2 22 |
090 | ▼a 005.1 ▼b 2005k ▼c 1 | |
100 | 1 | ▼a Hyde, Randall, ▼d 1956- ▼0 AUTH(211009)145296 |
245 | 1 0 | ▼a Great code. ▼n 1 , ▼p 하드웨어의 이해 / ▼d Randall Hyde 저 ; ▼e 전동환 [외]역. |
260 | ▼a 의왕 : ▼b 에이콘, ▼c 2005 ▼g (2007). | |
300 | ▼a xvii, 441 p. : ▼b 삽도 ; ▼c 26 cm. | |
500 | ▼a 색인수록 | |
500 | ▼a 부록 : ASCll문자셋 외 수록 | |
500 | ▼a 공역자: 최재식, 강승훈, 김원호 | |
653 | ▼a 하드웨어 | |
700 | 1 | ▼a 전동환, ▼e 역. |
700 | 1 | ▼a 최재식, ▼e 역 |
700 | 1 | ▼a 강승훈, ▼e 역 |
700 | 1 | ▼a 김원호, ▼e 역 |
900 | 1 0 | ▼a 하디, 랜달 |
940 | ▼a 최고의 코드 |
Holdings Information
No. | Location | Call Number | Accession No. | Availability | Due Date | Make a Reservation | Service |
---|---|---|---|---|---|---|---|
No. 1 | Location Main Library/Monographs(3F)/ | Call Number 005.1 2005k 1 | Accession No. 111343128 | Availability Available | Due Date | Make a Reservation | Service |
No. 2 | Location Centennial Digital Library/Stacks(Preservation)/ | Call Number 005.1 2005k 1 | Accession No. 111343127 | Availability Available | Due Date | Make a Reservation | Service |
No. 3 | Location Sejong Academic Information Center/Science & Technology/ | Call Number 005.1 2005k 1 | Accession No. 151182508 | Availability Available | Due Date | Make a Reservation | Service |
No. | Location | Call Number | Accession No. | Availability | Due Date | Make a Reservation | Service |
---|---|---|---|---|---|---|---|
No. 1 | Location Main Library/Monographs(3F)/ | Call Number 005.1 2005k 1 | Accession No. 111343128 | Availability Available | Due Date | Make a Reservation | Service |
No. | Location | Call Number | Accession No. | Availability | Due Date | Make a Reservation | Service |
---|---|---|---|---|---|---|---|
No. 1 | Location Centennial Digital Library/Stacks(Preservation)/ | Call Number 005.1 2005k 1 | Accession No. 111343127 | Availability Available | Due Date | Make a Reservation | Service |
No. | Location | Call Number | Accession No. | Availability | Due Date | Make a Reservation | Service |
---|---|---|---|---|---|---|---|
No. 1 | Location Sejong Academic Information Center/Science & Technology/ | Call Number 005.1 2005k 1 | Accession No. 151182508 | Availability Available | Due Date | Make a Reservation | Service |
Contents information
Book Introduction
'GREAT CODE' 시리즈는 최고의 코딩, 최고의 프로그래머가 되기 위해 닦아야 할 개념 원리를 학습해서 프로그래머의 내공을 높여주는 원리학습 가이드다. 더 빠르고 훌륭한 최고의 코드를 짤 수 있도록 전 4권에 걸쳐 프로그래밍의 근본원리를 쉽게 가르쳐준다.
시리즈 1권에는 최고의 프로그래머가 되기 위해 반드시 알고 넘어가야 할 하드웨어와 컴퓨터 아키텍처에 대한 모든 내용을 담았다. C++, VB, 파스칼, 자바 등 여러 고급언어 프로그래머를 대상으로 하며, 컴퓨터 교육과정에서 흔히 다루지 않는 컴퓨터 구조의 기계적인 수준까지도 자세하게 다루고 있다.
Information Provided By: :

Author Introduction
랜달 하이드(지은이)
『The Art of Assembly Language』, 『Write Great Code』 시리즈, 『Using 6502 Assembly Language』와 『P-Source』의 저자며, 『The Waite Group's MASM 6.0 Bible』의 공저자다. 지난 40여 년간 원자력 발전기, 교통신호 시스템, 다양한 소비자용 전자 제품을 위한 임베디드 소프트웨어 및 하드웨어 개발 도구를 만들었고, 포모나에 위치한 캘리포니아 폴리테크닉 주립대학교(California State Polytechnic University)와 리버사이드에 위치한 캘리포니아 대학교(University of California)에서 컴퓨터 과학을 가르쳤다. 프로그래밍과 소프트웨어 엔지니어링에 대한 다양한 자료를 제공하는 웹 사이트(www.randallhyde.com)를 운영한다.
전동환(옮긴이)
서울대학교 컴퓨터공학과를 졸업하고 MOS 테크놀로지에서 순수 국산 RTOS인 Velos 개발에 참여했다. 현재 미국 캘리포니아대학교 샌디에이고 캠퍼스(UC San Diego)의 컴퓨터공학과에서 박사과정을 밟으며 새로운 컴퓨터 프로세서에 대한 연구를 하고 있다. 표지가 예쁜 중고 음반과 세일 폭이 큰 와인을 사랑한다. 역서로 에이콘출판사에서 펴낸 『인사이드 머신』(2007), 『켄트 벡의 구현 패턴』(2008) 등이 있다.
김원호(옮긴이)
서울대학교 컴퓨터공학과를 졸업했다. 트랙나인㈜에서 개발 팀장을 맡았고 케이비테크놀러지㈜의 자바 카드개발팀에서 자바카드 KONA 개발을 담당했다. 현재는 서울대학교 MMLAB에서 연구원으로 일하면서 NetBSD 기반의 무선 네트워크 테스트베드를 구축해 관련 연구를 수행 중이다. 2007년 가을에 미국 프린스턴 대학의 컴퓨터과학 박사과정으로 진학할 예정이다. 하드커버 원서를 수집하는 것이 취미이며, 면세점 양주를 모으는 한편 소비하는 것도 즐긴다.
최재식(옮긴이)
서울대학교 컴퓨터공학과를 졸업하고 소만사㈜에서 CRM 관련 제품 개발 팀장을 맡았다. 옥수수밭과 콩밭으로 둘러싸인 미국 일리노이 주립대학교(UIUC)에서 컴퓨터과학 박사과정 학생으로 재학 중이다. 로봇 시스템과 관련한 AI 알고리즘이 주요 연구 관심사다.
강승훈(옮긴이)
서울대학교 컴퓨터공학과를 졸업하고 현재 케이비테크놀러지㈜ 플랫폼개발팀 팀장으로 다양한 칩 플랫폼상에 자바카드를 개발하고 있다. 최근에는 3G UICC/USIM 카드 개발에 집중하면서 비참하게도 점점 살이 붙고 있다. 그래도 원호의 면세점 양주 소비에는 기꺼이 동참하고 있다.

Table of Contents
[volume. vol.2]---------- 목차 감사의 글 = ⅳ 저자 소개 = ⅴ 옮긴이의 말 = ⅵ 옮긴이 소개 = ⅶ 들어가며 = xviii 1장 로우레벨을 고려한 프로그램 최적화 = 1 1.1 컴파일러 품질에 대한 오해 = 2 1.2 어셈블리 언어를 배워야 하는 이유 = 2 1.3 어셈블리 프로그래머가 될 필요는 없다 = 3 1.4 로우레벨에 대한 고려 = 3 1.4.1 받은 만큼만 돌려주는 컴파일러 = 4 1.4.2 컴파일러가 좋아하는 코드의 특성 = 4 1.4.3 어셈블리를 고려한 고급언어 코딩 방법 = 5 1.5 고급언어 코딩 = 7 1.6 이 책을 읽기 위해 필요한 사전 지식 = 7 1.7 언어 중립적인 접근 방법 = 8 1.8 최고의 코드가 가지는 특징 = 8 1.9 동작 환경 = 9 1.10 참고 자료 = 10 2장 어셈블리 언어를 꼭 배워야 할까? = 11 2.1 어셈블리 언어는 배우기 어렵다 = 11 2.2 해결책: GREAT CODE 제2권 = 12 2.3 해결책: 고급 어셈블러 = 13 2.4 고급 어셈블러 HLA = 14 2.5 하이레벨로 생각하고 로우레벨로 코딩하기 = 15 2.6 로우레벨 프로그래밍 패러다임 = 16 2.7 유용한 참고 문헌 = 19 3장 고급언어 프로그래머를 위한 80×86 어셈블리 = 21 3.1 배워두면 도움되는 어셈블리 언어 = 21 3.2 80×86 어셈블리 문법 = 22 3.3 기본 80×86 아키텍처 = 23 3.3.1 레지스터 = 23 3.3.2 80×86 범용 레지스터 = 24 3.3.3 80×86 EFLAGS 레지스터 = 25 3.4 리터럴 상수 = 26 3.4.1 이진 리터럴 상수 = 26 3.4.2 십진 리터럴 상수 = 27 3.4.3 16진 리터럴 상수 = 27 3.4.4 문자와 문자열 리터럴 상수 = 28 3.4.5 실수 리터럴 상수 = 29 3.5 선언(기호) 상수 = 30 3.5.1 HLA에서의 선언 상수 = 30 3.5.2 Gas에서의 선언 상수 = 30 3.5.3 MASM과 TASM에서의 선언 상수 = 31 3.6 80×86 주소 지정 방식 = 31 3.6.1 80×86 레지스터 주소 지정 방식 = 31 3.6.2 즉시 주소 지정 방식 = 33 3.6.3 직접 메모리 주소 지정 방식 = 33 3.6.4 레지스터 간접 주소 지정 방식 = 35 3.6.5 인덱스 주소 지정 방식 = 36 3.6.6 스케일 인덱스 주소 지정 방식 = 38 3.7 데이터 선언 = 40 3.7.1 HLA에서의 데이터 선언 = 40 3.7.2 MASM과 TASM에서의 데이터 선언 = 41 3.7.3 Gas에서의 데이터 선언 = 41 3.8 오퍼랜드 크기 지정 = 44 3.8.1 HLA에서의 타입 지정 = 44 3.8.2 MASM과 TASM에서의 타입 지정 = 45 3.8.3 Gas에서의 타입 지정 = 45 3.9 80×86 기본 명령어 셋 = 46 3.10 참고 자료 = 46 4장 고급언어 프로그래머를 위한 파워PC 어셈블리 = 47 4.1 배워두면 도움되는 어셈블리 언어 = 48 4.2 어셈블리 문법 = 48 4.3 기본 파워PC 아키텍처 = 48 4.3.1 범용 정수 레지스터 = 49 4.3.2 범용 실수 레지스터 = 49 4.3.3 유저 모드용 특수 목적 레지스터 = 49 4.4 리터럴 상수 = 52 4.4.1 이진 리터럴 상수 = 52 4.4.2 십진 리터럴 상수 = 53 4.4.3 16진 리터럴 상수 = 53 4.4.4 문자와 문자열 리터럴 상수 = 53 4.4.5 실수 리터럴 상수 = 53 4.5 선언(기호) 상수 = 54 4.6 파워PC 주소 지정 방식 = 54 4.6.1 파워PC 레지스터 접근 = 54 4.6.2 즉시 주소 지정 방식 = 54 4.6.3 파워PC 메모리 주소 지정 방식 = 55 4.7 데이터 정의 = 57 4.8 오퍼랜드 크기 지정 = 59 4.9 기본 명령어 넷 = 59 4.10 참고 자료 = 60 5장 컴파일러 동작과 코드 생성 = 61 5.1 프로그래밍 언어가 사용하는 파일 유형 = 62 5.2 프로그래밍 언어 소스 파일 = 62 5.2.1 토큰화 형식 소스 파일 = 62 5.2.2 특화된 소스 파일 포맷 = 63 5.3 컴퓨터 언어 처리기의 유형 = 63 5.3.1 순수 인터프리터 = 63 5.3.2 인터프리터 = 64 5.3.3 컴파일러 = 64 5.3.4 증분 컴파일러 = 65 5.4 번역 과정 = 66 5.4.1 어휘 분석과 토큰 = 67 5.4.2 파싱(구문 분석) = 69 5.4.3 중간 코드 생성 = 70 5.4.4 최적화 = 70 5.4.5 컴파일러 옵션 비교 = 81 5.4.6 네이티브 코드 생성 = 81 5.5 컴파일러의 출력물 = 81 5.5.1 고급언어 코드로 된 컴파일러 출력 = 82 5.5.2 어셈블리 언어로 된 컴파일러 출력 = 83 5.5.3 오브젝트 파일로 된 컴파일러 출력 = 84 5.5.4 실행 파일로 된 컴파일러 출력 = 85 5.6 오브젝트 파일 포맷 = 85 5.6.1 COFF 파일 헤더 = 86 5.6.2 COFF 옵션 헤더 = 88 5.6.3 COFF 섹션 헤더 = 91 5.6.4 COFF 섹션 = 93 5.6.5 재배치 섹션 = 93 5.6.6 디버깅과 심벌 정보 = 94 5.6.7 오브젝트 파일 포맷에 대해 더 공부하려면 = 94 5.7 실행 파일 포맷 = 94 5.7.1 페이지, 세그먼트, 파일 크기 = 95 5.7.2 내부 단편화 = 97 5.7.3 공간 최적화를 하는 이유 = 98 5.8 오브젝트 파일 안의 데이터와 코드 정렬 = 99 5.8.1 섹션 정렬 크기 선택 = 100 5.8.2 섹션 연결 = 101 5.8.3 섹션 정렬 값 제어 = 101 5.8.4 섹션 정렬 값과 라이브러리 모듈 = 102 5.9 링커와 링커가 코드에 주는 영향 = 110 5.10 참고 자료 = 113 6장 컴파일러 출력물 분석 툴 = 115 6.1 배경 지식 = 116 6.2 컴파일러에서 어셈블리 코드를 출력하게 하는 법 = 117 6.2.1 GNU와 볼랜드 컴파일러의 어셈블러 코드 출력물 = 117 6.2.2 비주얼 C++의 어셈블리 코드 출력물 = 118 6.2.3 어셈블리 코드 출력물 예제 = 118 6.2.4 컴파일러의 어셈블리 코드 출력물 분석 = 128 6.3 컴파일러 출력물 분석을 위한 오브젝트 코드 유틸리티 = 129 6.3.1 마이크로소프트의 dumpbin.exe 유틸리티 = 129 6.3.2 FSF/GNU의 objdump.exe 도구 = 142 6.4 컴파일러 출력물 분석을 위한 역어셈블러 사용법 = 146 6.5 컴파일러 출력물 분석을 위한 디버거 사용법 = 149 6.5.1 통합 환경에 내장된 디버거를 사용하는 법 = 150 6.5.2 독립 디버거를 사용하는 법 = 152 6.6 컴파일러 출력물 비교 = 153 6.6.1 diff를 이용한 코드의 수정 전/후 비교 = 153 6.6.2 수작업을 통한 비교 = 162 6.7 참고 자료 = 163 7장 상수와 고급언어 = 165 7.1 리터럴 상수와 프로그램 효율성 = 166 7.2 리터럴 상수와 선언 상수 = 168 7.3 상수식 = 169 7.4 선언 상수와 읽기 전용 메모리 객체 = 171 7.5 열거형 = 172 7.6 불리언 상수 = 174 7.7 실수 상수 = 176 7.8 문자열 상수 = 182 7.9 복합 데이터 타입 상수 = 186 7.10 참고 자료 = 188 8장 고급언어의 변수 = 189 8.1 실행시 메모리 구성 = 189 8.1.1 코드, 상수, 읽기 전용 섹션 = 190 8.1.2 정적 변수 섹션 = 192 8.1.3 BSS 섹션 = 193 8.1.4 스택 섹션 = 195 8.1.5 힙 섹션과 동적 메모리 할당 = 195 8.2 변수란 무엇인가 = 196 8.2.1 속성 = 196 8.2.2 바인딩 = 196 8.2.3 정적 객체 = 197 8.2.4 동적 객체 = 197 8.2.5 범위 = 197 8.2.6 수명 = 198 8.2.7 그래서 변수가 뭔데? = 198 8.3 변수 저장 공간 = 198 8.3.1 정적 바인딩과 정적 변수 = 199 8.3.2 유사 정적 바인딩과 자동 변수 = 203 8.3.3 동적 바인딩과 동적 변수 = 206 8.4 공통 기본 데이터 타입 = 210 8.4.1 정수 변수 = 210 8.4.2 부동 소수점/실수 변수 = 213 8.4.3 문자 변수 = 214 8.4.4 불리언 변수 = 215 8.5 변수 주소와 고급언어 = 216 8.5.1 전역 변수와 정적 변수의 저장 공간 할당 = 216 8.5.2 자동 변수 사용을 통한 옵셋 크기 줄이기 = 217 8.5.3 중간 변수를 위한 저장 공간 할당 = 223 8.5.4 동적 변수와 포인터를 위한 저장 공간 할당 = 224 8.5.5 레코드/구조체 사용을 통한 명령 옵셋 크기 줄이기 = 226 8.5.6 레지스터 변수 = 227 8.6 메모리에서 변수 정렬하기 = 229 8.6.1 레코드와 정렬 = 235 8.7 참고 자료 = 239 9장 배열 자료형 = 241 9.1 배열이란 무엇인가 = 242 9.1.1 배열 선언 = 242 9.1.2 메모리에서 배열 표현 = 246 9.1.3 배열 원소에 접근하기 = 250 9.1.4 패딩과 패킹 = 252 9.1.5 다차원 배열 = 255 9.1.6 동적 배열과 정적 배열 = 270 9.2 참고 자료 = 279 10장 문자열 자료형 = 281 10.1 문자열 형식 = 282 10.1.1 0으로 끝나는 문자열 = 282 10.1.2 길이로 시작하는 문자열 = 300 10.1.3 7비트 문자열 = 302 10.1.4 HLA 문자열 = 303 10.1.5 서술자 기반 문자열 = 306 10.2 정적, 유사 동적, 동적 문자열 = 307 10.2.1 정적 문자열 = 308 10.2.2 유사 동적 문자열 = 308 10.2.3 동적 문자열 = 309 10.3 문자열의 참조 카운팅 = 309 10.4 델파이/카이릭스 문자열 = 310 10.5 고급 언어에서의 문자열 사용 = 311 10.6 문자열의 문자 데이터 = 312 10.7 참고 자료 = 314 11장 포인터 자료형 = 315 11.1 포인터의 정의와 오해 = 316 11.2 고급언어에서의 포인터 구현 = 317 11.3 포인터와 동적 메모리 할당 = 320 11.4 포인터 동작과 포인터 연산 = 320 11.4.1 포인터에 정수 더하기 = 321 11.4.2 포인터에서 정수 빼기 = 323 11.4.3 포인터에서 포인터 빼기 = 324 11.4.4 포인터 비교 = 325 11.4.5 논리 AND/OR와 포인터 = 327 11.4.6 포인터의 다른 연산 = 328 11.5 단순 메모리 할당자 예제 = 329 11.6 가비지 콜렉션 = 331 11.7 운영체제와 메모리 할당 = 332 11.8 힙 메모리 오버헤드 = 333 11.9 일반적인 포인터 문제 = 335 11.9.1 포인터를 초기화하지 않은 채로 사용하는 것 = 335 11.9.2 잘못된 값이 있는 포인터를 사용하는 것 = 337 11.9.3 포인터를 해제한 후에 그 공간을 사용하는 것 = 337 11.9.4 프로그램이 공간을 전부 사용한 후에 해제하지 않는 것 = 338 11.9.5 잘못된 자료형으로 간접 참조하는 것 = 339 11.10 참고 자료 = 340 12장 레코드, 유니온, 클래스 자료형 = 341 12.1 레코드 = 342 12.1.1 여러 언어에서의 레코드 선언 = 342 12.1.2 레코드의 인스턴스 생성 = 344 12.1.3 컴파일시에 레코드 데이터 초기화 = 350 12.1.4 레코드의 메모리 저장소 = 355 12.1.5 메모리 효율을 높이기 위한 레코드 사용 = 358 12.1.6 동적 레코드 타입과 데이터베이스 = 359 12.2 판별자 유니온 = 360 12.3 여러 언어에서의 유니온 선언 = 361 12.3.1 C/C++의 유니온 선언 = 361 12.3.2 파스칼/델파이/카이릭스의 유니온 선언 = 361 12.3.3 HLA의 유니온 선언 = 362 12.4 유니온의 메모리 저장소 = 363 12.5 유니온의 또 다른 사용법 = 364 12.6 가변형 = 365 12.7 네임스페이스 = 369 12.8 클래스와 객체 = 371 12.8.1 클래스와 객체의 비교 = 371 12.8.2 C++의 간단한 클래스 선언 = 372 12.8.3 가상 메소드 테이블 = 373 12.8.4 VMT의 공유 = 377 12.8.5 클래스의 상속 = 377 12.8.6 클래스의 다형성 = 380 12.8.7 클래스, 객체, 성능 = 381 12.9 참고 자료 = 382 13장 산술 연산과 논리 연산 = 385 13.1 산술식과 컴퓨터 구조 = 386 13.1.1 스택 기반 컴퓨터 = 386 13.1.2 누산기 기반 컴퓨터 = 391 13.1.3 레지스터 기반 컴퓨터 = 393 13.1.4 산술식의 대표적인 형태 = 394 13.1.5 3주소 구조 = 394 13.1.6 2주소 구조 = 395 13.1.7 구조의 차이점과 코드 = 395 13.1.8 복잡한 수식 다루기 = 396 13.2 산술문 최적화 = 397 13.2.1 상수 접기 = 397 13.2.2 상수 전달 = 398 13.2.3 죽은 코드 제거 = 400 13.2.4 공통 부분식 제거 = 402 13.2.5 연산 대체 = 406 13.2.6 귀납 = 410 13.2.7 루프 불변식 = 413 13.2.8 최적화 도구와 프로그래머 = 416 13.3 산술식에서의 부수효과 = 417 13.4 부수효과 떼어내기: 시퀀스 포인트 = 421 13.5 부수효과로 인한 문제점 회피 = 425 13.6 계산 순서 강제 지정 = 425 13.7 단축 연산 = 427 13.7.1 단축 연산과 불리언 표현식 = 428 13.7.2 단축 연산 혹은 완전 연산 강제하기 = 430 13.7.3 효율성 문제 = 432 13.8 산술 연산의 상대 비용 = 436 13.9 참고 자료 = 437 14장 분기 제어 구조 = 439 14.1 제어 구조는 계산에 비해 느리다! = 439 14.2 로우레벨 제어 구조에 대한 소개 = 440 14.3 goto문 = 443 14.4 break, continue, next, return문 = 447 14.5 if문 = 448 14.5.1 특정 if/else문의 효율성 향상 = 450 14.5.2 if문에서 완전 불리언 연산 강제하기 = 453 14.5.3 if문에서 단축 불리언 연산 강제하기 = 460 14.6 switch/case문 = 466 14.6.1 switch/case문의 의미 = 467 14.6.2 점프 테이블과 연속 비교 = 468 14.6.3 switch/case문의 기타 구현 방법 = 475 14.6.4 switch문에 대한 컴파일러의 출력물 = 487 14.7 참고 자료 = 487 15장 반복 제어 구조 = 489 15.1 while 루프 = 489 15.1.1 while 루프에서 완전 불리언 연산 강제하기 = 492 15.1.2 while 루프에서 단축 불리언 연산 강제하기 = 501 15.2 repeat..until(do..until/do..while) 루프 = 504 15.2.1 repeat..until 루프에서 완전 불리언 연산 강제하기 = 507 15.2.2 repeat..until 루프에서 단축 불리언 연산 강제하기 = 510 15.3 forever..endfor 루프 = 515 15.3.1 forever 루프에서 완전 불리언 연산 강제하기 = 518 15.3.2 forever 루프에서 단축 불리언 연산 강제하기 = 518 15.4 유한 루프(for 루프) = 518 15.5 참고 자료 = 520 16장 함수와 프로시저 = 521 16.1 간단한 함수와 프로시저 호출 = 521 16.1.1 반환 주소 저장 = 525 16.1.2 오버헤드의 다른 원인 = 529 16.2 리프 함수와 리프 프로시저 = 530 16.3 매크로와 인라인 함수 = 534 16.4 함수나 프로시저로 인자 전달 = 540 16.5 활성화 레코드와 스택 = 547 16.5.1 활성화 레코드의 구성 = 550 16.5.2 지역 변수에 옵셋 할당 = 553 16.5.3 옵셋과 인자 = 555 16.5.4 지역 변수와 인자에 접근 = 560 16.6 인자 전달 방법 = 568 16.6.1 값에 의한 전달 = 569 16.6.2 참조에 의한 전달 = 569 16.7 함수의 반환 값 = 571 16.8 참고 자료 = 578 부록 A 80×86 계열 CPU와 파워PC 계열 CPU의 간단한 비교 = 579 A.1 RISC와 CISC의 아키텍처 차이 = 580 A.1.1 명령어당 수행 작업 = 580 A.1.2 명령어의 크기 = 581 A.1.3 클록 속도와 명령어당 클록 수 = 581 A.1.4 메모리 접근과 주소 지정 방식 = 582 A.1.5 레지스터 = 583 A.1.6 즉시(상수) 오퍼랜드 = 583 A.1.7 스택 = 584 A.2 컴파일러와 애플리케이션 바이너리 인터페이스 문제 = 585 A.3 양쪽 아키텍처에서 훌륭한 코드를 작성하려면 = 585 찾아보기 = 586