+ -
当前位置:首页 → 问答吧 → win32汇编,只有几行代码,就是找不出错误

win32汇编,只有几行代码,就是找不出错误

时间:2010-12-24

来源:互联网

Assembly code

jinbi        proc    uses ebx ecx edx edi esi
        local    @hDC
        

        invoke    RtlZeroMemory,addr shumu,sizeof shumu
        invoke    GetDC,NULL
        mov @hDC,eax

        mov edi,Pjinbi        
        mov esi,[Pjinbi+4]    
        mov ebx,0        
        mov ecx,50FFh        
        lea edx,[shumu]

        .while    TRUE
            invoke    MessageBox,hWinMain,offset lpErrora6,NULL,MB_OK
            add esi,4    
            invoke    GetPixel,@hDC,edi,esi
            sub esi,4
            .if    eax == ecx    
                add edi,4
                add esi,1
                invoke    GetPixel,@hDC,edi,esi
                sub edi,4
                sub esi,1
                .if    eax == ecx
                    mov eax,0
                    mov [edx+ebx*4],eax
                .else        
                    mov eax,6
                    mov [edx+ebx*4],eax
                .endif
            .else        
                mov eax,9
                mov [edx+ebx*4],eax
            .endif
            add ebx,1
            .break    .if ebx == 8
        .endw
        invoke    ReleaseDC,hWinMain,@hDC
        ret
jinbi        endp



用到的两个变量
.data
shumu dd 8 dup (?)
Pjinbi dd 292,299


只要一调用这个子程序,windows就提示发生错误,强制关闭程序

messagebox是后加上去的
messagebox可以正常弹出来的,点了确定就出错了
把循环去掉就不出错了,应该是循环里面有错误


小弟实在找不出是哪里错了,请大侠指点

作者: shuzihuozifuzuhe   发布时间: 2010-12-24

对于一行注释都没有的汇编程序,我压力很大。楼主至少把想功能什么的说一下吧,不然像我这类小菜就很难替你出主意了

作者: flowerjack   发布时间: 2010-12-24