写入Assembly x86中的文件

时间:2014-03-15 19:00:44

标签: assembly dos

我需要在汇编中将数据写入txt文件,而不删除当前数据(即,添加数据,而不是替换它)。现在,每当我写作时,我都会替换当前文件中的所有内容。

以下是我正在使用的代码:

writeFile Proc  
            push ax bx cx dx

            ;open file
            mov dx, offset fileName
            mov cx, 0
            mov ah,3ch
            int 21h
            mov filePointer, ax

            ;write to file
            mov dx, offset dataToWrite ;data
            mov cx, DATA_TO_WRITE_LEN  ;size of data
            mov bx, filePointer
            mov ah, 40h
            int 21h

            ;close file
            mov bx, filePointer
            mov ah, 3eh
            int 21h 
            pop dx cx bx ax
            ret
writeFile endp

有没有办法做到这一点?感谢:)

1 个答案:

答案 0 :(得分:3)

您正在致电

        mov ah,3ch
        int 21h

创建文件。如果在现有文件上使用此调用,则该文件将被截断。你应该使用

        mov ah,3dh
        int 21h

使用appropriate flags in AL 打开文件。