急,请求帮忙!

anhamu   2007-9-5 14:32 楼主
因为我不懂得汇编代码,下面代码哪位高手能帮我翻译成C语言形式的吗,感激不尽!!谢谢      
                  push esi
                    push edi
                    push eax
                    push ebx
                    push ecx
                    push edx
                    push es
                    push ds
                   
                    mov ax,ds
                    mov es,ax

                    mov edi,pBitsDest
                    mov ecx,nHeight
        beginy:
                    push ecx
                    mov ecx,nWidth
                    mov ebx, row_pointers
                    mov esi,[ebx]
                    ;//偏移图片的左边列
                    mov eax,xSour
                    imul eax,4                ;//一个象素4个字节
                    add esi,eax               
        beginx:
                            ;//get alpla value
                            xor ebx,ebx
                            mov bl,[esi+3]       
                   
                            ;//blue
                            xor eax,eax
                            mov al,[esi+2]
                            imul ax,bx
                            not bl
                            xor edx,edx
                            mov dl,[edi];
                            imul dx,bx
                            add ax,dx
                            mov [edi],ah        ;//将结果返回*pBitsDest
                            not bl
                            inc edi
                            ;//green
                            xor eax,eax
                            mov al,[esi+1]
                            imul ax,bx
                            not bl
                            xor edx,edx
                            mov dl,[edi];
                            imul dx,bx
                            add ax,dx
                            mov [edi],ah        ;//将结果返回*pBitsDest
                            not bl
                            inc edi
                            ;//red
                            xor eax,eax
                            mov al,[esi]
                            imul ax,bx
                            not bl
                            xor edx,edx
                            mov dl,[edi];
                            imul dx,bx
                            add ax,dx
                            mov [edi],ah        ;//将结果返回*pBitsDest
                            inc edi
                            add esi,4

                            loop beginx
                    ;//后续对齐
                    add edi,nLineTailDest
                    sub row_pointers,4        ;//下一行

                    pop ecx
                    loop beginy

                    pop ds
                    pop es
                    pop edx
                    pop ecx
                    pop ebx
                    pop eax
                    pop edi
                    pop esi

回复评论

暂无评论,赶紧抢沙发吧
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复