Dump of assembler code for function main:
0x0000000100000de6 <main+0>: push %rbp
0x0000000100000de7 <main+1>: mov %rsp,%rbp
0x0000000100000dea <main+4>: sub $0x30,%rsp
0x0000000100000dee <main+8>: mov %edi,-0x14(%rbp)
0x0000000100000df1 <main+11>: mov %rsi,-0x20(%rbp)
0x0000000100000df5 <main+15>: movq $0x0,-0x8(%rbp)
0x0000000100000dfd <main+23>: cmpl $0x2,-0x14(%rbp)
我想了解第三行。如果我輸入'p * 0x30',那麼會發生錯誤(這是否可以改變堆棧指針的值(可以改變堆棧指針的值) ?? < - 目標是RSP不是 '$的0x30')這個asm代碼是什麼意思,我如何檢查這些值?
而且
什麼是-0x14(%RBP)??
(我用OSX)
謝謝你提前? 。
謝謝Serge!我還有一個問題。這些指示將他們的目標作爲第二個參數,但我知道在英特爾架構中必須顛倒順序。我錯了嗎? – plhn
gcc使用AT&T表示法打印彙編列表以及生成您可能彙編的文件。用AT&T表示法,源操作數位於左側,目標操作數位於右側。 – Serge