목차
제1부 기계어
제1장 DEBUG와 연산 = 9
1.1 숫자를 세는 기본적인 방법 = 10
1.2 16진수 = 11
1.3 Debug = 12
1.4 16진수 연산 = 14
1.5 16진수-10진수 변환 = 18
1.6 다섯자리 16진수 = 22
1.7 10진수-16진수 변환 = 23
1.8 음수 = 26
1.9 비트, 바이트, 워드 그리고 2진수 표기 방법 = 29
1.10 음수의 다른 형태인 2의 보수 = 32
1.11 이 장의 요약 = 34
제2장 8088의 연산 기능 = 37
2.1 변수로 사용되는 레지스터 = 38
2.2 메모리와 8088 = 40
2.3 8088의 덧셈 = 44
2.4 8088의 뺄셈 = 47
2.5 8088에서의 음수 = 48
2.6 바이트 단위의 연산 = 49
2.7 8088의 곱셈과 나눗셈 = 51
2.8 이 장의 요약 = 54
제3장 문자 출력 = 57
3.1 유용하고 강력한 명령어, INT = 58
3.2 프로그램을 종료시키는 INT 20h = 61
3.3 명령어의 결합 = 62
3.4 프로그램을 입력하는 방법 = 64
3.5 레지스터에 데이터를 저장하는 MOV 명령어 = 65
3.6 문자열 다루기 = 69
3.7 이 장의 요약 = 71
제4장 2진수 출력 = 73
4.1 비트 회전과 캐리 플래그 = 74
4.2 캐리 플래그를 포함하는 덧셈 = 77
4.3 순환 기능 = 78
4.4 2진수 출력 = 81
4.5 P 명령 = 83
4.6 이 장의 요약 = 84
제5장 16진수 출력 = 85
5.1 상태 플래그와 비트의 비교 = 86
5.2 한 자리 16진수 출력 = 90
5.3 다른 하나의 비트 회전 명령어 = 93
5.4 논리 연산 명령어, AND = 96
5.5 16진수 출력 프로그램 = 98
5.6 이 장의 요약 = 99
제6장 문자 입력 = 101
6.1 한 문자 입력 = 102
6.2 한 자리 16진수 읽어들이기 = 103
6.3 두 자리 16진수 읽어들이기 = 104
6.4 이 장의 요약 = 106
제7장 프로시저와 스택의 사용 = 107
7.1 프로시저에 대해서 = 108
7.2 스택과 복귀 주소 = 111
7.3 PUSH와 POP = 114
7.4 다양한 16진수 읽어들이기 = 115
7.5 이 장의 요약 = 119
제2부 어셈블리 언어
제8장 어셈블러의 소개 = 123
8.1 Debug를 사용하지 않는 프로그래밍 = 124
8.2 소스 파일의 사용 = 128
8.3 링크 = 129
8.4 Debug를 통한 프로그램의 확인 = 132
8.5 주석문 = 133
8.6 레이블 = 133
8.7 이 장의 요약 = 136
제9장 프로시저와 어셈블러 = 139
9.1 어셈블러에서의 프로시저 = 140
9.2 16진수 출력 프로시저 = 144
9.3 모듈화 설계의 기초 = 147
9.4 프로그램의 구조 = 149
9.5 이 장의 요약 = 149
제10장 10진수 출력 = 151
10.1 10진수로의 변환 = 152
10.2 논리 연산을 응용하는 프로그래밍 기법 = 156
10.3 8088이 워드 값을 저장하는 방법 = 158
10.4 이 장의 요약 = 160
제11장 세그먼트 = 163
11.1 8088에서의 메모리 관리 = 164
11.2 스택 세그먼트 = 169
11.3 프로그램 세그먼트 프리픽스(PSP) = 172
11.4 DOSSEG 지시어 = 174
11.5 근거리 호출과 원거리 호출 = 175
11.6 INT 명령어에 대해서 = 179
11.7 인터럽트 벡터 = 181
11.8 이 장의 요약 = 182
제12장 프로그래밍 계획 = 185
12.1 디스켓과 섹터 그리고 DSKPATCH = 186
12.2 프로그래밍 계획 = 190
12.3 이 장의 요약 = 192
제13장 모듈화 설계 방식 = 193
13.1 독립된 소스 파일의 어셈블 = 194
13.2 모듈화 설계 방식의 세 가지 법칙 = 198
13.3 이 장의 요약 = 203
제14장 메모리 출력 = 205
14.1 어드레싱 모드 = 206
14.2 데이터 세그먼트 = 210
14.3 베이스-상대 어드레싱 모드 = 213
14.4 DS의 설정 = 216
14.5 문자를 함께 출력하는 방법 = 217
14.6 256바이트의 메모리 출력 = 220
14.7 이 장의 요약 = 226
제15장 디스크 섹터의 출력 = 227
15.1 MAKE와 MAKEFILE에 대해서 = 228
15.2 MAKE 파일의 구성 = 229
15.3 OPTASM의 MAKE 프로그램 = 231
15.4 DISP_SEC의 수정 = 233
15.5 섹터를 읽어들이는 방법 = 235
15.6 DATA? 지시어 = 241
15.7 이 장의 요약 = 243
제16장 섹터 출력의 개선 = 245
16.1 그래픽 문자의 사용 = 246
16.2 주소 값의 출력 (1) = 249
16.3 수평선의 출력 = 254
16.4 주소 값의 출력 (2) = 260
16.5 이 장의 요약 = 263
제3부 IBM PC의 ROM BIOS
제17장 ROM BIOS 루틴 = 267
17.1 ROM BIOS의 비디오 입출력 루틴 = 268
17.2 화면 지우기 = 271
17.3 커서의 위치 이동 = 274
17.4 메모리 변수의 사용 = 275
17.5 상태 라인 = 280
17.6 이 장의 요약 = 284
제18장 WRITE_CHAR 프로시저의 개선 = 285
18.1 새로운 WRITE_CHAR = 286
18.2 커서가 위치한 줄의 정리 = 290
18.3 이 장의 요약 = 293
제19장 키보드 입력 = 295
19.1 디스패처 = 296
19.2 다른 섹터 읽어들이기 = 304
19.3 이 장의 요약 = 307
제20장 프로그래밍 계획 = 310
20.1 반전 상태의 커서 출력 = 310
20.2 데이터의 입력과 수정 = 312
20.3 DSKPATCH 프로그램에 대한 추가 사항 = 313
제21장 반전 상태의 커서 = 315
21.1 반전 상태의 커서 출력 = 316
21.2 문자의 속성 변경 = 322
21.3 이 장의 요약 = 323
제22장 데이터의 입력과 수정 = 325
22.1 커서의 위치 이동 = 326
22.2 데이터 수정 프로시저 = 329
22.3 이 장의 요약 = 333
제23장 16진수와 10진수 입력 = 335
23.1 16진수 입력 = 336
23.2 10진수 입력 = 344
23.3 이 장의 요약 = 348
제24장 키보드 입력의 개선 = 349
24.1 새로운 READ_STRING = 350
24.2 사용자와 프로그래머의 편의 = 358
24.3 이 장의 요약 = 360
제25장 프로시저의 수정 = 361
25.1 DISPATCHER의 문제점 정정 = 362
25.2 이 장의 요약 = 364
제26장 변경된 섹터의 저장 = 367
26.1 변경된 섹터의 내용 저장 = 368
26.2 디버깅 방법 = 371
26.3 리스팅 파일의 생성 = 372
26.4 프로그램에서의 문제 해결 = 376
26.5 소스 수준에서의 디버깅 = 378
26.6 마이크로소프트의 코드 뷰 = 379
26.7 볼랜드의 터보 디버거 = 384
26.8 이 장의 요약 = 390
제27장 완전한 섹터 출력 = 391
27.1 섹터 출력 화면의 스크롤 = 392
27.2 이 장의 요약 = 395
제4부 고급 프로그래밍 기법
제28장 재배치와 .COM 프로그램 = 399
28.1 .COM 프로그램 = 400
28.2 재배치에 대해서 = 402
28.3 .COM과 .EXE 프로그램 = 406
제29장 세그먼트 오버라이드 = 409
29.1 세그먼트 오버라이드 = 410
29.2 ASSUME의 기능 = 413
29.3 이 장의 요약 = 414
제30장 빠른 화면 출력을 위한 WRITE_CHAR = 415
30.1 화면 출력용 메모리 = 416
30.2 문자와 속성의 저장 방법 = 420
30.3 빠른 화면 출력 프로시저의 완성 = 422
30.4 이 장의 요약 = 430
제31장 어셈블리 언어로 작성하는 C 프로시저 = 431
31.1 화면을 지우는 프로시저 = 432
31.2 매개 변수의 전달 = 437
31.3 두 개의 매개 변수 사용 = 444
31.4 함수의 복귀 값 = 446
31.5 이 장의 요약 = 448
제32장 RAM 상주 프로그램 DISKLITE = 449
32.1 RAM 상주 프로그램 = 450
32.2 인터럽트 가로채기 = 451
부록
부록 A DSKPATCH 프로그램 소스 리스트 = 463
A.1 프로시저의 목적과 기능 = 464
A.2 DSKPATCH 프로그램의 소스 리스트 = 471
부록 B 에러 메시지 = 505
B.1 MSAM의 에러 메시지 = 506
B.2 LINK의 에러 메시지 = 507
B.3 EXE2BIN의 에러 메시지 = 509
부록 C 참고 자료 = 511
찾아보기 = 523