彙編檔案操作

2021-04-14 02:00:34 字數 4681 閱讀 8393

檔案操作功能(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——檔案不存在,建立之

彙編學習三 操作INI檔案

filename ini demo.a function demo the operation of ini file author purple endurer log 2005 05 26 created 386 model flat,stdcall option casemap none in...

彙編檔案管理

檔案操作功能 file operation function 3ch 建立檔案 3dh 開啟檔案 3eh 關閉檔案 41h 刪除檔案 43h 讀取 設定檔案屬性 45h 複製檔案控制代碼 46h 重定義檔案控制代碼 4eh 查詢到第乙個檔案 4fh 查詢下乙個檔案 56h 檔案換名 1 功能3ch ...

彙編 彙編操作螢幕緩衝區

首先需要明白的是螢幕上顯示的內容實際上是記憶體中螢幕緩衝區段中的內容,正如資料段 data segment 中可能存在的內容一樣。兩者的區別僅在於前者的內容經系統處理後,被對映到了螢幕上,而後者卻仍未能得到系統眷顧,對我們來說是 不可見 的。換句話說,如果我們想要在螢幕上顯示什麼,只需向螢幕緩衝區段...