목차
1장 어셈블리 언어의 개요
1.1 어셈블리 언어의 필요성 = 12
1.2 어셈블리 언어의 기본지식 = 13
1.3 어셈블리 언어의 개념 = 19
객관식 연습문제 = 47
주관식 연습문제 = 49
2장 80×86 CPU의 구조 및 번지지정 방식
2.1 8비트 CPU와 16비트 CPU의 차이점 = 52
2.2 CPU의 구성 = 53
2.3 8086 CPU의 레지스터 = 54
2.4 세그먼트 레지스터의 종류와 기능 = 63
2.5 번지 지정방식(Addressing Mode) = 64
객관식 연습문제 = 71
주관식 연습문제 = 75
3장 MASM의 사용법과 형식
3.1 명령어의 일반 형식 = 78
3.2 매크로 어셈블러의 의사 명령어 = 79
3.3 매크로 어셈블러 프로그램의 일반 형식 = 83
3.4 매크로 어셈블리에 의한 어셈블 및 링크 과정 = 84
3.5 COM 파일의 작성법 = 90
3.6 .COM 파일과 .EXE 파일의 차이점 = 91
3.7 디버거의 사용법 = 94
객관식 연습문제 = 104
주관식 연습문제 = 107
4장 전송명령
4.1 MOV(Move Data) = 110
4.2 LEA(Load Effective Address) = 114
4.3 LDS(Load Data Segment Register) = 116
4.4 LES(Load Extra Segment Register)와 LSS(Load Stack Segment Register) = 118
4.5 XCHG(Exchange) = 120
4.6 XLAT(Translate) = 121
객관식 연습문제 = 125
주관식 연습문제 = 126
5장 산술명령
5.1 ADD(Add Binary Numbers) = 134
5.2 SUB(Subtract) = 140
5.3 ADC(Add with Carry) = 144
5.4 SBB(Subtract with Borrow) = 145
5.5 CBW(Convert Byte to Word) : 부호 확장 명령어 = 147
5.6 CWD(Convert Word to Double Word) : 부호 확장 명령어 = 148
5.7 MUL(Multiply) : 부호 없는 정수의 곱셈 = 149
5.8 IMUL(Multiply with Signed Integer) : 부호 있는 정수곱셈 = 154
5.9 DIV(Divide) : 부호 없는 정수의 나눗셈 = 158
5.10 IDIV(Divide with Signed Integer) : 부호 있는 정수의 나눗셈 = 162
5.11 INC(Increment) = 165
5.12 DEC(Decrement) = 167
5.13 NEG(Negate) = 168
객관식 연습문제 = 177
주관식 연습문제 = 179
6장 논리연산 명령
6.1 AND : 논리곱 = 182
6.2 OR : 논리합 = 184
6.3 XOR(Exclusive OR) : 배타적 논리합 = 186
6.4 NOT : 논리부정 = 189
객관식 연습문제 = 190
주관식 연습문제 = 192
7장 플래그 레지스터와 분기 명령
7.1 플래그 레지스터 = 194
7.2 상태 플래그 = 195
7.3 상태 플래그 명령 : STC, CLC 및 CMC = 198
7.4 제어 플래그 = 198
7.5 제어 플래그 명령 : STD, STI 및 CLI = 200
7.6 비교 명령 = 200
7.7 분기명령 = 209
객관식 연습문제 = 216
주관식 연습문제 = 218
8장 이동 및 회전 명령
8.1 SHL(Shift Logical Left) : 좌측 논리 이동 = 220
8.2 SHR(Shift Logical Right) : 우측 논리 이동 = 222
8.3 SAL(Shift Arithmetic Left) : 좌측 산술 이동 = 224
8.4 SAR(Shift Arithmetic Right) : 우측 산술 이동 = 228
8.5 ROL(Rotate Left) : 좌측 회전 = 229
8.6 ROR(Rotate Right) : 우측 회전 = 232
8.7 RCL(Rotate Left with Carry) : 캐리를 포함한 좌측 회전 = 233
8.8 RCR(Rotate Right with Carry) : 캐리를 포함한 우측 회전 = 234
객관식 연습문제 = 236
주관식 연습문제 = 238
9장 스트링 처리명령
9.1 스트링의 정의 = 240
9.2 문자열 명령어의 처리 = 240
9.3 스트링 명령어에서 사용하는 SI와 DI = 242
9.4 데이터 세그먼트와 엑스트라 세그먼트가 분리되어 있는 경우의 SI와 DI의 사용 = 244
9.5 스트링 명령의 반복 = 246
9.6 스트링 명령의 방향 지정 = 247
9.7 MOVSB와 MOVSW 명령 = 248
9.8 STOSB와 STOSW 명령 = 249
9.9 CMPSB와 CMPSW 명령 = 250
9.10 SCASB와 SCASW 명령 = 252
9.11 LODSB와 LODSW 명령 = 253
9.12 INS와 OUTS 명령 = 255
객관식 연습문제 = 257
주관식 연습문제 = 259
10장 LOOP 명령어 및 구현
10.1 레이블(Label) = 262
10.2 프로세서의 레지스터 = 265
10.3 점프 명령 = 270
10.4 두 숫자를 비교하는 명령 = 274
10.5 무조건 점프 = 284
10.6 LOOP 명령어 = 286
10.7 LOOP 명령어의 구현 = 294
객관식 연습문제 = 305
주관식 연습문제 = 307
11장 매크로 작성
11.1 서론 = 310
11.2 간단한 매크로 정의 = 310
11.3 매크로 내에 파라미터를 사용하는 방법 = 313
11.4 코멘트 = 314
11.5 매크로 정의 내에서의 매크로 사용법 = 316
11.6 LOCAL 지시어 = 318
11.7 매크로 라이브러리로부터 포함 = 320
11.8 연결 = 322
11.9 반복 지시어 = 323
11.10 조건부 지시어 = 325
객관식 연습문제 = 332
주관식 연습문제 = 334
12장 스택 및 프로시저 처리 명령
12.1 프로시저 = 336
12.2 프로시저의 호출 = 338
12.3 복귀 주소(Return Address) = 340
12.4 파라미터 전달(Parameter Passing) = 342
12.5 스택(STACK) = 346
12.5.1 캐리 플래그를 사용한 에러의 표시 = 349
12.5.2 여러 개의 프로그램을 링크하는 방법 = 350
객관식 연습문제 = 361
주관식 연습문제 = 363
13장 인터럽트
13.1 인터럽트 = 366
13.2 인터럽트 명령어 INT, INTO, IRET, CLI, STI = 377
객관식 연습문제 = 385
주관식 연습문제 = 387
14장 입출력 및 기타명령
14.1 입출력 = 390
14.2 입출력 명령어 = 390
14.3 인터럽트에 의한 입출력 = 392
객관식 연습문제 = 413
주관식 연습문제 = 415
15장 실무사례
15.1 코드변환을 위한 프로그램 = 418
15.2 산술연산, 논리연산 및 기타연산의 예 = 425
15.3 그래픽 디스플레이 프로그램의 예 = 433
15.4 입출력(I/O) 프로그램의 예 = 440
15.5 자료정렬 프로그램 = 476
15.6 배열처리 프로그램 = 482
15.7 고수준 언어와의 연결 프로그램 = 496
부록
부록 1. 인터럽트 함수 번호 = 508
부록 2. BIOS 정보 = 520
부록 3. SCAN CODE = 527
부록 4. ASCII CODE = 530
부록 5. 명령어의 설명 방법과 시스템 콜 = 537
참고문헌 = 547