微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

这些 x86 汇编指令代码是什么意思?

如何解决这些 x86 汇编指令代码是什么意思?

我正在查看 asmdbintel docs 以尝试从 asmdb 中找出其中一些含义:


  <PropertyGroup>
    <TargetFramework>netcoreapp3.1</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <ProjectReference Include="..\OdetoFood.Data\OdetoFood.Data.csproj" />
  </ItemGroup>
  <ItemGroup>
    <packagereference Include="Microsoft.EntityFrameworkCore" Version="5.0.2" />
    <packagereference Include="Microsoft.EntityFrameworkCore.Design" Version="5.0.2">
    </packagereference>
    <packagereference Include="Microsoft.EntityFrameworkCore.sqlServer" Version="5.0.2" />
  </ItemGroup>
  <ItemGroup>
    <Folder Include="Pages\Api\" />
  </ItemGroup>
</Project>

add | x:r8/m8,ib/ub | 80 /0 ib add | X:r64/m64,id | REX.W 81 /0 id add | x:~r16/m16,~r16 | 66 01 /r and | x:al,ib/ub | 24 ib btc | x:r16/m16,ib/ub | 66 0F BA /7 ib /0/r 是什么意思?我认为可能有更多的“斜线 x”值,它们是什么意思,我如何在英特尔文档中找到它们?

那么 /7ib 是什么意思,这些不是十六进制值,很难在 Intel 文档中搜索。据我所知,id66 是十六进制值,但 80ib 等不是。

我想最终构建一个机器码生成器,因此需要能够理解机器码操作码的这些基本组件是什么。

解决方法

你会想看到Intel® 64 and IA-32 Architectures Software Developer Manuals

"slash x" 表示指令的一部分被编码在 modr/m 字节的操作码 (reg) 部分中。参见第 2A 卷第 2 章指令格式。

“ib”和“id”分别表示“立即字节”和“立即双字”。您可以在 Vol 2A 附录 A.2 OPCODE MAP / KEY TO ABBREVIATIONS 中看到所有缩写。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。