chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

新手 RISC-V 編程應該注意哪幾點內容

strongerHuang ? 來源:CSDN ? 作者:CSDN ? 2021-06-01 09:14 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

原文:

https://blog.stephenmarz.com/2021/05/12/tips-to-writing-assembly/

當用戶使用 C、C++ 或任何其他高級語言時,編譯器決定了程序的藝術。然而這一次,我們將自行面對 CPU,新手實現(xiàn)面向指令集編程的藝術,本文使用RISC-V 為例來向大家展示,來如何使用編寫語言設計程序邏輯,并最終將程序邏輯轉換為匯編語言的程序。

1

用合適的語言設計邏輯對于初學者來說,這是最難的一步,因為現(xiàn)在學生們常用的高級語言中,往往使用更抽象的工具進行邏輯設計,許多學生想直接編寫完整的功能模塊。但是對于匯編語言來說,這是一種注定要失敗的方法。相反,為了把邏輯和語言分開,我們必須用我們理解的語言來設計程序邏輯。

如果一個學生不懂 C 或一些“低級”語言,那么我建議他們用偽碼寫。因為用太高級的語言如 Java 其實是面向虛擬機編程的,這會增加程序邏輯到匯編語言的轉換難度,而使用太低級的語言會使程序邏輯設計變得困難。因此,我推薦 C 或 C++,在將代碼進行轉換的時候,最好將有對應的代友橫向放在一起,一些編輯可以把它們并排放在一起,這是很有幫助的。

說實話這部分雖然看似平平無奇,但卻讓我頗感到意外,因為 C 語言和匯編的對照完全可以通過 gcc 的 -o -g 參數(shù)以及 objdump 實現(xiàn)。

fcdddd28-c238-11eb-9e57-12bb97331649.png

在譯者的理念中,匯編語言是專門用于填補空白,只有當其它語言不能勝任的時候才會考慮用匯編語言上場工作,不過從這篇博文中透露出的信息來看,國外在教學過程中對于匯編語言的運用范圍也是不設限的,而在譯者印象中能用匯編語言實現(xiàn)任何功能的程序員,在國內只有求伯君,嚴援朝等廖廖數(shù)人而已,由此可見我們在 IT 基礎教育領域要做的工作還很多。

2

小步快跑,不要試圖一口吃個胖子很多匯編語言的初學者試著從頭到尾寫完整的程序,而沒有在中間進行過任何測試關鍵,但是我建議在完成部分邏輯時就立刻進行測試。這樣做其實很簡單,比如完成了一個 for 循環(huán),等等一小部分功能就要開始測試。

可以將 C 或 C++ 程序與匯編程序連接起來。通過在 C++ 中原型化組裝函數(shù)的名稱實現(xiàn)這一點。按照一般的做法通常會在 C 函數(shù)前面加上一個 “c” 來區(qū)分。我們可以調用 Show 來運行匯編語言編寫的函數(shù)。

其實這部分的建議并不僅僅針對于 RISC-V 甚至不是針對匯編語言,無論是什么語言的編程,當你想到要進行單元測試的時候往往就已經(jīng)晚了,隨時對于一個細小的模塊進行測試真的是一個好習慣。

3

了解匯編語言的功能定位這里我們必須要充分認識到?jīng)]有匯編語言和有編譯器解釋器的高級語言真的完全不一樣,不養(yǎng)兒不知父母恩,不寫匯編不知各類語言之父有多神。在匯編語言中操作順序都需要程序員自己去掌握。

例如,4+3*4 的運算,作何一種語言的編譯器都先執(zhí)行乘法,然后再加法。然而在匯編語言的編程世界中,我們必須首先選擇乘法指令,然后再選擇加法指令。沒有為我們進行運算符號的優(yōu)先級重排。

4

了解如何調用函數(shù)

在匯編語言中編寫一個函數(shù)是一項非常艱苦的任務,大多數(shù) ISA 體系結構(如ARM和RISC-V)的芯片都將附帶專門的工作手冊,當然這些手冊中只是制定了一些基本規(guī)則,如何傳遞參數(shù),如何接收返回結果,又如何構造函數(shù)棧禎等等具體的話題都值得深入討論。

不過幸運的是 RISC-V 寄存器的 “ABI” 命名規(guī)則,有助于程序員理解它們的含義。比如:

整數(shù)參數(shù)在寄存器 A0-A7 中,浮點參數(shù)在寄存器 FA0-FA7 中

