INT 21H 功能表

來源:互聯網
上載者:User

DOS功能調用

作者:    來源:互連網 

 

 
 
AH
 功能
 調用參數
 返回參數
 
00
 程式終止(同INT 20H)
 CS=程式段首碼
  
 
01
 鍵盤輸入並回顯
  
 AL=輸入字元
 
02
 顯示輸出
 DL=輸出字元
  
 
03
 非同步通迅輸入
  
 AL=輸入資料
 
04
 非同步通迅輸出
 DL=輸出資料
  
 
05
 印表機輸出
 DL=輸出字元
  
 
06
 直接控制台I/O
 DL=FF(輸入)
DL=字元(輸出)
 AL=輸入字元
 
07
 鍵盤輸入(無回顯)
  
 AL=輸入字元
 
08
 鍵盤輸入(無回顯)
檢測Ctrl-Break
  
 AL=輸入字元
 
09
 顯示字串
 DS:DX=串地址
'$'結束字串
  
 
0A
 鍵盤輸入到緩衝區
 DS:DX=緩衝區首地址
(DS:DX)=緩衝區最大字元數
 (DS:DX+1)=實際輸入的字元數
 
0B
 檢驗鍵盤狀態
  
 AL=00 有輸入
AL=FF 無輸入
 
0C
 清除輸入緩衝區並
請求指定的輸入功能
 AL=輸入功能號
(1,6,7,8,A)
  
 
0D
 磁碟複位
  
 清除檔案緩衝區
 
0E
 指定當前預設的磁碟機
 DL=磁碟機代號 0=A,1=B,...
 AL=磁碟機數
 
0F
 開啟檔案
 DS:DX=FCB首地址
 AL=00 檔案找到
AL=FF 檔案未找到
 
10
 關閉檔案
 DS:DX=FCB首地址
 AL=00 目錄修改成功
AL=FF 目錄中未找到檔案
 
11
 尋找第一個目錄項
 DS:DX=FCB首地址
 AL=00 找到
AL=FF 未找到
 
12
 尋找下一個目錄項
 DS:DX=FCB首地址
(檔案中帶有*或?)
 AL=00 找到
AL=FF 未找到
 
13
 刪除檔案
 DS:DX=FCB首地址
 AL=00 刪除成功
AL=FF 未找到
 
14

 順序讀

 DS:DX=FCB首地址

 AL=00 讀成功
  =01 檔案結束,記錄中無資料
  =02 DTA空間不夠
  =03 檔案結束,記錄不完整
 
15
 順序寫
 DS:DX=FCB首地址
 AL=00 寫成功
  =01 盤滿
  =02 DTA空間不夠
 
16
 建檔案
 DS:DX=FCB首地址
 AL=00 建立成功
  =FF 無磁碟空間
 
17
 檔案改名
 DS:DX=FCB首地址
(DS:DX+1)=舊檔案名稱
(DS:DX+17)=新檔案名稱
 AL=00 成功
AL=FF 未成功
 
19
 取當前預設磁碟機
  
 AL=預設的磁碟機代號 0=A,1=B,2=C,...
 
1A
 置DTA地址
 DS:DX=DTA地址
  
 
1B

 取預設磁碟機FAT資訊

  
 AL=每簇的扇區數
DS:BX=FAT標識位元組
CX=物理扇區大小
DX=預設磁碟機的簇數
 
1C
 取任一磁碟機FAT資訊
 DL=磁碟機代號
 同上
 
21

 隨機讀

 DS:DX=FCB首地址

 AL=00 讀成功
  =01 檔案結束
  =02 緩衝區溢位
  =03 緩衝區不滿
 
22
 隨機寫
 DS:DX=FCB首地址
 AL=00 寫成功
  =01 盤滿
  =02 緩衝區溢位
 
23
 測定檔案大小
 DS:DX=FCB首地址
 AL=00 成功(檔案長度填入FCB)
