#汇编 #稳定版

libasm

libasm 为稳定版Rust添加内联汇编

3 个版本

使用旧的Rust 2015

0.1.2 2018年1月15日
0.1.1 2018年1月14日
0.1.0 2018年1月14日

#1597过程宏

每月 22 次下载

MIT 协议

9KB
184 代码行

libasm

这是一个库,用于为稳定版Rust提供内联汇编支持。

要将内联汇编添加到项目,只需创建一个类似以下的构建脚本

extern crate libasm;

fn main() {
    libasm::parse();
}

这是一个示例项目

#[macro_use]
extern crate libasm;

lasm! {
    "x86_64-unknown-linux-gnu"
    fn add2 {
        mov %rax, %rdi
        add %rax, %rsi
    }

    "x86_64-pc-windows-msvc"
    fn add2 {
        mov rax, rcx
        add rax, rdx
    }
}

extern "C" {
    fn add2(a: u64, b: u64) -> u64;
}

fn main() {
    let x = unsafe { add2(3, 4) };
    println!("Hello, world! 3 + 4 = {}", x);
}

lasm! 声明提供了一组特定于目标-triple的汇编函数列表。需要自己声明函数原型,如 lasm! 块之后所示。如果编译的目标-triple没有匹配的声明,将会遇到链接错误,除非实现来自其他地方。

依赖项

~2MB
~49K SLoC