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



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

  

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

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

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

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

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




  

相关话题

  为什么 Windows 不提供内存文件系统? 
  在中国中小学计算机课堂中,推广 Linux 系统而不用 Windows ,可能吗? 
  Linux 系统上用到了微软的哪些专利? 
  被很多人不断坚持攻击的鸿蒙,为什么我的末流211操作系统老师在吹? 
  服务器为什么大多用 Linux? 
  为什么Interrupt需要存储PSW(程序状态字)但子程序调用不需要? 
  你都私藏了哪些牛逼的命令行? 
  页表放在主存中,那么页表基址寄存器中存放的页表基址是虚拟基址还是主存中页表实际基址? 
  腾讯不积极开发 Linux 版微信和 QQ 是否阻碍了国内 Linux 用户群的发展? 
  为啥那么多做手机的公司,只有苹果做成了自己的操作系统iOS,其它公司的操作系统都基于Android? 

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





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