我正在分析某人的项目,以将图像转换为棕褐色。我不明白这段代码在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?