gpt4 book ai didi

assembly - x86 操作码编码 : sib byte

转载 作者:行者123 更新时间:2023-12-02 21:49:48 33 4
gpt4 key购买 nike

我目前正在尝试编写一个反汇编程序。我找到了以下操作码列表及其含义,因此我决定在运行时解析它: http://web.archive.org/web/20150810224114/http://mprolab.teipir.gr/vivlio80X86/pentium.txt

但我被困在操作码 0x00 处:其后是 reg/modbyte。解析它对我来说并不是什么大问题。

但是我在使用 Scale-Index-Base 字节时遇到了问题:
如果你真的指定esp作为索引寄存器,那么实际上意味着没有索引寄存器。

这同样适用于带有 ebp 的基址寄存器。但我已经用 C++ 内联汇编器尝试过:可以编译:添加[ebp*2+ebp],cl

那么当使用ebp作为基址寄存器实际上意味着根本不使用基址寄存器时,如何将ebp用作基址寄存器!?

最佳答案

“缺少 EBP”情况仅适用于 ModR/M.Mod 字段的二进制值为 00 的情况。如果需要 EBP 作为基础,汇编器会将 Mod 更改为 01 二进制,并添加 8 位位移,其值为零:

004C6D00 添加[ebp+ebp*2], cl

关于assembly - x86 操作码编码 : sib byte,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3476541/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com