AL=FF 未找到
 
24
 設定隨機記錄號
 DS:DX=FCB首地址
  
 
25
 設定中斷向量
 DS:DX=中斷向量
AL=中斷類型號
  
 
26
 建立程式段首碼
 DX=新的程式段首碼
  
 
27

 隨機分塊讀

 DS:DX=FCB首地址
CX=記錄數
 AL=00 讀成功
  =01 檔案結束
  =02 緩衝區太小,傳輸結束
  =03 緩衝區不滿
 
28
 隨機分塊寫
 DS:DX=FCB首地址
CX=記錄數
 AL=00 寫成功
  =01 盤滿
  =02 緩衝區溢位
 
29
 分析檔案名稱
 ES:DI=FCB首地址
DS:SI=ASCIIZ串
AL=控制分析標誌
 AL=00 標準檔案
  =01 多義檔案
  =02 非法盤符
 
2A
 取日期
  
 CX=年
DH:DL=月:日(二進位)
 
2B
 設定日期
 CX:DH:DL=年:月:日
 AL=00 成功
  =FF 無效
 
2C
 取時間
  
 CH:CL=時:分
DH:DL=秒:1/100秒
 
2D
 設定時間
 CH:CL=時:分
DH:DL=秒:1/100秒
 AL=00 成功
  =FF 無效
 
2E
 置磁碟自動讀寫標誌
 AL=00 關閉標誌
AL=01 開啟標誌
  
 
2F
 取磁碟緩衝區的首址
  
 ES:BX=緩衝區首址
 
30
 取DOS版本號碼
  
 AH=發行號,AL=版本
 
31
 結束並駐留
 AL=返回碼
DX=駐留區大小
  
 
33

 Ctrl-Break檢測

 AL=00 取狀態
  =01 置狀態(DL)
DL=00 關閉檢測
  =01 開啟檢測
 DL=00 關閉Ctrl-Break檢測
  =01 開啟Ctrl-Break檢測
 
35
 取中斷向量
 AL=中斷類型
 ES:BX=中斷向量
 
36

 

 取空閑磁碟空間

 

 DL=磁碟機代號
0=預設,1=A,2=B,...

 成功:AX=每簇扇區數
     BX=有效簇數
     CX=每扇區位元組數
     DX=總簇數
失敗:AX=FFFF
 
38
 置/取國家資訊
 DS:DX=資訊區首地址
 BX=國家碼(國際電話首碼碼)
AX=錯誤碼
 
39
 建立子目錄(MKDIR)
 DS:DX=ASCIIZ串地址
 AX=錯誤碼
 
3A
 刪除子目錄(RMDIR)
 DS:DX=ASCIIZ串地址
 AX=錯誤碼
 
3B
 改變目前的目錄(CHDIR)
 DS:DX=ASCIIZ串地址
 AX=錯誤碼
 
3C
 建立檔案
 DS:DX=ASCIIZ串地址
CX=檔案屬性
 成功:AX=檔案代號
錯誤:AX=錯誤碼
 
3D

 開啟檔案

 DS:DX=ASCIIZ串地址
AL=0 讀
  =1 寫
  =3 讀/寫
 成功:AX=檔案代號
錯誤:AX=錯誤碼
 
3E
 關閉檔案
 BX=檔案代號
 失敗:AX=錯誤碼
 
3F

 讀檔案或裝置

 DS:DX=資料緩衝區地址
BX=檔案代號
CX=讀取的位元組數
 讀成功:
  AX=實際讀入的位元組數
  AX=0 已到檔案尾
讀出錯:AX=錯誤碼
 
40
 寫檔案或裝置
 DS:DX=資料緩衝區地址
BX=檔案代號
CX=寫入的位元組數
 寫成功:
  AX=實際寫入的位元組數
寫出錯:AX=錯誤碼
 
41
 刪除檔案
 DS:DX=ASCIIZ串地址
 成功:AX=00
