2016-01-12 63 views
0

我有問題,我這裏是我的代碼,這裏是一個樣本大會MASM32返回地址看重

.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] 

,但仍然沒有效果。

回答

0

您需要使用LEA(加載有效地址)搶內存地址,而不是存儲在該地址的值的地址:

LEA eax, [array]