这些 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”值,它们是什么意思,我如何在英特尔文档中找到它们?
那么 ib
和 id
是什么意思,它们不是十六进制值,很难在英特尔文档中搜索。据我所知,66
和 80
是十六进制值,但 ib
、iw
等不是。
我想最终构建一个机器代码生成器,因此需要能够理解机器代码操作码的这些基本组成部分是什么。
你会想看 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 中查看所有缩写。
我正在查看 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”值,它们是什么意思,我如何在英特尔文档中找到它们?
那么 ib
和 id
是什么意思,它们不是十六进制值,很难在英特尔文档中搜索。据我所知,66
和 80
是十六进制值,但 ib
、iw
等不是。
我想最终构建一个机器代码生成器,因此需要能够理解机器代码操作码的这些基本组成部分是什么。
你会想看 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 中查看所有缩写。