色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

RISC-V指令集

_light ? 來源:_light ? 作者:_light ? 2022-11-18 10:11 ? 次閱讀

1、寄存器

RV32I有32個通用寄存器,以及一個PC寄存器。其中有一個通過硬件設置的值恒為 0 的 x0 寄存器

在這里插入圖片描述

注:RISC-V的32個寄存器x0~x31是用0~31這些數字來表示。

2、基礎指令

RISC-V有六種基本指令格式:

在這里插入圖片描述

每個字段名稱的含義:


  • opcode (操作碼):指令的基本操作,這個縮寫是它慣用名稱。
  • rd : 目的操作寄存器,用來存放操作結果。
  • funct3 : 一個另外的操作碼字段。
  • rs1 : 第一個源操作數寄存器。
  • rs2 : 第二個源操作數寄存器。
  • funct7 : 一個另外的操作碼字段。
  • imm :立即數

2.1、R 型指令

字段:

funct7 rs2 rs1 funct3 rd opcode
7位 5位 5位 3位 5位 7位

指令:

在這里插入圖片描述

示例:

指令 示例 含義
add add a0, a1, a2 a0 = a1 + a2
sub sub a0, a1, a2 a0 = a1 - a2
sll sll a0, a1, a2 a0 = a1 << a2 (低位補0)
srl srl a0, a1, a2 a0 = a1 >> a2(高位補0)
sra sra a0, a1, a2 a0 = a1 >> a2 (算術右移,高位補原來的符號位)
slt slt a0, a1, a2 a1 < a2 ? 1 : 0
xor xor a0, a1, a2 a0 = a1 ^ a2
or or a0, a1, a2 a0 = a1
and and a0, a1, a2 a0 = a1 & a2

2.2、I 型指令

字段:

imm rs1 funct3 rd opcode
12位 5位 3位 5位 7位

指令:

在這里插入圖片描述

示例:

指令 示例 含義
addi add a0, a1, 0x50
slli slli a0, a1, 5 a0 = a1 << 5 (低位補0)
srli srli a0, a1, 5 a0 = a1 >> 5 (高位補0)
srai sra a0, a1, 5 a0 = a1 >> 5 (高位補原來的高位)
slti slti a0, a1, 0x50 a1 < 0x50 ? 1 : 0
xori xor a0, a1, 0x50 a0 = a1 ^ 0x50
ori ori a0, a1, 0x50 a0 = a1
andi andi a0, a1, 0x50 a0 = a1 & 0x50

取值指令—Load

字段:

imm rs1 funct3 rd opcode
12位 5位 3位 5位 7位

指令:

在這里插入圖片描述

示例:

lb x10,  0(x1)  //將x1的值加上0,將這個值作為地址, 取出這個地址所對應的內存中的值, 將這個值賦值給x10(取出的是8位數值)
lh x10,  0(x1)  //從內存中取出16位數值
lw x10, 0(x1)  //從內存中取出32位數值
lbu x10, 0(x1) //從內存中取出8位無符號數值
lhu x10, 0(x1) //從內存中取出16位無符號數值

2.3、S 型指令

字段:

imm[11:5] rs2 rs1 funct3 imm[4:0] opcode
7位 5位 5位 3位 5位 7位

指令:

在這里插入圖片描述

示例:

sb  x10, 0(x1)  //x1的值加上0,將這個值作為地址, 將x10的值存儲到上述地址所對應的內存中去 (只會將x10的值的低8位寫入)
sh  x10, 0(x1)  //只會將x10的值的低16位寫入
sw  x10, 0(x1)  //只會將x10的值的低32位寫入

2.4、B 型指令

字段:

imm[12] imm[10:5] rs2 rs1 funct3 imm[4:1] imm[11] opcode
1位 6位 5位 5位 3位 4位 1位 7位

指令:

在這里插入圖片描述

指令 示例 含義 備注
beq beq a1, a2, Lable if(a1 == a2){goto Label;} Lable是任意自定義的標簽
bne bne a1, a2, Lable if(a1 != a2){goto Label;}
blt blt a1, a2, Lable if(a1 < a2){goto Label;}
bgt bgt a1, a2, 100 if(a1 > a2){goto Label;} 100與Label對應著相同的指令, 實際上在運行時Label會變成pc+xxx
bge bge a1, a2, 100 if(a1 <= a2){goto Label;}
ble ble a1, a2, 100 if(a1 >= a2){goto Lable;}

2.5、U 型指令

字段:

imm[31:12] rd opcode
10位 5位 7位

指令:

在這里插入圖片描述

