336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
윈도우에 Windows API가 있다면, MS-DOS에는 MS-DOS API가 있습니다. 차이가 있다면 WinAPI는 C언어로 된 반면, MS-DOS API는 어셈블리어를 사용한다는 차이가 있겠지요.
WinAPI에서는 함수를 호출하는 방식으로 API를 사용하지만, MS-DOS API는 레지스터에 특정 값을 넣고, 인터럽트를 발생시키는 방식으로 API를 사용합니다.
MS-DOS API의 인터럽트
인터럽트 벡터 | 설명 | 버전 | 비고 |
---|---|---|---|
20h |
프로그램 끝내기 | 1.0 이상 | 도스 커널에 추가됨 |
21h |
주요 도스 API | 1.0 이상 | 도스 커널에 추가됨 |
22h |
프로그램 끝내기 주소 | 1.0 이상 | 프로그램 호출시 주소 반환 |
23h |
Control-C 핸들러 주소 | 1.0 이상 | 기본 핸들러는 도스 셸에 있음 (일반적으로 COMMAND.COM) |
24h |
심각한 오류 핸들러 주소 | 1.0 이상 | 기본 핸들러는 도스 셸에 있음 (일반적으로 COMMAND.COM) |
25h |
절대 디스크 읽기 | 1.0 이상 | 도스 커널에 추가됨, 도스 3.31에서 강화되어 최대 2 GB 파티션 지원 |
26h |
절대 디스크 쓰기 | 1.0 이상 | 도스 커널에 추가됨, 도스 3.31에서 강화되어 최대 2 GB 파티션 지원 |
27h |
종료 후 상주 | 1.0 이상 | 도스 1.0 및 도스 2.0 이상의 도스 커널에서 COMMAND.COM에 추가됨 |
28h |
유휴 호출 | 2.0 이상 | 입력을 기다릴 때 도스 커널이 호출함 |
29h |
고속 콘솔 출력 | 2.0 이상 | 내장 콘솔 장치 드라이버나, ANSI.SYS와 같은 대안 드라이버에 의해 추가됨 |
2Ah |
네트워크 및 중요 섹션 | 3.0 이상 | 네트워크 소프트웨어와의 상호 작용을 목적으로 도스 커널이 호출함 |
2Bh |
사용 안 함 | ||
2Ch |
사용 안 함 | ||
2Dh |
사용 안 함 | ||
2Eh |
임시 항목 다시 불러오기(Reload transient) | 2.0 이상 | COMMAND.COM에 추가됨 |
2Fh |
다중 송신 | 3.0 이상 | 하부 함수 번호에 따라 도스 커널 및 다양한 프로그램(PRINT, MSCDEX, DOSKEY, APPEND 등)에 추가됨 |
출처: http://ko.wikipedia.org/wiki/MS-DOS_API
이상 16개의 소프트웨어적인 인터럽트가 제공되지만, 그 중에서 가장 많이 쓰이는 것은 INT 21H입니다. INT 21H는 AH 레지스터의 값에 따라 다음과 같이 기능이 분화됩니다.
AH 레지스터에 따른 INT 21H의 기능
AH |
설명 | 버전 |
---|---|---|
00h |
프로그램 끝내기 | 1.0 이상 |
01h |
문자 입력 | 1.0 이상 |
02h |
문자 출력 | 1.0 이상 |
03h |
보조 입력 | 1.0 이상 |
04h |
보조 출력 | 1.0 이상 |
05h |
프린터 출력 | 1.0 이상 |
06h |
직접 콘솔 입출력 | 1.0 이상 |
07h |
echo 없이 직접 콘솔 입력 | 1.0 이상 |
08h |
echo 없이 콘솔 입력 | 1.0 이상 |
09h |
문자열 표시 | 1.0 이상 |
0Ah |
버퍼 처리된 키보드 입력 | 1.0 이상 |
0Bh |
입력 상태 가져오기 | 1.0 이상 |
0Ch |
입력 버퍼 및 입력 플러시(flush) 처리 | 1.0 이상 |
0Dh |
디스크 초기화 | 1.0 이상 |
0Eh |
기본 드라이브 설정 | 1.0 이상 |
0Fh |
파일 열기 | 1.0 이상 |
10h |
파일 닫기 | 1.0 이상 |
11h |
첫 번째 파일 찾기 | 1.0 이상 |
12h |
다음 파일 찾기 | 1.0 이상 |
13h |
파일 삭제 | 1.0 이상 |
14h |
연속 읽기 | 1.0 이상 |
15h |
연속 쓰기 | 1.0 이상 |
16h |
파일 만들기/끊기 | 1.0 이상 |
17h |
파일 이름 변경 | 1.0 이상 |
18h |
예비 | 1.0 이상 |
19h |
기본 드라이브 가져오기 | 1.0 이상 |
1Ah |
디스크 전송 주소 설정 | 1.0 이상 |
1Bh |
기본 드라이브에 대한 할당 정보 가져오기 | 1.0 이상 |
1Ch |
지정된 드라이브에 대한 할당 정보 가져오기 | 1.0 이상 |
1Dh |
예비 | 1.0 이상 |
1Eh |
예비 | 1.0 이상 |
1Fh |
기본 드라이브에 대한 디스크 변수 블록 가져오기 | 1.0 이상 |
20h |
예비 | 1.0 이상 |
21h |
랜덤 읽기 | 1.0 이상 |
22h |
랜덤 쓰기 | 1.0 이상 |
23h |
레코드의 파일 크기 가져오기 | 1.0 이상 |
24h |
랜덤 레코드 번호 설정 | 1.0 이상 |
25h |
인터럽트 벡터 설정 | 1.0 이상 |
26h |
PSP 만들기 | 1.0 이상 |
27h |
랜덤 블록 읽기 | 1.0 이상 |
28h |
랜덤 블록 쓰기 | 1.0 이상 |
29h |
파일 이름 분석(Parse) | 1.0 이상 |
2Ah |
날짜 가져오기 | 1.0 이상 |
2Bh |
날짜 설정 | 1.0 이상 |
2Ch |
시간 가져오기 | 1.0 이상 |
2Dh |
시간 설정 | 1.0 이상 |
2Eh |
유효 플래그 설정 | 1.0 이상 |
2Fh |
디스크 전송 주소 가져오기 | 2.0 이상 |
30h |
도스 버전 가져오기 | 2.0 이상 |
31h |
종료 후 상주 | 2.0 이상 |
32h |
지정된 드라이브에 대한 디스크 변수 블록 가져오기 | 2.0 이상 |
33h |
Ctrl-Break 가져오기 또는 설정 | 2.0 이상 |
34h |
InDOS 플래그 포인터 가져오기 | 2.0 이상 |
35h |
인터럽트 벡터 가져오기 | 2.0 이상 |
36h |
디스크 남은 공간 가져오기 | 2.0 이상 |
37h |
스위치 문자 가져오기 또는 설정 | 2.0 이상 |
38h |
국가 정보 가져오기 또는 설정 | 2.0 이상 |
39h |
하위 디렉터리 만들기 | 2.0 이상 |
3Ah |
하위 디렉터리 제거 | 2.0 이상 |
3Bh |
현재 디렉터리 변경 | 2.0 이상 |
3Ch |
파일 만들기 또는 끊기 | 2.0 이상 |
3Dh |
파일 열기 | 2.0 이상 |
3Eh |
파일 닫기 | 2.0 이상 |
3Fh |
파일 또는 장치 읽기 | 2.0 이상 |
40h |
파일 또는 장치 쓰기 | 2.0 이상 |
41h |
파일 삭제 | 2.0 이상 |
42h |
파일 포인터 이동 | 2.0 이상 |
43h |
파일 특성 가져오기 또는 설정 | 2.0 이상 |
44h |
장치에 대한 입출력 제어 | 2.0 이상 |
45h |
핸들 복제 | 2.0 이상 |
46h |
핸들 우회 | 2.0 이상 |
47h |
현재 디렉터리 가져오기 | 2.0 이상 |
48h |
메모리 할당 | 2.0 이상 |
49h |
메모리 해제 | 2.0 이상 |
4Ah |
메모리 다시 할당 | 2.0 이상 |
4Bh |
프로그램 실행 | 2.0 이상 |
4Ch |
반환 코드로 끝내기 | 2.0 이상 |
4Dh |
프로그램 반환 코드 가져오기 | 2.0 이상 |
4Eh |
첫 번째 파일 찾기 | 2.0 이상 |
4Fh |
다음 파일 찾기 | 2.0 이상 |
50h |
현재의 PSP 설정 | 2.0 이상 |
51h |
현재의 PSP 가져오기 | 2.0 이상 |
52h |
도스 내부 포인터 가져오기 (SYSVARS) | 2.0 이상 |
53h |
디스크 변수 블록 만들기 | 2.0 이상 |
54h |
유효 플래그 가져오기 | 2.0 이상 |
55h |
프로그램 PSP 만들기 | 2.0 이상 |
56h |
파일 이름 변경 | 2.0 이상 |
57h |
파일 날짜 및 시간 가져오기 또는 설정 | 2.0 이상 |
58h |
할당 전략 가져오기 또는 설정 | 2.11 이상 |
59h |
확장 오류 정보 가져오기 | 3.0 이상 |
5Ah |
고유 파일 만들기 | 3.0 이상 |
5Bh |
파일 새로 만들기 | 3.0 이상 |
5Ch |
파일 잠금 / 잠금 해제 | 3.0 이상 |
5Dh |
파일 공유 기능 | 3.0 이상 |
5Eh |
네트워크 기능 | 3.0 이상 |
5Fh |
네트워크 우회 기능 | 3.0 이상 |
60h |
파일 이름 제한 | 3.0 이상 |
61h |
예비 | 3.0 이상 |
62h |
현재의 PSP 가져오기 | 3.0 이상 |
63h |
DBCS 리드 바이트 테이블 포인터(lead byte table pointer) 가져오기 | 3.0 이상 |
64h |
외부 이벤트 플래그 대기 설정 | 3.2 이상 |
65h |
확장 국가 정보 가져오기 | 3.3 이상 |
66h |
코드 페이지 가져오기 또는 설정 | 3.3 이상 |
67h |
핸들 수 설정 | 3.3 이상 |
68h |
파일 위탁(commit) | 3.3 이상 |
69h |
미디어 ID 가져오기 또는 설정 | 4.0 이상 |
6Ah |
파일 위탁(commit) | 4.0 이상 |
6Bh |
예비 | 4.0 이상 |
6Ch |
파일 확장 열기/만들기 | 4.0 이상 |
'Programming Language > Assembly' 카테고리의 다른 글
점프 명령어 JMP (0) | 2013.04.06 |
---|---|
두 번째 예제: Hello, World! (0) | 2013.03.31 |
첫 예제: 1개의 문자 출력 (0) | 2013.03.31 |
MASM PWB 사용하기 (0) | 2013.03.31 |
MASM 설치하기 (MS-DOS 버전) (0) | 2013.03.31 |