因为我不懂得汇编代码,下面代码哪位高手能帮我翻译成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