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
我正在尝试在用 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