assembly - 对于给定的堆栈位置和大小,为 x86 实模式设置堆栈段、基址和堆栈指针的正确方法?
问题描述
我正在尝试在 x86 实模式下初始化ss
、sp
和寄存器。bp
给定一个从物理地址向下增长B
到最大S
字节大小的堆栈,以下初始化过程是否正确?
- 设置
ss
为(B - S) / 16
。 - 设置
bp
为S
,所以ss:bp
是B
。 - 设置
sp
为bp
,初始化一个空堆栈。
在上面我假设B - S
结果是一个段落对齐的物理地址,并且B
和S
都可以被 2 整除,因此保证了字对齐。
解决方案
推荐阅读
- javascript - 在js中移动到同一页面中的新部分时制作动画
- php - 请求帮助我解决以下代码中的问题:
- autodesk-forge - 如何在 Autodesk Forge 中增加存储桶的大小?
- rest - 更正 HTTP 动词以用于 Web API 中的业务规则验证端点
- wordpress - Wordpress 联系表格 7 无法正常工作,为什么?
- selenium - 如何使用 Java 检查 Selenium Webdriver 中的另一个元素中是否存在一个元素?
- firebase - Firestore 是否会在离线超过 30 分钟时向我们收费?
- sqlite - SQlite:创建新列
- c++ - C++ OpenCV:屏蔽频域图像
- python-3.x - sklearn.impute.MissingIndicator ValueError:输入包含 NaN、无穷大或对于 dtype('float64')来说太大的值。: