在Visual Studio中,我们可以使用“_emit”指令生成操作码字节。此外,在GCC中,我们可以使用类似于:
asm __volatile__ (".byte 0x12");
我们可以在Rust内联装配中做一些类似的事情吗?
y1aodyip1#
不幸的是,Rust的标准内联asm基本上是GAS(默认情况下使用intel语法),所以
#![no_main] #[no_mangle] unsafe extern "cdecl" fn main() { core::arch::asm!(".byte 12h"); }
将产生
main: push rax .byte 18 pop rax ret
这与C中的相同。
1条答案
按热度按时间y1aodyip1#
不幸的是,Rust的标准内联asm基本上是GAS(默认情况下使用intel语法),所以
将产生
这与C中的相同。