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

What do these x86 Assembly instruction codes mean?

我正在查看 asmdb and the intel docs 以尝试找出其中一些来自 asmdb 的含义:

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/7 是什么意思?我假设可能有更多的“斜杠 x”值,它们是什么意思,我如何在英特尔文档中找到它们?

那么 ibid 是什么意思,它们不是十六进制值,很难在英特尔文档中搜索。据我所知,6680 是十六进制值,但 ibiw 等不是。

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

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

“斜线 x”表示指令的一部分被编码在 modr/m 字节的操作码 (reg) 部分。请参阅第 2A 卷第 2 章指令格式。

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