出錯:AX=錯誤碼(2,5)
 
42

 

 移動檔案指標

 

 BX=檔案代號
CX:DX=位移量
AL=移動方式(0:從檔案頭絕對位移,1:從當前位置相對移動,2:從檔案尾絕對位移)
 成功:DX:AX=新檔案指標位置
出錯:AX=錯誤碼

 
43

 置/取檔案屬性

 DS:DX=ASCIIZ串地址
AL=0 取檔案屬性
AL=1 置檔案屬性
CX=檔案屬性
 成功:CX=檔案屬性
失敗:CX=錯誤碼
 
44

 

 

 裝置檔案I/O控制

 

 

 BX=檔案代號
AL=0 取狀態
  =1 置狀態DX
  =2 讀資料
  =3 寫資料
  =6 取輸入狀態
  =7 取輸出狀態
 DX=裝置資訊

 

 

 
45
 複製檔案代號
 BX=檔案代號1
 成功:AX=檔案代號2
失敗:AX=錯誤碼
 
46
 人工複製檔案代號
 BX=檔案代號1
CX=檔案代號2
 失敗:AX=錯誤碼
 
47
 取目前的目錄路徑名
 DL=磁碟機代號
DS:SI=ASCIIZ串地址
 (DS:SI)=ASCIIZ串
失敗:AX=出錯碼
 
48
 分配記憶體空間
 BX=申請記憶體容量
 成功:AX=分配記憶體首地
失敗:BX=最大可用記憶體
 
49
 釋放內容空間
 ES=記憶體起始段地址
 失敗:AX=錯誤碼
 
4A
 調整已指派的儲存塊
 ES=原記憶體起始地址
BX=再申請的容量
 失敗:BX=最大可用空間
     AX=錯誤碼
 
4B

 裝配/執行程式

 DS:DX=ASCIIZ串地址
ES:BX=參數區首地址
AL=0 裝入執行
AL=3 裝入不執行
 失敗:AX=錯誤碼

 
4C
 帶返回碼結束
 AL=返回碼
  
 
4D
 取傳回碼
  
 AX=傳回碼
 
4E
 尋找第一個匹配檔案
 DS:DX=ASCIIZ串地址
CX=屬性
 AX=出錯代碼(02,18)
 
4F
 尋找下一個匹配檔案
 DS:DX=ASCIIZ串地址
(檔案名稱中帶有?或*)
 AX=出錯代碼(18)
 
54
 取盤自動讀寫標誌
  
 AL=當前標誌值
 
56
 檔案改名
 DS:DX=ASCIIZ串(舊)
ES:DI=ASCIIZ串(新)
 AX=出錯碼(03,05,17)
 
57
 置/取檔案日期和時間
 BX=檔案代號
AL=0 讀取
AL=1 設定(DX:CX)
 DX:CX=日期和時間
失敗:AX=錯誤碼
 
58
 取/置分配策略碼
 AL=0 取碼
AL=1 置碼(BX)
 成功:AX=策略碼
失敗:AX=錯誤碼
 
59

 取擴充錯誤碼

  
 AX=擴充錯誤碼
BH=錯誤類型
BL=建議的操作
CH=錯誤場所
 
5A
 建立臨時檔案
 CX=檔案屬性
DS:DX=ASCIIZ串地址
 成功:AX=檔案代號
失敗:AX=錯誤碼
 
5B
 建立新檔案
 CX=檔案屬性
DS:DX=ASCIIZ串地址
 成功:AX=檔案代號
失敗:AX=錯誤碼
 
5C

 

 控制檔案存取

 

 AL=00封鎖
  =01開啟
BX=檔案代號
CX:DX=檔案位移
SI:DI=檔案長度
 失敗:AX=錯誤碼

 

 
62
 取程式段首碼
  
 BX=PSP地址
 

 

 

 

本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/chinazeze/archive/2007/08/10/1735621.aspx

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.