x86 Far return Clang 9/GCC 汇编程序中的助记符?

x86 Far return mnemonic in Clang 9/GCC assembler?

我正在尝试在用 Clang 9 编译的 .S 文件中编写一段 x86 汇编代码。 我需要在代码中使用“far return imm16”指令,我尝试使用带或不带立即操作数的“retf”,但编译器无法识别它并给我“error: invalid instruction mnemonic 'retf'” .它只识别“ret”和“retn”。

我做错了什么?我需要使用的正确助记符是什么?

助记符是lret。像这样使用它:

lret [=10=]x1234

对于以后类似的问题,您可以随时assemble英特尔语法的文件:

.syntax intel,noprefix

        retf 0x1234

然后用 objdump disassemble 得到指令的 AT&T 语法:

   0:   ca 34 12                lret   [=12=]x1234