PTT
Submit
Submit
選擇語言
正體中文
简体中文
PTT
C_and_CPP
[問題] c語言使用組合語言呼叫函式sp數值問題
作者:
q22049202
(國寶)
2016-03-05 17:16:31
開發平台(Platform):c++&asm
問題(Question):c語言用組合語言去呼叫一個函式,觀察跳躍前後sp內的數值
,單純用組合語言sp會差2,用c語言使用組合語言呼叫的會差6
請問有什麼盲點嗎?
麻煩各位大大解答了
有用反組譯去看機械碼
在呼叫函式進入後
函式的開頭有SP+4跟結尾SP-4
有些是開頭有SP+8跟結尾SP-4
請問這個別是什麼原因加上的
作者:
LPH66
(-6.2598534e+18f)
2016-03-05 17:41:00
可以貼一下你看到的機械碼...這些比較跟編譯器使用的 calling convention 有關不過你可能有哪裡弄錯了, stack 是倒著長的, 所以一般來說進函式時是 sp = sp - size, 出函式時 sp = sp + size你可能看到了使用 sp 存取參數的間接定址了(你講的那個 sp+4 如果是在 [] 裡的那就是了)
作者:
q22049202
(國寶)
2016-03-05 20:08:00
http://imgur.com/a/n6TYY
附上程式碼可以方便問一下 為什麼是+4嗎?是為了函式內有可能要擺放東西預先空間?
作者:
stupid0319
(徵女友)
2016-03-06 14:27:00
_cdecl _stdcall _fastcall請問你用哪一個call你的fun
繼續閱讀
[徵求] 求書 c++ primer 3or 4/e
kai5566
Re: [問題] C++ Win32 API EDIT Window的問題
ThomasHuang
[問題] 關於使用WMI發ACPI table給BIOS使用
drunknmunky
[問題] c語言function傳參數的問題
wtmo5566
Re: [問題] C++ Win32 API EDIT Window的問題
icetofux
[問題] C++ 語法問題
yshihyu
[問題] C++ Win32 API EDIT Window的問題
w0005151
[問題] 利用C寫網路傳送程式問題
smvenjoy
[問題] VC++ 記憶體問題 求教
ostrichw
[問題] 讀取hex file
HisterShen
Links
booklink
Contact Us: admin [ a t ] ucptt.com