国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【跟小嘉學 Rust 編程】二十四、內聯(lián)匯編(inline assembly)

這篇具有很好參考價值的文章主要介紹了【跟小嘉學 Rust 編程】二十四、內聯(lián)匯編(inline assembly)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

系列文章目錄

【跟小嘉學 Rust 編程】一、Rust 編程基礎
【跟小嘉學 Rust 編程】二、Rust 包管理工具使用
【跟小嘉學 Rust 編程】三、Rust 的基本程序概念
【跟小嘉學 Rust 編程】四、理解 Rust 的所有權概念
【跟小嘉學 Rust 編程】五、使用結構體關聯(lián)結構化數(shù)據(jù)
【跟小嘉學 Rust 編程】六、枚舉和模式匹配
【跟小嘉學 Rust 編程】七、使用包(Packages)、單元包(Crates)和模塊(Module)來管理項目
【跟小嘉學 Rust 編程】八、常見的集合
【跟小嘉學 Rust 編程】九、錯誤處理(Error Handling)
【跟小嘉學 Rust 編程】十一、編寫自動化測試
【跟小嘉學 Rust 編程】十二、構建一個命令行程序
【跟小嘉學 Rust 編程】十三、函數(shù)式語言特性:迭代器和閉包
【跟小嘉學 Rust 編程】十四、關于 Cargo 和 Crates.io
【跟小嘉學 Rust 編程】十五、智能指針(Smart Point)
【跟小嘉學 Rust 編程】十六、無畏并發(fā)(Fearless Concurrency)
【跟小嘉學 Rust 編程】十七、面向對象語言特性
【跟小嘉學 Rust 編程】十八、模式匹配(Patterns and Matching)
【跟小嘉學 Rust 編程】十九、高級特性
【跟小嘉學 Rust 編程】二十、進階擴展
【跟小嘉學 Rust 編程】二十一、網絡編程
【跟小嘉學 Rust 編程】二十三、Cargo 使用指南
【跟小嘉學 Rust 編程】二十四、內聯(lián)匯編(inline assembly)

前言

Rust 在 1.59 版本之中,引入了內聯(lián)匯編支持,該特性對于需要底層控制的應用非常有用,例如想要控制底層執(zhí)行、訪問特定的機器指令等。

主要教材參考 《The Rust Programming Language》
主要教材參考 《Rust For Rustaceans》
主要教材參考 《The Rustonomicon》
主要教材參考 《Rust 高級編程》
主要教材參考 《Cargo 指南》


一、 內聯(lián)匯編(Inline Assembly)

1.1、asm!

使用 asm!global_asm! 宏, 內聯(lián)匯編使用的匯編語言和指令取決于相應的機器平臺,目前為止 Rust 支持以下平臺的內聯(lián)匯編

  • x86 和 x86-64
  • ARM
  • AArch64
  • RISC-V
  • LoongArch

如果不支持,asm! 宏將會觸發(fā)一個 error。

use std::arch::asm;

// Multiply x by 6 using shifts and adds
let mut x: u64 = 4;
unsafe {
    asm!(
        "mov {tmp}, {x}",
        "shl {tmp}, 1",
        "shl {x}, 2",
        "add {x}, {tmp}",
        x = inout(reg) x,
        tmp = out(reg) _,
    );
}
assert_eq!(x, 4 * 6);

1.2、asm 宏的參數(shù)

這些參數(shù)為了讓編譯器幫助分配寄存器

  • in:表示將變量值傳給寄存器
  • out :表示將寄存器的值寫到變量
  • inout: 即時輸入也是輸出,這種方式可以保證同一個寄存器來完成任務
  • lateout:任何只在所有輸入被消費后才被寫入的輸出
  • inlateout:輸出值在所有寄存器被讀取后,才被修改;
  • sym: asm可以將符號重定位集合起來從線程本地數(shù)據(jù)中讀取

具體內容,我們會放到 Rust 嵌入式講解 這部分,目前不是我們系列的重點內容

總結

以上內容就是講解了 Rust 的 內聯(lián)匯編文章來源地址http://www.zghlxwxcb.cn/news/detail-687115.html

到了這里,關于【跟小嘉學 Rust 編程】二十四、內聯(lián)匯編(inline assembly)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!

