日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

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

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

新手 RISC-V 編程應(yīng)該注意哪幾點(diǎn)內(nèi)容

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

掃碼添加小助手

加入工程師交流群

原文:

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

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

1

用合適的語(yǔ)言設(shè)計(jì)邏輯對(duì)于初學(xué)者來(lái)說(shuō),這是最難的一步,因?yàn)楝F(xiàn)在學(xué)生們常用的高級(jí)語(yǔ)言中,往往使用更抽象的工具進(jìn)行邏輯設(shè)計(jì),許多學(xué)生想直接編寫(xiě)完整的功能模塊。但是對(duì)于匯編語(yǔ)言來(lái)說(shuō),這是一種注定要失敗的方法。相反,為了把邏輯和語(yǔ)言分開(kāi),我們必須用我們理解的語(yǔ)言來(lái)設(shè)計(jì)程序邏輯。

如果一個(gè)學(xué)生不懂 C 或一些“低級(jí)”語(yǔ)言,那么我建議他們用偽碼寫(xiě)。因?yàn)橛锰呒?jí)的語(yǔ)言如 Java 其實(shí)是面向虛擬機(jī)編程的,這會(huì)增加程序邏輯到匯編語(yǔ)言的轉(zhuǎn)換難度,而使用太低級(jí)的語(yǔ)言會(huì)使程序邏輯設(shè)計(jì)變得困難。因此,我推薦 C 或 C++,在將代碼進(jìn)行轉(zhuǎn)換的時(shí)候,最好將有對(duì)應(yīng)的代友橫向放在一起,一些編輯可以把它們并排放在一起,這是很有幫助的。

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

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

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

2

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

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

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

3

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

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

4

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

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

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

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

通過(guò)對(duì)堆棧指針的 sub 操作去分配函數(shù)堆棧。在調(diào)用完成后使用 add 操作進(jìn)行銷毀

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

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

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

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

以下面這段代碼為例:

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

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

5

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

# 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 語(yǔ)言代碼進(jìn)行一個(gè)總的注釋,然后將每個(gè)匯編語(yǔ)言片段的也使用 C 語(yǔ)言進(jìn)行注釋。尤其當(dāng)涉及到運(yùn)算操作順序時(shí),這樣的方式使我們能夠保證程序可以正確地執(zhí)行每一步。

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

編輯:jq

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

    關(guān)注

    31

    文章

    5621

    瀏覽量

    130463
  • 數(shù)據(jù)
    +關(guān)注

    關(guān)注

    8

    文章

    7350

    瀏覽量

    95063
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4423

    瀏覽量

    67884
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4977

    瀏覽量

    74431

原文標(biāo)題:新手 RISC-V 編程的幾點(diǎn)內(nèi)容

