汇编代码帮助(创建新文件)

时间:2011-12-03 21:45:23

标签: assembly dos x86-16

我是装配新手。我必须做一个程序,将输入文件的数据复制到输出文件。但必须创建此输出文件。

问题是我无法创建这个看起来如此直接的文件。

我正在使用的代码是

.model tiny
.data

outputfile db "newfile.txt",0   
outhandle dw ?  
        .code
.stack
    cseg segment 'code'
assume cs:cseg, ds:cseg
org 100h
start:
create_a_file:
 mov dx, offset outputfile
 mov cx, 0
 mov ah, 3Ch
 int 21h
 mov outhandle, ax
jc error_routine
mov ah, 3Eh
 mov bx, outhandle
 int 21h

error_routine:
mov ax, 4c00h
 int 21h
 cseg ends
end start

我看到新文件无处。即使我指定了确切的根文件夹,例如“c:...” 我无法弄清楚出了什么问题。 任何帮助都是适当的,Thanx  PS:我使用Windows XP 32位。和TASM(便携式)

2 个答案:

答案 0 :(得分:2)

如果您打算创建.COM程序,请将源代码简化为:

cseg segment 'code'
    assume cs:cseg, ds:cseg, es:cseg, ss:cseg
    org 100h
start:

create_a_file:
    mov dx, offset outputfile
    mov cx, 0
    mov ah, 3Ch
    int 21h
    mov outhandle, ax
    jc  error_routine

    mov ah, 3Eh
    mov bx, outhandle
    int 21h

error_routine:
    mov ax, 4c00h
    int 21h

outputfile db "newfile.txt",0   
outhandle dw ?  

cseg ends

end start

将程序编译为tasm.exe myprog.asm并将其链接为tlink.exe /t myprog.obj。你应该得到myprog.com,它应该创建NEWFILE.TXT就好了。

答案 1 :(得分:0)

检查您的tasm / bin文件夹。您的“newfile.txt”可能就在那里