APP下载

Rust Nightly版本现提供新的行内组语语法

消息来源:baojiabao.com 作者: 发布时间:2026-09-02

报价宝综合消息Rust Nightly版本现提供新的行内组语语法

Rust现在于Nightly版本开始提供新的行内组语(Inline assembly)语法,目的是要取代原本提供的LLVM组合语言,其提供更佳的稳定性,未来将会进入稳定版本。初始实作版本支援ARM、x86以及RISC-V架构,未来将会视需求扩充支援。

在最佳化、操作系统和嵌入式系统开发,或是其他类型的低阶程式开发中,开发者可能会需要为处理器编写组合语言程式码,满足因为效能、精确计时,或是低阶硬件存取的需求,Rust官方提到,行内组语提供了简单的方式,可以将一些组合指令整合到Rust程式中,将Rust表达式作为输入放到暂存器中,并直接以Rust变数取得输出。

Rust Nightly一直以来,都有行内组语的语法,但这个行内组语语法非常特殊,提供LLVM IR可用的行内组语语法轻量打包,其公开了非常原始的LLVM组合语言构造,缺乏安全防护让开发者无法安全地使用语法来编写程式,只要略有错误就会产生内部编译器错误,而非像是Rustc能够提供使用者友善的错误讯息。

另外,旧版组合语言的语法也容易发生错误,虽然看起来与GCC的行内组语语法很相似,但是仍然有一些差异,官方表示,这种语法并不准备在任何非LLVM后端上支援,组合语言是非常重要的功能,但是这个版本不可能从Nightly进到Rust稳定版本。

为此,官方才在Rust中加入新的行内组语语法,在x86平台,行内组语预设使用英特尔语法,但也可以选用AT&T语法。官方表示,他们重新命名了旧的行内组语,开发者现在仍然可以继续在Rust Nightly中使用,但其容易出现内部编译器错误的特性,最终他们还是会删除这个旧语法,只是在当前新语法刚加入的阶段,他们留着旧语法作为比较和替代。

2020-06-11 12:48:00

相关文章