首页
社区
课程
招聘
[求助]大家帮下忙看怎么实现这样的功能
发表于: 2007-11-28 20:14 3912

[求助]大家帮下忙看怎么实现这样的功能

2007-11-28 20:14
3912
invoke        CreateFileMapping,@hFile,NULL,PAGE_READONLY,0,0,NULL
                .if        eax
                        mov        @hFileMap,eax
                        invoke        MapViewOfFile,eax,FILE_MAP_READ,0,0,0
                        .if        eax
                                mov        @lpMemory,eax
                                xor     eax,eax
                                .while  @dwFileSize
                                        dec @dwFileSize
                                        mov esi,@lpMemory
                                        lodsb
                                        .if (al!=0dh) && (al!=0ah)

                                          ;//这里的代码怎么写啊。我就想,每检查到有换行和回车的时候,就把
                                                   
                                              换行和回车前面的代码保存到缓冲区中
                                         ;.else

                                        .endif
                                        inc @lpMemory
                                .endw
                        .endif

                .endif

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 230
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
invoke  MapViewOfFile,eax,FILE_MAP_READ,0,0,0
      .if  eax
        mov  @lpMemory,eax
        mov PointBegin,eax        ;开始位置
        mov esi,eax
        cld
        mov ebx,eax
        add ebx,@dwFileSize        ;ebx 是终止的地址
        .while esi<ebx
                lodsb
                .if al==0dh        ;如果是回车符
                        mov al,byte ptr [esi]        ;再取下一个是否是换行符
                        .if  al==0ah
                                mov eax,esi
                                dec eax
                                sub eax,PointBegin        ;减去 开始位置后就是要 copy  的长度
                                invoke RtlMoveMemory,addr szBuf,PointBegin,eax        ;拷到 szBuf
                                inc esi                ;加1从 换行符的下一个开始
                                mov PointBegin,esi        ;新的开始位置
                        .endif
                .endif
        .endw

      .endif

注意,这样循环找,结束后szBuf 里只保留了最后一次找到的内容
2007-11-29 18:13
0
游客
登录 | 注册 方可回帖
返回