c# - 汇编程序中的这段代码发生了什么?(dword ptr[rbp + 48] ...)
问题描述
我正在分析某人的项目以将图像转换为棕褐色。我不明白这段被 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]
为什么然后将值从 rbx 寄存器分配给 r11,因为上面的条目是对 ebx 寄存器进行的?
解决方案
推荐阅读
- android - App_HiltComponents.ActivityC 范围为 @dagger.hilt.android.scopes.ActivityScoped 可能不会引用具有不同范围的绑定
- python - 如何从 json 中提取元素并放入 python
- sql - 查询以在同一个表中用名称替换 ID?
- regex - 为什么正则表达式中没有“匹配所有”特殊字符?
- r - R tidyverse 获取 NA 值
- ffmpeg - 如何同时应用drawtext和watermark?
- apache-spark - 使用 pyspark 对 parquet 文件进行分区和重新分区
- python - 如何使用标量常数来加权 Keras 中的隐藏标量输出
- node.js - 节点运行函数 Sync,在返回之前等待外部值。异步/等待
- xpath - 如何 xpath 进入网页的“主要”部分?