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



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

  

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

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

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

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

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




  

相关话题

  你怎么看待华为与它的鸿蒙OS? 
  从事嵌入式行业的你,现在年薪多少,有什么经历想和大家分享? 
  如何扎实系统地学好后端开发(Linux 环境下)?细分方向有哪些?可否推荐一些好的开源项目? 
  微软是否无法放弃更新 Windows,转而设计全新的操作系统? 
  为什么arm版mac运行效率那么高? 
  如果有一个arm核心的微型电脑,跟u盘一样大,里面跑linux发行版,带电池,连上usb后就能操作它的屏幕。这东西做成产品,你会买不? 
  不想随大流,怎么选择有个性的操作系统? 
  一条C语言语句不一定是原子操作,但是一个汇编指令是原子操作吗? 
  linux在系统调用进入内核时,为什么要将参数从用户空间拷贝到内核空间?不能直接访问,或是使用memcpy吗?非要使用copy_from_user才行吗? 
  DOS 界面是如何制作的? 

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





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