assembly - rel8 和 rel16/rel32 有区别吗?
问题描述
在 Intel 的 SDM 3.1.1.3 中,rel8 符号与 rel16 和 rel32 符号是分开列出的,其区别不止操作数大小。
对于 rel8 它说:
rel8 — 从指令结束前 128 个字节到指令结束后 127 个字节范围内的相对地址。
对于 rel16 和 rel32 它说:
rel16, rel32 — 与汇编指令相同的代码段内的相对地址。rel16 符号适用于操作数大小属性为 16 位的指令;rel32 符号适用于具有 32 位操作数大小属性的指令。
我只是在组装时弄湿了我的脚,但对我来说,这些符号看起来差别很大。似乎未定义 rel16/rel32 是否只能在指令之后寻址字节,或者像 rel8 所描述的两种方式(尽管 iirc 相对地址已签名,但仍然明确提到 rel8 而不是 rel16/rel32),也像 rel8不关心代码段。
那么,那些超出操作数大小的符号之间实际上有什么区别吗?
解决方案
推荐阅读
- r - 如何在ggplot中基于Y轴分配色标
- python - 使用 PIL 和 Imageio 正确加载二进制掩码/GIF
- javascript - 如何在js中使用EAN13验证条形码
- hibernate - Spring JPA Hibernate 阻止在控制台日志中显示 sql
- azure - 如果使用 azure datafactory 存在准备好的文件,如何加载 csv 文件
- javascript - 我可以将一行代码作为变量并应用这行代码(如果存在)吗?
- python - 如何将 pd.Series 添加到多索引 DataFrame 的子集?
- reactjs - 我需要在组件的多个函数中使用我的变量,但似乎无法访问它
- synchronization - 用于同步流式传输多个预先录制的视频的工具,就好像它们是实时网络摄像机一样
- javascript - 启用chartsJS条形图从y轴开始