2

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

但它不会创建任何文件。

我在 Windows 7 32 位上试过。和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

谢谢!

4

1 回答 1

2

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

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

于 2013-01-11T03:12:36.923 回答