本文來自互聯(lián)網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉載,請注明出處: 如若內容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • 【跟小嘉學 Rust 編程】一、Rust 編程基礎

    【跟小嘉學 Rust 編程】一、Rust 編程基礎

    【跟小嘉學 Rust 編程】一、Rust 編程基礎 本系列旨在分享 Rust 學習心得,適合初學者入門,后續(xù)系列會有 Rust 項目實戰(zhàn)系列編程介紹。 主要教材參考 《The Rust Programming Language》 Rust 是一門新的編程語言,它可以讓每個人編寫可靠且高效的程序,使用于需要運行時速度、需要內

    2024年02月10日
    瀏覽(18)
  • 【跟小嘉學 Rust 編程】三、Rust 的基本程序概念

    【跟小嘉學 Rust 編程】三、Rust 的基本程序概念

    【跟小嘉學 Rust 編程】一、Rust 編程基礎 【跟小嘉學 Rust 編程】二、Rust 包管理工具使用 【跟小嘉學 Rust 編程】三、Rust 的基本程序概念 本章節(jié)涵蓋幾乎所有編程語言會出現(xiàn)的概念以及他們在 Rust之中的工作原理,這不是 Rust 獨有的,但我們將在 Rust 上下文中討論他們,并且

    2024年02月10日
    瀏覽(21)
  • 【跟小嘉學 Rust 編程】十五、智能指針

    【跟小嘉學 Rust 編程】一、Rust 編程基礎 【跟小嘉學 Rust 編程】二、Rust 包管理工具使用 【跟小嘉學 Rust 編程】三、Rust 的基本程序概念 【跟小嘉學 Rust 編程】四、理解 Rust 的所有權概念 【跟小嘉學 Rust 編程】五、使用結構體關聯(lián)結構化數(shù)據(jù) 【跟小嘉學 Rust 編程】六、枚舉

    2024年02月11日
    瀏覽(23)
  • 【跟小嘉學 Rust 編程】十九、高級特性

    【跟小嘉學 Rust 編程】一、Rust 編程基礎 【跟小嘉學 Rust 編程】二、Rust 包管理工具使用 【跟小嘉學 Rust 編程】三、Rust 的基本程序概念 【跟小嘉學 Rust 編程】四、理解 Rust 的所有權概念 【跟小嘉學 Rust 編程】五、使用結構體關聯(lián)結構化數(shù)據(jù) 【跟小嘉學 Rust 編程】六、枚舉

    2024年02月10日
    瀏覽(20)
  • 【跟小嘉學 Rust 編程】三十、Rust 使用 Slint UI

    【跟小嘉學 Rust 編程】三十、Rust 使用 Slint UI

    【跟小嘉學 Rust 編程】一、Rust 編程基礎 【跟小嘉學 Rust 編程】二、Rust 包管理工具使用 【跟小嘉學 Rust 編程】三、Rust 的基本程序概念 【跟小嘉學 Rust 編程】四、理解 Rust 的所有權概念 【跟小嘉學 Rust 編程】五、使用結構體關聯(lián)結構化數(shù)據(jù) 【跟小嘉學 Rust 編程】六、枚舉

    2024年02月04日
    瀏覽(26)
  • 【跟小嘉學 Rust 編程】四、理解 Rust 的所有權概念

    【跟小嘉學 Rust 編程】四、理解 Rust 的所有權概念

    【跟小嘉學 Rust 編程】一、Rust 編程基礎 【跟小嘉學 Rust 編程】二、Rust 包管理工具使用 【跟小嘉學 Rust 編程】三、Rust 的基本程序概念 【跟小嘉學 Rust 編程】四、理解 Rust 的所有權概念 本章節(jié)將講解 Rust 獨有的概念(所有權)。所有權是 Rust 最獨特的特性,它使得 Rust 能夠

    2024年02月10日
    瀏覽(30)
  • 【跟小嘉學 Rust 編程】十七、面向對象語言特性

    【跟小嘉學 Rust 編程】一、Rust 編程基礎 【跟小嘉學 Rust 編程】二、Rust 包管理工具使用 【跟小嘉學 Rust 編程】三、Rust 的基本程序概念 【跟小嘉學 Rust 編程】四、理解 Rust 的所有權概念 【跟小嘉學 Rust 編程】五、使用結構體關聯(lián)結構化數(shù)據(jù) 【跟小嘉學 Rust 編程】六、枚舉

    2024年02月10日
    瀏覽(36)
  • 【跟小嘉學 Rust 編程】六、枚舉和模式匹配

    【跟小嘉學 Rust 編程】一、Rust 編程基礎 【跟小嘉學 Rust 編程】二、Rust 包管理工具使用 【跟小嘉學 Rust 編程】三、Rust 的基本程序概念 【跟小嘉學 Rust 編程】四、理解 Rust 的所有權概念 【跟小嘉學 Rust 編程】五、使用結構體關聯(lián)結構化數(shù)據(jù) 【跟小嘉學 Rust 編程】六、枚舉

    2024年02月13日
    瀏覽(32)
  • 【跟小嘉學 Rust 編程】十二、構建一個命令行程序

    【跟小嘉學 Rust 編程】一、Rust 編程基礎 【跟小嘉學 Rust 編程】二、Rust 包管理工具使用 【跟小嘉學 Rust 編程】三、Rust 的基本程序概念 【跟小嘉學 Rust 編程】四、理解 Rust 的所有權概念 【跟小嘉學 Rust 編程】五、使用結構體關聯(lián)結構化數(shù)據(jù) 【跟小嘉學 Rust 編程】六、枚舉

    2024年02月13日
    瀏覽(26)
  • 【跟小嘉學 Rust 編程】十六、無畏并發(fā)(Fearless Concurrency)

    【跟小嘉學 Rust 編程】一、Rust 編程基礎 【跟小嘉學 Rust 編程】二、Rust 包管理工具使用 【跟小嘉學 Rust 編程】三、Rust 的基本程序概念 【跟小嘉學 Rust 編程】四、理解 Rust 的所有權概念 【跟小嘉學 Rust 編程】五、使用結構體關聯(lián)結構化數(shù)據(jù) 【跟小嘉學 Rust 編程】六、枚舉

    2024年02月11日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包