lui  x10, 0x65432 //得到立即數的高20位,低位補0,立即數范圍為:0x00~0xFFFFF

2.6、J 型指令

字段:

imm[20] imm[10:1] imm[11] imm[19:12] rd opcode
1位 10位 1位 8位 5位 7位

指令:

在這里插入圖片描述

示例:

jal ra, symbol   // 跳轉到Symbol中去, 并把ra設置成返回地址 Symbol 可以是自定義的Label ,也可以是某個函數名
jal ra, 100        // 跳轉到pc + 100 * 2的地方中去, 并把ra設置成返回地址  pc相對尋址,對應的是位置無關代碼(PIC)
jalr ra, 40(x10) //跳轉到x10+40 的地方中去, 并把ra設置成返回地址x10+40必須是絕對地址,指向內存中某個確定的地方(往往是函數的開頭),非PIC

3、匯編語言翻譯成機器語言

示例1:


例題

對于符號表示為:

add x9, x20, x21

的RISC-V指令,首先以十進制表示,然后用二進制表示

答案

有上面的介紹可知add指令的字段如下:

在這里插入圖片描述

直接用十進制表示如下:

funct7 rs2 rs1 funct3 rd opcode
0 21 20 0 9 51

一條指令的每一段稱為一個宇段。

第一、第四和第六個字段(0、0 和 51)組合起來告訴RISC-V計算機該指令執行加法操作。

第二個字段給出了作為加法運算的第二個源操作數的寄存器編號(21 表示 x21),

第三個字段給出了加法運算的另一個源操作數(20代表×20)。

第五個字段存放要接收總和的奇存器編號(9代表x9)。

因此,該指令將寄存器 x20 和寄存器 x21 相加并將和存放在寄存器x9中。

用二進制表示如下:

funct7 rs2 rs1 funct3 rd opcode
0000000 10101 10100 000 01001 0110011

總上,add x9, x20, x21 的RISC-V指令對應的機器碼為: 00000001010110100000010010110011


示例2


例題

有以下幾條匯編:

ld x9, 240(x10)
add x9, x21, x9
addi x9, x9, 1
sd x9, 240(x10)

將它們翻譯為對應的機器碼

答案

審核編輯:湯梓紅

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

    關注

    31

    文章

    5357

    瀏覽量

    120600
  • 指令集
    +關注

    關注

    0

    文章

    226

    瀏覽量

    23389
  • RISC-V
    +關注

    關注

    45

    文章

    2292

    瀏覽量

    46227
