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