목차
1 어셈블리 언어의 개요
1.1 어셈블리 언어의 필요성 = 13
1.2 어셈블리 언어의 기본지식 = 15
1.3 어셈블리 언어의 개념 = 20
객관식 연습문제 = 23
주관식 연습문제 = 25
2 8086/8088 CPU의 구조
2.1 8비트 CPU와 16비트 CPU의 차이점 = 26
2.2 CPU의 구성 = 27
2.3 8086 CPU의 레지스터 = 29
2.4 8086의 번지지정법 = 30
2.5 세그먼트 레지스터의 종류와 기능 = 32
객관식 연습문제 = 33
주관식 연습문제 = 35
3 MASM의 사용법과 형식
3.1 명령어의 일반형식 = 36
3.2 매크로 어셈블러의 의사명령어 = 37
3.3 매크로 어셈블러 프로그램의 일반형식 = 41
3.4 매크로 어셈블리에 의한 어셈블 및 링크 과정 = 42
3.5 .COM 파일의 작성법 = 48
3.6 .COM 파일과 .EXE 파일의 차이점 = 49
객관식 연습문제 = 52
주관식 연습문제 = 54
4 디버거의 사용법
4.1 디버거란 무엇인가? = 55
4.2 디버거 명령어 = 56
객관식 연습문제 = 65
주관식 연습문제 = 67
5 명령어의 설명방법과 시스템 콜
5.1 명령어 설명형식 = 68
5.2 플래그 변화 = 69
5.3 시스템 호출 = 70
객관식 연습문제 = 78
주관식 연습문제 = 80
6 번지지정 방식
6.1 직접 번지지정방식 = 81
6.2 간접 번지지정방식 = 83
6.3 베이스 번지지정방식 = 85
6.4 인덱스 번지지정방식 = 86
6.5 베이스 인덱스 번지지정방식 = 87
객관식 연습문제 = 89
주관식 연습문제 = 91
7 전송명령
7.1 MOV(Move Data) = 92
7.2 LEA(Load Effective Address) = 95
7.3 LDS(Load Data Segment Register) = 98
7.4 LES((Load Extra Segment Register)와 LSS(Load Stack Segment Register) = 99
7.5 XCHG(Exchange) = 101
7.6 XLAT(Trunslate) = 102
객관식 연습문제 = 106
주관식 연습문제 = 107
8 산술명령
8.1 개요 = 108
8.2 ADD(Add Binary Numbers) = 115
8.3 SUB(Subtract) = 121
8.4 ADC(Add with Carry) = 125
8.5 SBB(Subtract with Borrow) = 126
8.6 CBW(Convert Byte to Word) : 부호 확장명령어 = 128
8.7 CWD(Convert Word to Double Word) : 부호 확장명령어 = 129
8.8 MUL(Mulityply) : 부호 없는 정수의 곱셈 = 131
8.9 IMUL(Multiply with Signed Integer) : 부호 있는 정수의 곱셈 = 136
8.10 DIV(Divide) : 부호 없는 정수의 나눗셈 = 140
8.11 IDIV(Divide with Signed Integer) : 부호 있는 정수의 곱셈 = 145
8.12 INC(Increment) = 148
8.13 DEC(Decrement) = 150
8.14 NEG(Negate) = 151
객관식 연습문제 = 161
주관식 연습문제 = 163
9 논리연산명령
9.1 논리곱(AND) = 164
9.2 논리합(OR) = 166
9.3 배타적 논리합(Exculsive OR ; XOR) = 168
9.4 논리부정(NOT) = 172
객관식 연습문제 = 173
주관식 연습문제 = 175
10 플래그 레지스터와 분기명령
10.1 플래그 레지스터 = 176
10.2 상태 플래그 = 177
10.3 상태 플래그 명령 = 181
10.4 제어 플래그 = 181
10.5 제어 플래그 명령 = 183
10.6 비교 명령 = 183
10.7 분기명령 = 186
객관식 연습문제 = 193
주관식 연습문제 = 195
11 이동 및 회전명령
11.1 좌측논리이동(Shift Logical Left ; SHL) = 197
11.2 우측논리이동(Shift Logical Right ; SHR) = 198
11.3 좌측산술이동(Shift Arithmentic Left ; SAL) = 199
11.4 우측산술이동(Shift Arithmentic Right ; SAR) = 200
11.5 좌측회전(Rotate Left ; ROL) = 202
11.6 우측회전(Rotate Right ; ROR) = 203
11.7 캐리를 포함한 좌측회전(Rotate Left with Carry ; RCL) = 204
11.8 캐리를 포함한 우측회전(Rotate Right with Carry ; RCR) = 205
객관식 연습문제 = 207
주관식 연습문제 = 209
12 스트링 처리명령
12.1 스트링의 정의 = 210
12.2 문자열 명령어의 처리 = 211
12.3 스트링 명령어에서 사용하는 SI와 DI = 212
12.4 데이터 세그먼트와 엑스트라 세그먼트가 분리되어 있는 경우의 SI와 DI의 사용 = 214
12.5 스트링 명령의 반복 = 217
12.6 스트링 명령의 방향지정 = 217
12.7 MOVSB와 MOVSW 명령 = 219
12.8 STOSB와 STOSW 명령 = 220
12.9 CMPSB와 CMPSW 명령 = 221
12.10 SCASB와 SCASW 명령 = 223
12.11 LODSB와 LODSW 명령 = 224
12.12 INS와 OUTS 명령 = 226
객관식 연습문제 = 228
주관식 연습문제 = 230
13 루프 명령어 및 구현
13.1 레이블 = 231
13.2 프로세서의 레지스터 = 234
13.3 점프 명령 = 240
13.4 두 숫자를 비교하는 명령 = 244
13.5 무조건 점프 = 253
13.6 루프 명령어 = 255
13.7 루프 명령어의 구현 = 263
객관식 연습문제 = 274
주관식 연습문제 = 276
14 스택 및 프로시저 처리명령
14.1 프로시저 = 277
14.2 프로시저의 호출 = 279
14.3 복귀주소 = 281
14.4 파라미터 전달 = 283
14.5 스택 = 288
객관식 연습문제 = 304
주관식 연습문제 = 306
15 인터럽트
15.1 인터럽트 = 307
15.2 인터럽트 명령어 INT, INTO, IRET, CLI, STI = 319
객관식 연습문제 = 326
주관식 연습문제 = 328
16 입출력 및 기타 명령
16.1 입출력 = 329
16.2 입출력 명령어 = 330
16.3 인터럽트에 의한 입출력 = 331
객관식 연습문제 = 342
주관식 연습문제 = 344
17 어셈블리 언어의 응용 프로그램
17.1 코드 변환을 위한 프로그램 = 345
17.2 산술연산, 논리연산 및 기타 연산의 예 = 353
17.3 그래픽 디스플레이 프로그램의 예 = 362
17.4 입출력 프로그램의 예 = 369
17.5 고수준 언어와의 연결 프로그램 = 401
A 인터럽트 함수번호
B BIOS 정보
C SCAN CODE
D 아스키 코드