[轉(zhuǎn)帖]漢字顯示編程示例
作者:cnangel
[第 1 樓]
內(nèi)容:文件操作是編程中經(jīng)常要用到的功能,讀取運(yùn)行參數(shù)、保存運(yùn)行結(jié)果等等都需要用到文件操作。 在大多數(shù)編程語言中文件操作都是很容易實(shí)現(xiàn)的,因?yàn)樗鼈兌几綆Я讼嚓P(guān)的函數(shù)庫,但在匯編語言中沒有這樣的庫,因此就只有自己動(dòng)手來做了。 在DOS平臺(tái)下文件讀寫操作要通過DOS功能調(diào)用來做到。DOS功能調(diào)用提供了非常豐富的文件操作服務(wù),涵蓋了包括文件查找、建立、刪除、讀寫、重定向 等大量功能。其他的編程語言的文件訪問庫函數(shù)只不過是對(duì)DOS功能調(diào)用進(jìn)行了封裝而已。下面我們就來看一下幾個(gè)常用的文件操作服務(wù)的功能及調(diào)用參數(shù): AH = 3cH 建立文件 入口參數(shù) CX = 文件屬性 DS:DX = 文件名字符串 返回值 CF = 0 操作成功,此時(shí) AX = 文件句柄 CF = 1 操作失敗,此時(shí) AX = 錯(cuò)誤代碼 AH = 3dH 打開文件 入口參數(shù) AL = 0 按只讀方式打開 1 按只寫方式打開 2 按讀寫方式打開 DS:DX = 文件名字符串 返回值 CF = 0 操作成功,此時(shí) AX = 文件句柄 CF = 1 操作失敗,此時(shí) AX = 錯(cuò)誤代碼 AH = 3eH 關(guān)閉文件 入口參數(shù) BX = 文件句柄 返回值 無 AH = 3fH 讀文件 入口參數(shù) BX = 文件句柄 CX = 要讀的字節(jié)數(shù) DS:DX = 存放讀入數(shù)據(jù)的緩沖區(qū) 返回值 CF = 0 操作成功,此時(shí) AX = 成功讀入的字節(jié)數(shù) CF = 1 操作失敗,此時(shí) AX = 錯(cuò)誤代碼 AH = 40H 寫文件 入口參數(shù) BX = 文件句柄 CX = 要寫的字節(jié)數(shù) DS:DX = 要寫的數(shù)據(jù) 返回值 CF = 0 操作成功,此時(shí) AX = 成功寫入文件的字節(jié)數(shù) CF = 1 操作失敗,此時(shí) AX = 錯(cuò)誤代碼 AH = 42H 移動(dòng)文件指針 入口參數(shù) AL = 0 從文件頭開始向后移動(dòng)文件指針 1 從文件指針當(dāng)前位置開始向后移動(dòng)文件指針 2 從文件尾開始向前移動(dòng)文件指針 BX = 文件句柄 CX:DX = 文件指針要移動(dòng)的字節(jié)數(shù) 返回值 CF = 0 操作成功,此時(shí) DX:AX = 當(dāng)前文件指針的位置 CF = 1 操作失敗,此時(shí) AX = 錯(cuò)誤代碼 從上面的說明可以看出,文件訪問操作只需要按要求設(shè)置好參數(shù)然后調(diào)用指定的調(diào)用即可。下面我就給出一個(gè)例子來說明文件操作的使用。 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 ;按讀寫方式打開文件 Jc Err2 Mov BX,AX Mov AX,4000H Mov CX,14 ;要寫的字節(jié)數(shù) Mov DX,Offset Msg Int 21H ;寫數(shù)據(jù)到文件 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)是:在對(duì)文件寫操作完畢之后記得要關(guān)閉文件才能使用系統(tǒng)將數(shù)據(jù)刷新到磁盤上,否則寫進(jìn)去的東西很可能會(huì)丟失。 日期:2003年10月16日 07:59pm |
|