Win32 汇编,如何向指定文件写入内容

来源:百度知道 编辑:UC知道 时间:2024/05/27 17:47:59
刚学汇编,本来是想在c:\a.txt头部加上xyz,可下面这个代码新创建了个a.txtxyz 文件, 谁解释下,顺便说说写文件,修改文件名的一些操作,也给出些例子!!
.data
File db 'c:\a.txt'
szTexT db 'xyz'
NumberWrite dd ?
_sr WIN32_FIND_DATA <>
_h dd 0
.code
start:
invoke CreateFile,addr File,GENERIC_WRITE,FILE_SHARE_DELETE,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL
mov _h,eax
invoke WriteFile,_h,addr szTexT,3,addr NumberWrite,NULL
invoke ExitProcess,NULL
end start

File db 'c:\a.txt',0
szTexT db 'xyz',0
字串后面要加0,你没加所以File就变成了'c:\a.txtxyz',0(可能刚好NumberWrite这有0)

要写入的文件内容放到1.txt中,向2.txt中写入1.txt的内容,代码:
DATA SEGMENT
FILE1 DB '1.TXT',0
FILE2 DB '2.TXT',0
INBUF DB 256 DUP(?)
HANDLE1 DW ?
HANDLE2 DW ?
DATA ENDS

CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV AH,3DH
MOV AL,0
LEA DX,FILE1
INT 21H
MOV HANDLE1,AX
mov ah,3ch
mov cx,00
lea dx,FILE2
int 21h
mov HANDLE2,ax

black: MOV AH,3FH
MOV BX,HANDLE1
MOV CX,1
LEA DX,INBUF
INT 21H
cmp ax,0
je o