汇编器中的这段代码是怎么回事? (双字ptr [rbp + 48] ...)

时间:2019-12-04 20:53:29

标签: c# assembly dll x86-64 cpu-registers

我正在分析某人的项目,以将图像转换为棕褐色。我不明白这段代码在C#中被称为DLL的过程。

.CODE
sepia proc          
    mov         ebx, dword ptr[rbp + 48]    
    mov         r11, rbx                    
    mov         ebx, dword ptr[rbp + 56]    
    mov         r10, rbx                    
    movdqu      xmm1, oword ptr[rdx]        
    movdqu      xmm2, oword ptr[r8]         
    movdqu      xmm3, oword ptr[r9]             

// ... more code ...

在这里从C#调用DLL ...

  [DllImport("DLL_ASM.dll", EntryPoint = "sepia")]
        private static extern void SepiaAsmAlgorithm(
            float[] pixels, float[] sepiaRates, 
            float[] rgbRates, float[] array255, int startIndex, int endIndex);

此代码的含义

ebx, dword ptr [rbp + 48]

为什么上述值是从ebx寄存器中输入的,然后为什么将其从rbx寄存器中分配给r11?

0 个答案:

没有答案