通過對堆棧指針的 sub 操作去分配函數(shù)堆棧。在調用完成后使用 add 操作進行銷毀

堆棧大小必須以 8 的整數(shù)倍形式分配

所有參數(shù)和臨時寄存器必須在函數(shù)調用后,被視為銷毀態(tài)

在函數(shù)調用之后,已保存寄存器才能被顯式保存。如果使用了任何已保存的寄存器,則必須在函數(shù)返回之前還原它們的原始值

通過 a0 寄存器做為返回值,將數(shù)據(jù)返回給調用方。

以下面這段代碼為例:

.global mainmain:addi sp, sp, -8sd ra, 0(sp)la a0, test_solvecall solvemv a0, zerold ra, 0(sp)addi sp, sp, 8ret

我們可以看到先通過 addi sp,sp,-8 的語句構造函數(shù)禎,保存所有寄存器后執(zhí)行相應函數(shù)邏輯,接下來將所有包括sp寄存器內的調用環(huán)境恢復,最后返回。

5

文檔建議使用 C 或其他語言編寫匯編語言的注釋,用以下代碼為例:

# used |= 1 《《 ( x[i * 9 + col] - 1) li t0, 9 mul t1, s3, t0 # t1 = i * 9 add t1, t1, s2 # t1 = i * 9 + col slli t2, t1, 2 # Scale by 4 add t2, t2, s6 # x + i * 9 + col lw t3, 0(t2) # x[i * 9 + col] addi t3, t3, -1 # x[i * 9 + col] - 1 li t4, 1 sll t4, t4, t3 # 1 《《 x[i * 9 + col] - 1 or s5, s5, t4 # used |= 。。.

原始 C 語言代碼進行一個總的注釋,然后將每個匯編語言片段的也使用 C 語言進行注釋。尤其當涉及到運算操作順序時,這樣的方式使我們能夠保證程序可以正確地執(zhí)行每一步。

免責聲明:本文素材來源網(wǎng)絡,版權歸原作者所有。如涉及作品版權問題,請與我聯(lián)系刪除。

編輯:jq

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 寄存器
    +關注

    關注

    31

    文章

    5590

    瀏覽量

    129091
  • 數(shù)據(jù)

    關注

    8

    文章

    7315

    瀏覽量

    93993
  • 函數(shù)
    +關注

    關注

    3

    文章

    4406

    瀏覽量

    66851
  • 代碼
    +關注

    關注

    30

    文章

    4941

    瀏覽量

    73158

原文標題:新手 RISC-V 編程的幾點內容

