2013-05-15 88 views
2

該圖顯示了我如何將10字節元素數組的地址作爲值加載到指針數組中。我打算對這個數組進行排序,在後面。使用printf打印由指針數組引用的值

現在,我試圖解引用這些存儲的地址,以使用c + + printf函數來打印實際的數組值到屏幕從該Ptr數組。

我沒有問題,通過調用的printf,它看起來像

fld tword [Array] 
fstp tword [rsp] 
mov rsi,rsp 
mov rdi, "String which is defined above %Lf ..." 
call printf 

做類似這樣的東西,如果我的數組值將指針地址的任何想法打印出元素的數組?

enter image description here

+0

TWORD?這些IEEE 80位浮點值? –

+0

陣列上的值是80位。我的教授告訴我們,指向數據的指針是64位。 –

回答

0

printf仍在期待堆棧的浮點值,所以(我的頭頂部),可能是這樣的

mov rax, offset [Pts] 
fld tword [rax] 
fstp tword [rsp] 
mov rsi,rsp 
mov rdi, "String which is defined above %Lf ..." 
call printf 
+0

我遵循,這應該工作。它打印出的結果全部爲0.0,這讓我認爲我的指針數組創建在某處出現了。非常感謝你的迴應。我會讓你知道,如果我得到它!保重。 –

+0

我想通了。我有一個類似的解決方案,但我試圖直接轉到rsp,我忘了這是不允許的。對您的解決方案的唯一調整是將Pts括起來。再次感謝! –

+0

我修好了,thx。 –