- 博客(2)
- 问答 (1)
- 收藏
- 关注
原创 C语言让函数运行在自己创建的栈上
当C语言程序进入一个新的函数时,C语言会先通过让EBP=ESP的操作让EBP寄存器指向新函数栈的栈底,再减少ESP寄存器(扩大栈)来为该函数分配所需的栈帧。由此可见,想要改变函数执行时使用的栈,只需要修改ESP和EBP,让其指向自己分配的内存,就可以实现切换栈的操作。接下来,一个程序还需要使用栈,因此操作系统再将程序所在的虚拟地址空间的一段地址映射到物理地址上,用来当作程序的栈。另外,栈指针寄存器一般总是指向栈顶的,也就是自ESP指向的内存开始向内存地址增大方向,均属于程序的栈。
2023-06-26 18:30:25
158
2
空空如也
使用AES指令级为AES加密32位程序错误
2023-06-24
C++/CX UWP create_task编译时无法通过,错误C2338
2021-12-27
TA创建的收藏夹 TA关注的收藏夹
TA关注的人