收藏 人收藏

    評論

    相關推薦

    正式的RISC-V基礎指令集架構與特權架構規范來了,RISC-V基金會已正式批準

    根據RISC-V基金會官網發布的公告,RISC-V 基金會宣布了批準RISC-V 基礎指令集架構與特權架構規范,為 RISC-V的可擴展性進
    的頭像 發表于 07-11 10:46 ?9875次閱讀

    淺談RISC-V指令集架構的來龍去脈

    最近和幾個行業內的朋友聊天,聊到了近兩年比較火的AI人工智能,并向我推薦了一款目前在小范圍內比較火的國產處理器,我查了一下該處理器是采用的開源RISC-V指令集架構。曾有人將RISC-V比作“半導體行業的Linux”,今天就和大
    的頭像 發表于 01-24 17:42 ?6327次閱讀

    Microchip發布業界首款基于RISC-V指令集架構的SoC FPGA開發工具包

    免費和開源的 RISC-V 指令集架構(ISA)的應用日益普遍,推動了經濟、標準化開發平臺的需求,該平臺嵌入 RISC-V 技術并利用多樣化 RISC-V 生態系統。
    發表于 09-17 12:56 ?1482次閱讀

    有沒有RISC-V指令集文檔分享一下?

    有沒有RISC-V指令集文檔分享一下?了解一下他的匯編指令
    發表于 03-30 11:48

    RISC-V指令集說明哪里有?

    RISC-V指令集說明哪里有?匯編指令文檔哪有?
    發表于 04-30 17:44

    RISC-V指令集的特點總結

    開源 定義:RISC-V 是完全開源的指令集架構(ISA),意味著任何人都可以查看、使用、修改以及分發其設計,而無需支付版權費用。 優勢:這種開源特性促進了全球性的創新和合作。 社區化 定義
    發表于 08-30 22:05

    RISC-V指令集位寬的幾點學習心得

    在學習RISC-V指令集過程中,指令位寬大多是32位和64的,它并不像其它指令集,還有8位的古老指令集。這估計也是
    發表于 10-31 22:05

    RISC-V指令集概述

    RISC-V就是RISC的第五代指令集架構。而RISC-V目標就是“成為一種完全開放的指令集架構,可被任何學術機構或商業組織自由使用”。
    發表于 11-30 23:30

    僅用7個月就設計出了一款基于RISC-V指令集的AI芯片

    中國最早做RISC-V的公司選擇了落戶深圳,并且僅用7個月就設計出了一款基于RISC-V指令集的AI芯片,能耗和面積明顯優于同級別Arm架構芯片,更讓行業吃驚的是該款芯片一次性流片成功。這是否意味著
    發表于 08-02 11:59

    RISC-V指令集架構微控制器相關知識

    本系列痞子衡給大家介紹的是RISC-V指令集架構微控制器相關知識。  RISC-V指令集最早要追溯到2010年,是加州大學伯克利分校的一個研究團隊的項目,目標是設計一種新的
    發表于 12-16 06:24

    基于RISC-V指令集Egret系列處理器的性能及應用場景

    risc-v峰會上由廈門半導體投資集團有限公司的王旭給我們介紹了基于RISC-V指令集的Egret系列處理器,分別從特性、應用場景、優勢等幾個方面對這個系列的處理器進行了詳細的展現。
    發表于 06-22 15:36 ?2253次閱讀
    基于<b class='flag-5'>RISC-V</b><b class='flag-5'>指令集</b>Egret系列處理器的性能及應用場景

    risc-v中國峰會直播:如何優化RISC-V指令集架構的代碼密度?

    第一屆中國峰會在上海舉辦,以下是小編整理的部分risc-v峰會的內容。主要介紹了影響代碼密度的因素以及如何優化RISC-V指令集架構的代碼密度?感興趣的小伙伴可以詳細了解一下。
    的頭像 發表于 06-23 12:12 ?3123次閱讀
    <b class='flag-5'>risc-v</b>中國峰會直播:如何優化<b class='flag-5'>RISC-V</b><b class='flag-5'>指令集</b>架構的代碼密度?

    RT-Thread全球技術大會:RISC-V指令集開源軟件生態介紹

    RT-Thread全球技術大會:RISC-V指令集開源軟件生態介紹
    的頭像 發表于 05-27 09:47 ?1204次閱讀
    RT-Thread全球技術大會:<b class='flag-5'>RISC-V</b><b class='flag-5'>指令集</b>開源軟件生態介紹

    簡單講講RISC-V指令集CPU的參數

    本次CPU采用32位RISC-V指令集架構(一代是自己瞎編指令集)。指令集就是程序指令的集合,指引硬件如何設計、如何運行。
    的頭像 發表于 08-07 14:55 ?3687次閱讀
    簡單講講<b class='flag-5'>RISC-V</b><b class='flag-5'>指令集</b>CPU的參數

    瑞薩推出首款基于RISC-V指令集架構的處理器內核

    嵌入式硬件專家瑞薩電子宣布推出首款基于免費開放的 RISC-V 指令集架構 (ISA) 的完全自主研發的處理器內核。
    的頭像 發表于 12-01 17:28 ?1549次閱讀
    瑞薩推出首款基于<b class='flag-5'>RISC-V</b><b class='flag-5'>指令集</b>架構的處理器內核
    主站蜘蛛池模板: 午夜亚洲WWW湿好大| 伊人22222| 爱情岛论坛免费在线观看| 捏揉舔水插按摩师| 俄罗斯6一9泑女网站| 特级毛片AAAAAA| 国产在线精品视频二区| 一个人免费观看HD完整版| 户外插BBBBB| 69ZXX少妇内射无码| 日本久久久久久久做爰片日本 | 看看妇女的B免费看| jizz非洲| 亚洲AV蜜桃永久无码精品无码网| 久草在在线免视频在线观看| 91精品国产品国语在线不卡| 视频成人永久免费看| 久久操韩国自偷拍| 成年女人免费影院播放| 亚洲男女羞羞无遮挡久久丫| 暖暖 免费 高清 日本 在线| 国产对白精品刺激一区二区| 永久免费看bbb| 深夜草逼逼| 久久五月综合婷婷中文云霸高清| 成人毛片免费在线观看| 亚洲色t图| 人人模人人干| 久久久高清国产999尤物| 成人小视频在线免费观看| 无遮掩H黄纯肉动漫在线观看星| 久久亚洲伊人| 国产精品一久久香蕉国产线看| 最懂男人心论坛| 午夜国产一区在线观看| 内射气质御姐视频在线播放| 国产一区内射最近更新| 边摸边吃奶边做激情叫床视| 伊人久久青草青青综合| 午夜啪啪免费视频| 日韩欧美1区|