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