百科问答小站 logo
百科问答小站 font logo



为什么修改esp寄存器会触发异常? 第1页

  

user avatar   bei-ji-85 网友的相关建议: 
      

题主的想法是:把内存映射的地址换个地方,把新的栈指针指过去。目的是为了动态调整栈的位置吧?

但这种做法不可取,也不可能实现。

首先esp的值不仅仅保存在esp里,换句话说,指向栈上的东西,不仅仅是只有esp,比如ebp也是可以用来做寻址的。甚至在内存里,多级指针都是指向旧的内存区域,你不可能也没办法把这些内存里的数据都指向新的栈空间,因为对于内存来说,都是一个一个数值,它是指针,还是一个整型数,没人知道。

所以, 跟权限无关,你这个思路本身就是错的。




  

相关话题

  Android 系统无法被分支 (fork) 吗,AOSP 和 GMS 是何关系? 
  华为的手机操作系统如果真的被迫上线,国内其他厂商会作何反应? 
  如何看待王垠对于内存管理的理解? 
  iOS 系统是个全新的操作系统还是套壳的 UNIX ? 
  C++ 中,std::atomic 是真正的「原子」吗? 
  如何看待 Apple Mac 将无法支持最新微软 Windows 11 操作系统? 
  想做 C++ 方面开发,是基于 Linux 还是基于 Windows 平台? 
  微内核鸿蒙OS 2.0是如何做到不使用Linux和安卓代码同时又兼容Linux和安卓的呢? 
  如何看待华为终端 2020 年除了手机、平板和电脑外全线搭载鸿蒙系统? 
  汇编语言中执行loop语句需要几个时钟周期? 

前一个讨论
为什么不把push ebp和mov ebp, esp的操作通过硬件方式做进call指令中?
下一个讨论
linux内核切换成分页模式后,ljmp $__BOOT_CS,$1f 这行代码有什么意思?





© 2025-06-24 - tinynew.org. All Rights Reserved.
© 2025-06-24 - tinynew.org. 保留所有权利