首页
社区
课程
招聘
[求助][求助]懂汇编的同志请帮忙啦
发表于: 2009-1-12 20:52 2655

[求助][求助]懂汇编的同志请帮忙啦

2009-1-12 20:52
2655
我初学汇编,写个程序,想从控制台输入文件名,然后显示出来,但总没有结果输出 
请帮忙看一下哪有问题?谢谢!

.386
.model flat, stdcall
option casemap:none

include        \masm32\INCLUDE\windows.inc
include        \masm32\INCLUDE\user32.inc
include        \masm32\INCLUDE\kernel32.inc
includelib    \masm32\lib\user32.lib
includelib    \masm32\lib\kernel32.lib
includelib    \masm32\lib\msvcrt.lib

printf  PROTO C  szFormat:DWORD,:vararg
scanf    PROTO  C  szFormat:DWORD,:vararg

.data
szFormat byte '%s',0
szFileName byte 250 ,0

.data?
hFile dd ?
szByteRead db ?
szByteWrite db ?
szBuffer byte 1024 dup (?)

.code
start:
        invoke scanf, offset szFormat, offset szFileName
        invoke CreateFile,addr szFileName,GENERIC_READ,FILE_SHARE_READ,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0

        .if eax != INVALID_HANDLE_VALUE
            mov   hFile , eax
            xor eax,eax
            mov szByteRead,0
            .while TRUE
        
                   invoke  ReadFile,hFile,addr szBuffer,1024,addr szByteRead,NULL
                               invoke printf,offset szBuffer                   
                  .break  .if !szByteRead

      .endw
    .endif        
        
    invoke ExitProcess,NULL
end start

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
2
printf的用法有问题。

试试

printf("%1024s",buffer); // 1024是buffer的size
2009-1-13 03:14
0
雪    币: 247
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
invoke printf,addr szFormat, offset szBuffer      
这个只有在控制台运行才能显示出来
2009-1-13 09:10
0
游客
登录 | 注册 方可回帖
返回
//