dos程序集无法写入文件

时间:2013-01-11 02:41:33

标签: assembly dos createfile dosbox

我写了一个16位的.com文件来创建一个文件

但它不会创建任何文件。

我尝试了32位Windows 7。和dosbox内部。

源代码在这里

如何写入文件?

org 100h

        call open_new_file
        mov ah, 40h;write
        mov bx, [new_file_handle]
        mov cx,2;write 2 bytes
        mov dx, temp
        int 21h

        mov ah, 3eh;close file
        mov bx, [new_file_handle]
        int 21h

        mov ah, 00
        int 16h;wait key

        mov ax, 4c00h
        int 21h;exit

open_new_file:
        push bp
        mov bp, sp
        mov ah, 3dh;open file
        mov al, 02h;write only
        mov dx, new_file_name ;out.kty
        int 21h
        mov [new_file_handle], ax
        leave
        ret


temp:
        dw 0xffaa

new_file_handle:
        dw 0
new_file_name:
        db "out.bin", 0

谢谢!

1 个答案:

答案 0 :(得分:2)

看起来int 21, 3D是“打开文件”。您的意思是int 21, 3C是“创建还是截断?”

如果您检查了返回值,您可能会看到CF = 1表示错误。我猜AX会...... 2?

相关问题