程序集 masm32 return 地址到值
Assembly masm32 return address to value
我有问题,这是我的代码示例,这是示例
.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,我想 return 指向第一个数组元素的指针。现在它 returns 0x41100000 表示单精度浮点数 9.0,但是如何 return 这个数组的第一个元素的地址?
我尝试过改变
mov eax, [array]
到
mov eax, array
或
mov eax, dword ptr [array]
还是没有效果
你需要使用LEA
(Load Effective Address)来抓取一个内存地址的地址,而不是该地址存储的值:
LEA eax, [array]
我有问题,这是我的代码示例,这是示例
.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,我想 return 指向第一个数组元素的指针。现在它 returns 0x41100000 表示单精度浮点数 9.0,但是如何 return 这个数组的第一个元素的地址?
我尝试过改变
mov eax, [array]
到
mov eax, array
或
mov eax, dword ptr [array]
还是没有效果
你需要使用LEA
(Load Effective Address)来抓取一个内存地址的地址,而不是该地址存储的值:
LEA eax, [array]