文章出處:【微信號(hào):strongerHuang,微信公眾號(hào):strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    OpenHarmony與RISC-V的戰(zhàn)略融合與競(jìng)賽

    引言O(shè)R大賽賽前第六場(chǎng)培訓(xùn),由深圳清華大學(xué)研究院及RIOS圖靈實(shí)驗(yàn)室(Risc-V國(guó)際開(kāi)源實(shí)驗(yàn)室)于2026/4/29聯(lián)合舉辦,深圳市愛(ài)普特微電子有限公司受邀,作為RISC-V賽道資深I(lǐng)C設(shè)計(jì)廠商
    的頭像 發(fā)表于 04-30 16:59 ?1515次閱讀
    OpenHarmony與<b class='flag-5'>RISC-V</b>的戰(zhàn)略融合與競(jìng)賽

    RT-Thread 邀您參與“開(kāi)放?連接”2026玄鐵 RISC-V 生態(tài)大會(huì),攜手共鑄 RISC-V“芯”紀(jì)元

    2026年3月24日,由浦東新區(qū)人民政府科經(jīng)委指導(dǎo),達(dá)摩院主辦,上海開(kāi)放處理器產(chǎn)業(yè)創(chuàng)新中心、RISC-V工作委員會(huì)、中國(guó)開(kāi)放指令(RISC-V)生態(tài)聯(lián)盟聯(lián)合協(xié)辦的本屆玄鐵RISC-V生態(tài)大會(huì),將在
    的頭像 發(fā)表于 03-22 10:05 ?641次閱讀
    RT-Thread 邀您參與“開(kāi)放?連接”2026玄鐵 <b class='flag-5'>RISC-V</b> 生態(tài)大會(huì),攜手共鑄 <b class='flag-5'>RISC-V</b>“芯”紀(jì)元

    RISC-V不支持 Nx嗎?

    RISC-V architecture! · nrwl/nx · Discussion #27915 如果能夠支持 RISC-V,那就太好了。目前我無(wú)法在我的 VisionFive2 板上
    發(fā)表于 02-04 06:27

    新思科技ARC-V處理器驅(qū)動(dòng)RISC-V市場(chǎng)無(wú)限機(jī)遇

    從 2010 年美國(guó)加州大學(xué)伯克利分校的教授與他的研究生團(tuán)隊(duì)耗時(shí)三個(gè)月完成 RISC-V 指令集的開(kāi)發(fā)工作,到 2015 年,RISC-V 在學(xué)術(shù)界聲名鵲起,再到 2025 年成為主流架構(gòu)之一
    的頭像 發(fā)表于 12-24 17:17 ?1521次閱讀
    新思科技ARC-<b class='flag-5'>V</b>處理器驅(qū)動(dòng)<b class='flag-5'>RISC-V</b>市場(chǎng)無(wú)限機(jī)遇

    為什么RISC-V是嵌入式應(yīng)用的最佳選擇

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

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

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

    大灣區(qū)RISC-V生態(tài)全景展示:RISC-V生態(tài)發(fā)展論壇、開(kāi)發(fā)者Workshop和生態(tài)應(yīng)用專區(qū)

    繼7月份上海的RISC-V中國(guó)峰會(huì)之后,中國(guó)RISC-V生態(tài)和產(chǎn)業(yè)發(fā)展最新動(dòng)態(tài)將在10月份深圳的灣芯展上全景展示。 ? RISC-V,這個(gè)以開(kāi)放、簡(jiǎn)約、模塊化重塑處理器架構(gòu)格局的開(kāi)源指令集(ISA
    的頭像 發(fā)表于 10-13 09:18 ?782次閱讀
    大灣區(qū)<b class='flag-5'>RISC-V</b>生態(tài)全景展示:<b class='flag-5'>RISC-V</b>生態(tài)發(fā)展論壇、開(kāi)發(fā)者Workshop和生態(tài)應(yīng)用專區(qū)

    普華基礎(chǔ)軟件亮相2025 RISC-V中國(guó)峰會(huì)

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

    RISC-V 手冊(cè)

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

    2025新思科技RISC-V科技日活動(dòng)圓滿結(jié)束

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

    時(shí)擎科技亮相2025 RISC-V中國(guó)峰會(huì),深度解析高性能RISC-V SoC技術(shù)挑戰(zhàn)與創(chuàng)新

    2025年7月16-18日,第五屆RISC-V中國(guó)峰會(huì)在上海張江科學(xué)會(huì)堂成功舉辦,作為全球RISC-V領(lǐng)域頂級(jí)盛會(huì)之一,本屆峰會(huì)匯聚了數(shù)百家企業(yè)、研究機(jī)構(gòu)及開(kāi)源社區(qū),共同探討RISC-V生態(tài)
    的頭像 發(fā)表于 07-21 17:37 ?1891次閱讀
    時(shí)擎科技亮相2025 <b class='flag-5'>RISC-V</b>中國(guó)峰會(huì),深度解析高性能<b class='flag-5'>RISC-V</b> SoC技術(shù)挑戰(zhàn)與創(chuàng)新

    RISC-V 發(fā)展態(tài)勢(shì)與紅帽系統(tǒng)適配進(jìn)展

    2025 年 7 月 18 日,在第五屆(2025)RISC-V 中國(guó)峰會(huì)的軟件與生態(tài)系統(tǒng)分論壇上,紅帽軟件(北京)有限公司首席軟件工程師、RISC-V 國(guó)際基金會(huì)大使傅煒?lè)窒淼闹黝}是《紅帽在
    發(fā)表于 07-18 10:55 ?4248次閱讀
    <b class='flag-5'>RISC-V</b> 發(fā)展態(tài)勢(shì)與紅帽系統(tǒng)適配進(jìn)展

    RISC-V 的平臺(tái)思維和生態(tài)思維

    RISC-V 的魅力在于以模塊化、開(kāi)源、開(kāi)放的指令集為底座,通過(guò)平臺(tái)化技術(shù)框架降低芯片與應(yīng)用開(kāi)發(fā)門(mén)檻,并以協(xié)同共建的產(chǎn)業(yè)生態(tài)彌合碎片、加速落地。因此,高通高級(jí)副總裁 Leendert van
    發(fā)表于 07-17 14:04 ?4241次閱讀

    RISC-V International CEO:RISC-V 應(yīng)用全面開(kāi)花,2031 年滲透率將達(dá) 25.7%

    7 月 16 日~19 日,第五屆(2025)RISC-V 中國(guó)峰會(huì)在上海張江科學(xué)會(huì)堂拉開(kāi)帷幕。峰會(huì)設(shè)置 1 場(chǎng)主論壇、8 大垂直領(lǐng)域分論壇、多場(chǎng)研習(xí)會(huì)及多項(xiàng)同期活動(dòng)。在 7 月 17 日的主論壇上
    發(fā)表于 07-17 10:28 ?3809次閱讀
    <b class='flag-5'>RISC-V</b> International CEO:<b class='flag-5'>RISC-V</b> 應(yīng)用全面開(kāi)花,2031 年滲透率將達(dá) 25.7%

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

    在微處理器架構(gòu)領(lǐng)域,ARM與RISC-V是兩個(gè)備受關(guān)注的體系。ZLG致遠(yuǎn)電子在推出ARM核心版后,又推出了基于RISC-V的MR6450核心版,這引發(fā)了人們對(duì)這兩種架構(gòu)差異的深入探討。ARM
    的頭像 發(fā)表于 06-24 11:38 ?2312次閱讀
    <b class='flag-5'>RISC-V</b>和ARM有何區(qū)別?
    沁阳市| 集贤县| 昌吉市| 宜州市| 乌什县| 仁怀市| 长武县| 鄄城县| 永和县| 蒙自县| 将乐县| 乡城县| 红桥区| 武鸣县| 桓仁| 林芝县| 成安县| 阿坝| 衡阳市| 吴川市| 衡南县| 和顺县| 阿拉尔市| 息烽县| 奉贤区| 西贡区| 南宁市| 博野县| 松原市| 宁都县| 南宫市| 杨浦区| 高要市| 万安县| 瑞金市| 关岭| 昆明市| 北京市| 望谟县| 宁武县| 商城县|