【发布时间】:2021-01-27 11:27:06
【问题描述】:
我正在查看 asmdb 和 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 等不是。
我想最终构建一个机器码生成器,所以需要能够理解机器码操作码的这些基本组件是什么。
【问题讨论】:
-
英特尔手册的开头有一整章来解释所有这些缩写的含义。
-
旧的 NASM 指令参考也有解释:ulukai.org/ecm/doc/insref.htm#iref-opc
标签: assembly x86 intel machine-code