网站首页
日博开户 亚洲版365betasia 365bet亚洲备用网址 365bet网上投注 bet36365官网体育 365最快线路检测中心

365最快线路检测中心

当前位置:主页 > 365最快线路检测中心 >

什么是桩?什么是桩?

发布时间:2019-09-11 08:31

展开全部
什么是电池和电池?
用c / C ++编译的程序占用的内存分为以下几部分:1.堆栈:由编译器自动分配的函数的存储参数值,局部变量值等
它的工作方式与数据结构堆栈的工作方式相同。
2,堆区域(堆) - 如果程序员在程序结束时没有释放,它可以由操作系统恢复,通常由程序员分配和释放。
请注意,这与数据结构堆不同。映射类似于链表huh,呵呵。
3,全局区域(静态区域)(静态) - 全局变量和静态变量存储在块中,全局变量被初始化,静态变量存储在区域中,全局变量未初始化,静态变量未初始化初始化阶段邻域中的其他区域
- 程序结束后有一个系统版本。4.常量常量区域 - 常量字符串放在此处。
程序代码的一个区域,由程序结束后的系统启动 - 函数体的二进制代码。
什么是堆栈功能
函数堆栈的本质是传递链接到汇编语言的参数。
换句话说,proc汇编语言过程可以理解为作为计算函数的简单函数,并且可以通过编写子代数来估计两个汇编的总和。它从堆栈中取出并放在AX记录popbx中。b从堆栈中取出,BX Addax寄存器,BX,a + Bret // return subendp显然被计算并调用此函数。我们首先需要将b的值压入堆栈然后通过Pusha。拨出电话的汇编计算为4 + 5push5。按4;调用Sub //在这种情况下,AX 5或4没有改变结果以推送返回的结果,但是大多数程序在错误顺序的参数被高级编译的语言中是悲惨的它成为这样的结果。汇编语言和机器语言C遵循相同的过程,计算a + b的值,并将其与使用intsub汇编代码(INTA,INTB){return + b;}编译的前一个值组合。因此,请调用此函数。Csub,你需要将它插入堆栈(即输入参数),但它们在C语言中工作。你不必这样做。
只需写下子(7,9)。编译到程序集时,编译器会自动完成关联的插入作业。
根据函数调用模式和参数推送顺序,目前有三种约定:stdcallcdeclfastcall,它涉及堆栈顺序和堆栈清理作业。细节是不同的,但有一点是肯定的,你需要将参数的关系从右向左推送。堆栈中stdcall中的函数通过调用者和函数调用模式清除堆栈中的cdecall你需要清楚因此,C支持参数变量。fastcall是将函数参数列表的前三个参数存储在寄存器eax,edx,ecx,其他参数堆栈的源代码中。intfunction(inta,intb){return + b;}void main(){function(10,20);
__ cdecl_functionpushebpmovebp,espmoveax,[ebp + 8];一个参数的介词,[ebp + C]。添加2popebpretn_mainpushebpmovebp和esppush14h。堆栈2参数push0Ah。一个参数堆栈,他们称之为函数addsp,8。Xoreax堆栈修复,eaxpopebpretn2。
__fastcall @@ 8 pushebpmovebp函数,特别是存储堆栈指针subsp,8;两个或多个局部变量mov[ebp-8],EDX,存储参数2 mov[ebp-4],ecx。保存参数1 moveax,[ebp-4]。参数1 addeax,[ebp-8]。添加参数2movesp和ebp。纠正桩popebpretn_mainpushebpmovebp,espmovedx,14小时。EDXmovecx的两个参数,0Ah。ECXcall @ function @ 8参数1。调用函数Xoreax,eaxpopebpretn3。
__stdcall_function @ 8 pushebpmovebp,espmoveax,[ebp];参数1 addeax,[ebp + C]。进一步的参数2popebpretn8。堆栈修复_ mainpushebpmovebp,esppush14h。