在函数调用前的准备工作就是把相关参数压入栈,如果参数的尺寸是原子单位(32位的系统为32为,64位的系统为64位),但如果传入一个结构体,尺寸大于原子单位,那么就不是一个push指令就能搞定,这时候堆栈的空间还是会被占用,编译器会把结构体的值传入(拷贝)进开辟的堆栈空间,这就能明白为什么参数传递,在...
分类:
其他好文 时间:
2015-09-12 00:43:29
阅读次数:
216
《链接、装载与库》里的一个错误:关于调用栈按照原文中描述做了一个PPT:每次执行push指令时,esp都会减4(因为栈是向低地址增长的),每次pop时esp都会加4。指令:push a指令:push b指令: 1.把main方法当前指令的下一条指定地址(即return address))push.....
分类:
其他好文 时间:
2015-04-06 23:15:40
阅读次数:
231
---------------------------------------------栈,是一种数据结构,我觉得栈是抽象的,但是它同样也是实际的,因为它在内存中是连续的内存,只不过人们限制了它的使用:后进先出,学数据结构两年了,现在才理解,实在惭愧。pushax;I、sp=sp-2II、取出ax中的数据,放入当前栈..
分类:
其他好文 时间:
2014-05-08 02:39:38
阅读次数:
398