MOVABS指令是什么时候引入的?

逆向工程 x86 amd64 气体
2021-06-12 09:54:15

在尝试为反汇编代码编写指令集分析工具 ( https://superuser.com/a/832440/384221 ) 时,我发现操作码 MOVABS 未包含在我的操作码源数据库(Shirk 的gas.vim文件)中,但我不确定在哪个架构中引入了它。

根据Gas/x86 AT&T 语法中 movabs 的含义是什么?和其他来源似乎该指令是在 64 位体系结构之前引入的。但是是 i686 或更早版本吗?

谢谢你。

2个回答

正如 Igor 提到的,它是特定于 GAS 的。

git log --reverse -Smovabs

告诉我们它是在 2000 年提交 c0d8940 中引入的并且:

git tag --contains c0d8940

说它早在binutils-2_11.

movabs只是一种特定于 GAS 的方式来强制编码 64 位内存偏移量或立即数。它仍然是相同的标准MOV操作码

我不确定你从哪里得到它在 x64 之前引入的概念,这显然是不正确的。例如,Solaris x86 手册提到:“movabs 仅在 –m64 下有效”。