彙編檔案管理

2021-04-12 14:18:21 字數 4608 閱讀 2461

檔案操作功能(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...