【问题标题】:Assembly masm32 return address to value汇编masm32返回地址到值
【发布时间】:2016-01-12 20:16:21
【问题描述】:

我有问题,这是我的代码示例,这是一个示例

.model flat, stdcall 
.xmm
.data
    array dword 9.0, 6.0, 3.0, 6.0, 8.0, 4.0, 3.0, 4.0, 3.0
.code

cholesky PROC    

mov eax, [array]
ret ;return array through eax
cholesky endp
end

这段代码被编译为 DLL,我想返回一个指向第一个数组元素的指针。现在它返回 0x41100000 表示 9.0 的单精度浮点数,但是如何返回这个数组的第一个元素的地址呢?

我试图改变

mov eax, [array]

mov eax, array

mov eax, dword ptr [array]

但仍然没有效果。

【问题讨论】:

    标签: assembly x86 masm masm32


    【解决方案1】:

    您需要使用LEA(加载有效地址)来获取内存地址的地址,而不是该地址中存储的值:

    LEA eax, [array]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多