マルチメディア命令(グレー画素最大値)


処理された階調画像でなければ、最大値も面白くありません.
カラー図も階調図に変えてもいいですか.
アセンブリを使用していますが、マルチメディアコマンドは使用されていません.
階調画像のRGBはすべて同じで、mmxレジスタを使う必要はありません.直接単一バイトで処理すればいいです.
最小値を得るのは最大値を得るのと同じ原理で、命令を変更してjaをjnaに変更すればいいだけです.
Pix asmGetMaxGrayPix(BitmapData *data)
{
    //        ,  RGB    
    //      mmx     
    UINT Height=data->Height;
    UINT Width=data->Width;
    Pix* p=(Pix*)data->Scan0;
    UINT n=Height*Width-1;
    Pix Max;        //       
    __asm
    {
        push    esi;
        mov        ecx,n;
        mov        esi,[p];
        mov        eax,[esi];
        add        esi,4;
lp:
        mov        ebx,[esi];
        cmp        al,bl;    //  al,bl, al>bl, al  ,  ,al=bl;
        ja        lp2;    //al   bl,  lp2; //         : jna  lp2;
        mov        al,bl;        
lp2:
        add        esi,4;
        dec        ecx;
        jnz        lp;

        mov        ah,al;
        mov        bx,ax;
        shl        eax,16;
        mov        ax,bx;
        mov        [Max],eax;
        pop        esi;
    }
    return Max;
}