文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    為什么RISC-V是嵌入式應用的最佳選擇

    最近RISC-V基金會在社交媒體上發(fā)文,文章說物聯(lián)網(wǎng)和嵌入式系統(tǒng)正在迅速發(fā)展,需要更高的計算性能、更低的功耗和人工智能。RISC-V是為未來而建的,包括超高效的MCU到高性能應用處理器,RISC-V使開發(fā)人員能夠設計以下解決方案
    的頭像 發(fā)表于 11-07 10:09 ?1311次閱讀

    RISC-V B擴展介紹及實現(xiàn)

    B擴展簡介 RISCV B擴展指的是RISCV用于位運算加速的一個擴展指令集,目的是使用一條指令實現(xiàn)原本需要2-3條指令才能實現(xiàn)的位操作指令。具體包含內容如下: B擴展就是RISC-V一個可選
    發(fā)表于 10-21 13:01

    普華基礎軟件亮相2025 RISC-V中國峰會

    此前,7月16日至18日,第五屆RISC-V中國峰會在上海盛大召開。普華基礎軟件副總經(jīng)理兼戰(zhàn)略研究院院長張曉先受邀參會,發(fā)表《開源小滿助力RISC-V軟硬協(xié)同生態(tài)發(fā)展》主題演講,分享了開源小滿
    的頭像 發(fā)表于 07-28 16:51 ?934次閱讀
    普華基礎軟件亮相2025 <b class='flag-5'>RISC-V</b>中國峰會

    RISC-V 手冊

    以下是關于RISC-V的詳細介紹,結合其核心技術特點與當前發(fā)展現(xiàn)狀:核心概念RISC-V(第五代精簡指令集)是一種基于精簡指令集(RISC)的開源指令集架構(ISA),由加州大學伯克利分校于2010
    發(fā)表于 07-28 16:27 ?11次下載

    2025新思科技RISC-V科技日活動圓滿結束

    新思科技深度參與2025 RISC-V中國峰會并于2025年7月16日舉辦同期活動“新思科技RISC-V科技日”技術論壇,聚焦“從芯片到系統(tǒng)重構RISC-V創(chuàng)新”主題,議題覆蓋當前最前沿的技術領域
    的頭像 發(fā)表于 07-25 17:31 ?1091次閱讀

    RISC-V International CEO:RISC-V 應用全面開花,2031 年滲透率將達 25.7%

    7 月 16 日~19 日,第五屆(2025)RISC-V 中國峰會在上海張江科學會堂拉開帷幕。峰會設置 1 場主論壇、8 大垂直領域分論壇、多場研習會及多項同期活動。在 7 月 17 日的主論壇上
    發(fā)表于 07-17 10:28 ?3566次閱讀
    <b class='flag-5'>RISC-V</b> International CEO:<b class='flag-5'>RISC-V</b> 應用全面開花,2031 年滲透率將達 25.7%

    RISC-V和ARM有何區(qū)別?

    在微處理器架構領域,ARM與RISC-V是兩個備受關注的體系。ZLG致遠電子在推出ARM核心版后,又推出了基于RISC-V的MR6450核心版,這引發(fā)了人們對這兩種架構差異的深入探討。ARM
    的頭像 發(fā)表于 06-24 11:38 ?1733次閱讀
    <b class='flag-5'>RISC-V</b>和ARM有何區(qū)別?

    FPGA與RISC-V淺談

    全球半導體產(chǎn)業(yè)競爭格局正在經(jīng)歷深刻變革,物聯(lián)網(wǎng)、邊緣計算等新興技術的蓬勃發(fā)展,讓RISC-V憑借其開源、精簡以及模塊化的靈活優(yōu)勢,日益成為業(yè)界焦點,也為全球半導體產(chǎn)業(yè)注入新的活力與挑戰(zhàn)
    發(fā)表于 04-11 13:53 ?549次閱讀
    FPGA與<b class='flag-5'>RISC-V</b>淺談

    芯來科技亮相RISC-V Day Tokyo 2025

    RISC-V Day Tokyo 2025春季會議于日前在東京大學ITO國際研究中心順利舉行。The RISC-V Day Tokyo作為日本最大的RISC-V活動,匯集了眾多優(yōu)秀的RISC-
    的頭像 發(fā)表于 03-03 14:07 ?1033次閱讀

    關于RISC-V芯片的應用學習總結

    RISC-V芯片作為一種基于精簡指令集計算(RISC)原則的開源指令集架構(ISA)芯片,近年來在多個領域展現(xiàn)出了廣泛的應用潛力和顯著優(yōu)勢。以下是對RISC-V芯片應用的總結。 RISC-V
    發(fā)表于 01-29 08:38

    貿澤電推出RISC-V技術資源中心

    Mouser推出內容豐富的RISC-V資源中心,為設計工程師提供新技術和新應用的相關知識。隨著開源架構日益普及,RISC-V從眾多選項中脫穎而出,成為開發(fā)未來先進軟硬件的新途徑。從智能手機和IoT設備,再到高性能計算,
    的頭像 發(fā)表于 01-22 10:45 ?777次閱讀

    RISC-V MCU技術

    嘿,咱來聊聊RISC-V MCU技術哈。 這RISC-V MCU技術呢,簡單來說就是基于一個叫RISC-V的指令集架構做出的微控制器技術。RISC-V這個啊,2010年的時候,是加州大
    發(fā)表于 01-19 11:50

    RISC-V芯片問題

    RISC-V高端芯片有哪些,目前生態(tài)怎樣?
    發(fā)表于 12-27 16:41

    RISC-V架構及MRS開發(fā)環(huán)境回顧

    一、RISC-V架構介紹 1. RISC 架構的起源 1981年,在David Patterson(大衛(wèi)·帕特森)的帶領下,美國加州大學伯克利分校的一個研究團隊起 草了RISC-I,是今天RI
    發(fā)表于 12-16 23:08

    RISC-V 與 ARM 架構的區(qū)別 RISC-V與機器學習的關系

    在現(xiàn)代計算機架構中,RISC-V和ARM是兩種流行的處理器架構。它們各自具有獨特的特點和優(yōu)勢,適用于不同的應用場景。 1. RISC-V架構 RISC-V(讀作“risk-five”)是一種開源
    的頭像 發(fā)表于 12-11 17:50 ?4368次閱讀