[轉帖]漢字顯示編程示例作者:
cnangel[第
1 樓]
內容:文件操作是編程中經(jīng)常要用到的功能,讀取運行參數、保存運行結果等等都需要用到文件操作。
在大多數編程語(yǔ)言中文件操作都是很容易實(shí)現的,因為它們都附帶了相關(guān)的函數庫,但在匯編語(yǔ)言中沒(méi)有這樣的庫,因此就只有自己動(dòng)手來(lái)做了。
在DOS平臺下文件讀寫(xiě)操作要通過(guò)DOS功能調用來(lái)做到。DOS功能調用提供了非常豐富的文件操作服務(wù),涵蓋了包括文件查找、建立、刪除、讀寫(xiě)、重定向等大量功能。其他的編程語(yǔ)言的文件訪(fǎng)問(wèn)庫函數只不過(guò)是對DOS功能調用進(jìn)行了封裝而已。下面我們就來(lái)看一下幾個(gè)常用的文件操作服務(wù)的功能及調用參數:
AH = 3cH 建立文件
入口參數
CX = 文件屬性
DS:DX = 文件名字符串
返回值
CF = 0 操作成功,此時(shí) AX = 文件句柄
CF = 1 操作失敗,此時(shí) AX = 錯誤代碼
AH = 3dH 打開(kāi)文件
入口參數
AL = 0 按只讀方式打開(kāi)
1 按只寫(xiě)方式打開(kāi)
2 按讀寫(xiě)方式打開(kāi)
DS:DX = 文件名字符串
返回值
CF = 0 操作成功,此時(shí) AX = 文件句柄
CF = 1 操作失敗,此時(shí) AX = 錯誤代碼
AH = 3eH 關(guān)閉文件
入口參數
BX = 文件句柄
返回值
無(wú)
AH = 3fH 讀文件
入口參數
BX = 文件句柄
CX = 要讀的字節數
DS:DX = 存放讀入數據的緩沖區
返回值
CF = 0 操作成功,此時(shí) AX = 成功讀入的字節數
CF = 1 操作失敗,此時(shí) AX = 錯誤代碼
AH = 40H 寫(xiě)文件
入口參數
BX = 文件句柄
CX = 要寫(xiě)的字節數
DS:DX = 要寫(xiě)的數據
返回值
CF = 0 操作成功,此時(shí) AX = 成功寫(xiě)入文件的字節數
CF = 1 操作失敗,此時(shí) AX = 錯誤代碼
AH = 42H 移動(dòng)文件指針
入口參數
AL = 0 從文件頭開(kāi)始向后移動(dòng)文件指針
1 從文件指針當前位置開(kāi)始向后移動(dòng)文件指針
2 從文件尾開(kāi)始向前移動(dòng)文件指針
BX = 文件句柄
CX:DX = 文件指針要移動(dòng)的字節數
返回值
CF = 0 操作成功,此時(shí) DX:AX = 當前文件指針的位置
CF = 1 操作失敗,此時(shí) AX = 錯誤代碼
從上面的說(shuō)明可以看出,文件訪(fǎng)問(wèn)操作只需要按要求設置好參數然后調用指定的調用即可。下面我就給出一個(gè)例子來(lái)說(shuō)明文件操作的使用。
Code Segment
Assume CS:Code
Start:
Mov AX,CS
Mov DS,AX
Mov AX,3c00H
Mov CX,20H ;文件屬性為歸檔
Mov DX,Offset FileName
Int 21H ;建立文件
Jc Err1
Mov BX,AX
Mov AX,3e00H
Int 21H ;關(guān)閉文件
Mov AX,3d02H
Mov DX,Offset FileName
Int 21H ;按讀寫(xiě)方式打開(kāi)文件
Jc Err2
Mov BX,AX
Mov AX,4000H
Mov CX,14 ;要寫(xiě)的字節數
Mov DX,Offset Msg
Int 21H ;寫(xiě)數據到文件
Jc Err3
Mov AX,3e00H
Int 21H ;關(guān)閉文件
Exit:
Mov AX,4c00H
Int 21H
Err1:
Mov DX,Offset Error1
Jmp ShowErr
Err2:
Mov DX,Offset Error2
Jmp ShowErr
Err3:
Mov DX,Offset Error3
Jmp ShowErr
ShowErr:
Mov AX,900H
Int 21H
Jmp Exit
Error1 DB "Create file fail.",13,10,"$"
Error2 DB "Open file fail.",13,10,"$"
Error3 DB "Write file fail.",13,10,"$"
FileName DB "Data.txt",0
Msg DB "Hello World!",13,10
Code Ends
End Start
最后要注意的一點(diǎn)是:在對文件寫(xiě)操作完畢之后記得要關(guān)閉文件才能使用系統將數據刷新到磁盤(pán)上,否則寫(xiě)進(jìn)去的東西很可能會(huì )丟失。
日期:
2003年
10月
16日
07:59pm