檔案操作功能(file operation function)
3ch —
建立檔案
3dh —
開啟檔案
3eh —
關閉檔案
41h —
刪除檔案
43h —
讀取/設定檔案屬性
45h —
複製檔案控制代碼
46h —
重定義檔案控制代碼
4eh —
查詢到第乙個檔案
4fh —
查詢下乙個檔案
56h —
檔案換名
(1)、功能3ch
功能描述:
用指定的檔名建立乙個新檔案。如果指定的檔案已存在,則設定其長度為0。建立後,該檔案是開啟的,並返回其控制代碼
入口引數:
ah=3ch
ds:dx=指定檔名字串的位址(以0為字串的結束標誌)
cx=檔案屬性(這些標誌位可以組合)
位0=1——唯讀
位2=1——系統
位5=1——歸檔
位1=1——隱含
位3=1——卷標號
其它位保留不用,並置為0
出口引數:
cf=0——建立成功,ax=檔案控制代碼,否則,ax=錯誤號(03h、04h或05h),其含義見錯誤**表
(2)、功能3dh
功能描述:
開啟指定的驅動器、路徑和檔名,並返回其檔案控制代碼
入口引數:
ah=3dh
ds:dx=表明檔案的字串(以0為字串的結束標誌)
al為開啟方式:
位0~2
000—唯讀方式 001—寫方式 010—讀/寫方式
位3保留,其值為0
位4~6
共享模式
000—相容模式
001—不共享
010—拒絕寫
011—拒絕讀
100—不拒絕任何操作 位7
繼承標誌——0/1:子程序繼承或不繼承控制代碼
出口引數:
cf=0——開啟成功,ax=檔案控制代碼,否則,ax=錯誤號(02h、03h、04h、05h或0ch),其含義見錯誤**表
(3)、功能3eh
功能描述:
關閉指定控制代碼的檔案
入口引數:
ah=3eh
bx=檔案控制代碼
出口引數:
cf=0——關閉成功,否則,ax=錯誤號(06h),其含義見錯誤**表
(4)、功能41h
功能描述:
刪除指定的檔案
入口引數:
ah=41h
ds:dx=檔名字串的位址
出口引數:
cf=0——刪除成功,否則,ax=錯誤號(02h、03h或05h),其含義見錯誤**表
(5)、功能43h
功能描述:
讀取或設定指定檔案的屬性
入口引數:
位0=1——唯讀
位1=1——隱含
位2=1——系統
位3=1——卷標號
位5=1——歸檔
其它位保留不用,並置為0
出口引數:
cf=0——關閉成功,cx=檔案屬性,否則,ax=錯誤號(01h、02h、03h或05h),其含義見錯誤**表
(6)、功能45h
功能描述:
複製當前開啟裝置或檔案的控制代碼,該控制代碼對應同樣裝置或檔案的相同位置
入口引數:
ah=45h
bx=待複製的檔案控制代碼
出口引數:
cf=0——複製成功,ax=新控制代碼,否則,ax=錯誤號(04h或06h),其含義見錯誤**表
(7)、功能46h
功能描述:
指定二個控制代碼,把第二句柄指向第乙個控制代碼,即第二個控制代碼被重定向
入口引數:
ah=46h
bx=檔案或裝置的控制代碼
cx=待重定向的檔案控制代碼
出口引數:
cf=0——重定向成功,否則,ax=錯誤號(04h或06h),其含義見錯誤**表
(8)、功能4eh
功能描述:
獲取第乙個與給定的檔名相匹配的檔案
入口引數:
ah=4eh
ds:dx=給定檔名的字串
cx=搜尋時使用的檔案屬性:
位0=1——唯讀 位1=1——隱含
位2=1——系統 位3=1——卷標號
位4=1——目錄 位5=1——歸檔
其它位保留不用,並置為0
出口引數:
cf=1——操作失敗,ax=錯誤號(02h、03h或12h),其含義見錯誤**表,否則,操作成功,dta(disk transfer area)按下列方式填入資料:
位元組00~14h
保留位元組15h
匹配的檔案屬性
位元組16~17h
壓縮的檔名
位元組18~19h
壓縮的檔案日期
位元組1a~1dh
檔案大小
位元組1e~2ah
檔名字串
(9)、功能4fh
功能描述:
在中斷21h的功能4eh成功使用之後,再搜尋下乙個檔名
入口引數:
ah=4fh
al=返回的**
出口引數:
cf=1——操作失敗,ax=錯誤號(12h),其含義見錯誤**表,否則,操作成功,dta中的資料如前面功能4eh所示
(10)、功能56h
功能描述:
檔案換名
入口引數:
ah=56h
ds:dx=當前檔名字串位址
es:di=新檔名字串位址
出口引數:
cf=0——操作成功,否則,ax=錯誤號(02h、03h、05h、11h),其含義見錯誤**表
(11)、功能57h
功能描述:
讀取/設定檔案的日期和時間
入口引數:
ah=57h
bx=檔案控制代碼
讀取日期和時間
al=00h
設定日期和時間
al=01h
cx=時間(0f~0bh:小時,0ah~05h:分鐘,04h~00h:2秒的個數)
dx=日期(0f~09h:年(相對2023年),08h~05h:月,04h~00h:日)
出口引數:
cf=1——操作失敗,ax=錯誤號(01h、06h),其含義見錯誤**表,否則,若是讀檔案資訊,則,cx=時間,dx=日期
(12)、功能5ah
功能描述:
建立臨時檔案
入口引數:
位0=1 唯讀
位3-4=0 保留
位1=1 隱含
位5=1 歸檔
位2=1 系統
位6-15=0 保留
出口引數:
cf=0——操作成功,ax=檔案控制代碼,ds:dx=完整的路徑檔案位址,否則,ax=錯誤號(03h、04h或05h),其含義見錯誤**表
(13)、功能5bh
功能描述:
建立新檔案
入口引數:
位0=1
唯讀位4=0
保留位1=1
隱含位5=1
歸檔位2=1
系統位6-15=0
保留位3=1
卷標號
出口引數:
cf=0——操作成功,ax=檔案控制代碼,否則,ax=錯誤號(03h、04h、05h或50h),其含義見錯誤**表
(14)、功能67h
功能描述:
設定檔案控制代碼數(最多檔案數)
入口引數:
ah=67h
bx=控制代碼的數量
出口引數:
cf=0——操作成功,否則,ax=錯誤號,其含義見錯誤**表
(15)、功能6ch
功能描述:
擴充套件的開啟檔案功能(開啟、建立或替換檔案)
入口引數:
ah=6ch
al=00h
ds:si=路徑名的位址
bx=開啟方式
位2~0
000—唯讀 001—只寫 010—可讀、寫
位3保留(0)
位6~4
000—相容 001—拒絕讀寫 010——拒絕寫
011—拒絕讀 100——不拒絕任何操作
位70—子程序繼承控制代碼,1—子程序不繼承控制代碼
位12~8
保留(0)
位13致命錯誤處理程式,0—執行int 24h,否則,返回錯誤**給程序
位14寫入方式:0—寫入緩衝區,1—直接寫入檔案
位15保留(0)
cx=檔案屬性
位0=1 唯讀
位4=0 保留
位1=1 隱含
位5=1 歸檔
位2=1 系統
位6-15=0 保留
位3=1 卷標籤
dx=開啟標誌
位3~0 0—開啟失敗,1—開啟檔案,2—替換檔案
位7~4 0—開啟失敗,1—建立檔案
位15~8 0—保留
出口引數:
cf=1——操作失敗,ax=錯誤號,其含義見錯誤**表,否則,
ax=檔案控制代碼
cx=1——檔案存在,開啟之
=2——檔案不存在,建立之
彙編檔案操作
檔案操作功能 file operation function 3ch 建立檔案 3dh 開啟檔案 3eh 關閉檔案 41h 刪除檔案 43h 讀取 設定檔案屬性 45h 複製檔案控制代碼 46h 重定義檔案控制代碼 4eh 查詢到第乙個檔案 4fh 查詢下乙個檔案 56h 檔案換名 1 功能3ch ...
arm彙編檔案分析
text 表示 global start start ldr r0,0x53000000 watchdog暫存器位址 movr1,0x0 str r1,r0 寫入0,禁止watchdog,否則cpu會不斷重啟 ldr sp,1024 4 設定堆疊,注意 不能大於4k,因為現在可用的記憶體只有4k n...
彙編讀寫檔案
說明這是乙個讀寫磁碟檔案的例子,其中 infile 為讀檔案,wfile 為寫檔案。函式圖 infile 檔案的讀取 資料段 data segment file db c 1.txt 0 檔名,dosbox 設定的c盤下的路徑 buf db 256 dup 0 檔案內容暫存區 error messa...