File 从汇编MASM中的txt文件读取?
在下面的代码中,File 从汇编MASM中的txt文件读取?,file,assembly,text,masm,irvine32,File,Assembly,Text,Masm,Irvine32,在下面的代码中,buffer是我的缓冲区读取,fileName是文件名,bytesRead应该是返回的字符串 我试图从中读取,但它告诉我缓冲区大小是6 INCLUDE Irvine32.inc INCLUDE macros.inc .data MAX = 5000 fileName BYTE 80 DUP (?) fileHandle HANDLE ? bytesRead DWORD ? buffer BYTE MAX DUP(?) .code main PROC mov EDX,OFF
buffer
是我的缓冲区读取,fileName
是文件名,bytesRead
应该是返回的字符串
我试图从中读取,但它告诉我缓冲区大小是6
INCLUDE Irvine32.inc
INCLUDE macros.inc
.data
MAX = 5000
fileName BYTE 80 DUP (?)
fileHandle HANDLE ?
bytesRead DWORD ?
buffer BYTE MAX DUP(?)
.code
main PROC
mov EDX,OFFSET fileName
call ReadString
mov EDX,OFFSET fileName
call OpenInputFile
mov fileHandle, EAX
mov eax,fileHandle
mov ecx,MAX
call ReadFromFile
mov bytesRead,eax
mov edx, offset bytesRead
call WriteString
call crlf
call WriteDec
call crlf
exit
main ENDP
END main
RTFM:
readfromfileproc
将输入文件读入缓冲区
调用参数:
- EAX=打开的文件句柄
- EDX=输入缓冲区的偏移量
- ECX=要读取的最大字节数
.data
BUFSIZE = 5000
buffer BYTE BUFSIZE DUP(?)
bytesRead DWORD ?
.code
mov eax,fileHandle
mov edx,OFFSET buffer
mov ecx,BUFSIZE
call ReadFromFile
jc show_error_message
mov bytesRead,eax
您需要偏移缓冲区
bytesRead
是读取的字节数,不是字符串,您的文本应该在缓冲区中